5.1 系统架构工作
5.2 系统架构能力培养
5.3 常见问题分析
5.4 其他
序1
Michael(周明耀)是我的好兄弟,我们已经认识10多年了。这些年来,我已经渐渐远离IT技术管理。而Michael,一直坚持在IT技术管理的领域,以更加丰富的工作经历刷新、实践和升华自己对这项工作的认知和理解。
学习IT的人是比较容易上手技术管理的,但要做个好的领导者不容易。我们一定都学习过项目管理方面的课程,而且都做过项目,这可以看作技术管理最初的实践——无论是项目的参与者,还是负责人,至少我们都对团队,对管理流程(规则)、项目过程和项目结果有直接的体验。但是,要做领导者,面对的不仅仅是技术问题和解决方案,还需要面对上级、下属、同级别同事、客户等各种各样的人群和各种各样的事件,这时候只有高智商和强逻辑性就远远不够了。要成为一个真正好的技术领导者,除了热爱技术、功底深厚之外,还需要不断提升眼光(眼界)和决策能力,修炼勇敢、真诚、公平、开放、包容的态度,修养个人魅力。从组建团队开始,以人为本,从心出发,平衡“管”和“理”,并从中探索自己的管理哲学、方法论和行为准则。Michael的书会给喜欢技术领导力的你们带来鲜活的自身经历、丰富详实的案例和恰当的建议。
读Michael的书很轻松,他将自己的故事娓娓道来,且处处不离技术领导力的主旨。他以对电视剧中主要人物的技术管理角色分析作为开篇,生动形象,一开头就深深吸引了我。
希望你们也和我一样喜欢这本书,并从中受益!
TCL医疗集团产品中心总经理 贺军
序2
用管理的方式做技术
我曾经思考过一个问题:“技术人员最大的发展瓶颈是什么?”当时我认为是技术方面入门容易,但深入很难,或许加强技术深度就是技术人员最大的挑战。随着工作经验的积累,做的东西多了,接触的面也广了,加上对技术一直抱有由衷的激情,自己在技术深度与广度方面都有了明显的提升,也形成了一定的质变。但是,此时我更加迷茫了,到底应该如何走好自己接下来的技术之路呢?继续将技术深入下去,还是从技术转到管理?也许我曾经面临的这个问题,大家目前正在经历中。
技术就像无底洞,我们在洞口目测该洞可能只有10米深,但当我们走到10米深处时,却发现可能还有100米才能走到底,而且越往深处走,越感觉深不见底。如果感觉自己已经走到了最深处,那里可能没人了,但某天也许会发现,还有更多的人比我们走得更深。
技术就像武功,人外有人,天外有天;但技术也不全像武功,它依靠的不是单打独斗,而是团队协作。当我们认为自己的技术已经达到了期望的深度时,应该选择更加灵活的方式来提升自己的“武功”,而不是一味地想让自己成为天下第一,因为根本就没有天下第一。此时我们更需要做的是,通过自己的管理技能去带领更多的技术人员,通过团队协作来取代单打独斗,用管理的方式做技术。
也许大家和我一样,选择了走技术管理的路线,去攀登更高的技术山峰。在攀登技术之巅的路途中,我们或许犯过类似的错误。
1)队员工作没有自己做得好,花时间去沟通还不如自己去做。
2)感觉自己的技术在退化,长期不写代码觉得自己没有价值。
3)发现自己不懂的东西越来越多,觉得把管理做好不太容易。
当大家遇到以上问题时,无须过多担忧和自责,更不要认为自己不适合走技术管理路线。其实以上问题只是一个信号,它在提醒大家,是时候提升自己的“软技能”了。
如果将技术能力视为“硬技能”,那么管理能力就是“软技能”,而软技能所涉及的面可能比硬技能更广,甚至更为抽象,其中很多软技能考验的不是单一的能力,而是综合的素质,比如素养、胸怀、情商、智慧等。有些方面可能受自己的成长环境所影响,但更多的软技能其实是可以训练的,而且完全可以通过正确的方法得到明显提高。
我原本以为周明耀老师只是一位狂热的技术爱好者,在JVM和Java性能优化方面达到了登峰造极的境界。前不久听说他在写关于技术管理方面的书,我当时还真有些惊讶,但当我看到这本书的部分内容时,我心中的惊讶消除了,而且全部变为期待了。能在技术与管理方面有如此造诣的人实在不多,能够将自己的经验总结下来并分享出去的人就更少了,周老师令我十分敬佩。
强烈向大家推荐这本书,因为它是一本技术高手的管理心经!
黄勇,特赞科技CTO
序3
管理是一种实践,其本质不在于“知”而在于“行”。(Management is practice.Its essence is not knowing but doing.)
——彼得·德鲁克(Peter F.Drucker)
对于多数勤勉的工程师来说,努力数年后走上技术管理岗位似乎是一件水到渠成的事,但要真正做好技术管理,成为一名优秀的管理者却并不太容易。认识明耀已有数年,知道他是一名优秀的软件开发团队管理者,也拜读过他的一些技术著作,但当听到他要写一本关于技术管理的书时,我还是有些吃惊。不同于一般的项目管理和职能管理,技术管理的主体对象是最具特色的知识型员工,具有很大的不确定性。每一种行业、每一个技术领域、每一家公司,甚至每一个技术团队,都有可能采用不一样的管理方式,我很好奇他想从哪些方面进行提炼。
几番闲谈之后,我基本明白了他写作的初衷。作为一名有着近十年技术管理经验的IT技术狂热爱好者,他一直想对自己的工作内容、经历进行总结,并且将自己的一些技术管理经验和理解分享给大家。本书从技术管理者的基本素质要求谈起,以软件开发工作中的实例来介绍他对技术团队建设、人员管理、产品开发过程管理的一些理解,并且重点介绍了作为技术管理者的另一个身份——技术总体负责人在技术调研、预研和系统架构设计方面的一些经验体会。非常欣赏他这种勇于总结实践经验的做法。管理的本质在于“行”,写书的过程不也正是提升管理的一种修行吗?
本书可供有志从技术走向技术管理岗位的产品开发、测试人员阅读,也可供相关领域的技术管理者共勉,当然也可供对技术管理领域感兴趣的所有人员阅读。
高凌 浙江大学MBA、PMP,职业经理人
序4
技术领导之路
关于技术领导,有人把这个概念定义成一种职位,比如技术经理、技术总监。有人把它引申为技术上的洞察和优势。我则认为,如果你有能力把技术相关的资源有效地组织起来并完成一件有价值的事情,例如,发布一款产品,做一个项目,那么你就是技术领导者,或者说,你具备了一定的技术领导力。
以前有很多人问过我类似的问题:单纯做技术,核心竞争力就是技术强,简单明了,做技术领导感觉就没那么明了,哪些是技术领导的核心竞争力?是对系统的整体理解,组织协调能力,个人品质素养,还是技术领导力本身?从职业发展角度看,技术领导最终会晋升为某个管理职位,而管理职位应该是一个更难胜任的职位才对。技术弱化带来的危机感(不安)的本质原因是什么呢?
我觉得周明耀老师的这本书很好地回答了这些问题。
简单来说,技术领导可能是个管理岗位,也可能不是,不重要。重要的是你要利用技术资源和团队资源把事情做成。从技术人员和技术领导的分布上来说,后者显然更难胜任。从分工上看,也不可能有那么多领导者。技术领导者的核心竞争力应该包括但不限于:技术能力,对事情整体的理解,能找到正确的方向,影响力,凝聚力,对人性的理解,资源。技术弱化为什么会带来的危机感呢?因为人们总觉得要有一技之长才会比较安全,但是优秀的技术领导会超越这些东西,他们关注的内容不再是某个具体的技术和实现,而是事情。让正确的事情,持续发生才是最重要的。
技术领导者应该具备什么样的素质呢?书中给出了这样的答案:
技术,技术,技术
一旦技术人成长为技术领导之后,有个问题就会像“我是谁”一样一直困扰着我们:我还需要在技术领域孜孜以求吗?答案当然是要。你是技术领导啊,又不是产品经理。技术这东西是很实在的,泾渭分明,会就是会,懂就是懂,很难不懂装懂。在现在这个时代,技术是需要我们终其一生学习的东西。
管理看起来套路很多,其实最终都是人性和策略,理解人性,善用策略,就能做好管理。对于聪明人来说,有实践机会,管理可以在短时间内达到一个不错的水准,但技术永远需要长时间积累。钻研技术,并不是让你增加自己的代码量,事实上一个领导者每天深夜像打字机一样咔咔地提交代码,对组内成员是极大的压力。一个技术领导,更多是通过对技术领域的探求打磨自己的技术敏感度和技术决策力。
如何用好当下的技术解决现实中的问题,什么阶段引入什么技术,什么时候重构,什么时候重写,如何利用技术驱动产品,如何构建技术平台……这些都是技术领导需要思考并确定的问题,这些都将依托你强大的技术背景。
信任
相信自己的团队,就能产生巨大的生产力。事实上,如果你选对了人,大部分看起来困难的事,都可以解决。
很多时候,团队的人跑过来问你怎么办,只是希望你给他们信心,而不是指望你去给他们写代码。除了需要资源协助的情况,大部分时候你只需要信任他们,然后等着他们告诉你,问题已经解决了,系统已经上线了,产品已经发布了。
程序员对技术的渴求和敏感度,就像枝桠对阳光和雨露一样渴望和迫不及待,只要等,大部分时候,他们都能找到出口。当然,真的遇到困难搞不定了,协调资源或自己提刀上阵就是了。
鼓励和批评
把鼓励和批评放在一起说,因为它们是一对双刃剑。无节制的鼓励和表扬会导致你成为一个烂好人,而随时随地的批评会打击团队的自信心,人心离散,智慧之光凋零。如何取舍呢?你需要找到自己的平衡。
有的人喜欢多鼓励,少批评。在平时的交流和会议中,多给予鼓励和表扬,效果有时候比正式会议的褒奖更让人感觉舒适。少批评,但批评的时候一定是声色俱厉、毫不留情。有的人则相反,少有表扬,多为批评。时时严厉的人,偶尔一次褒奖,会让团队成员觉得如饮甘露,有时候效果也非常好。
找到适合自己团队的方式就是最好的方式。
团队作战
很多技术领导带团队取得了一点成绩,就开始沾沾自喜,以为这事离了自己不行,其实是团队作战的功劳。大部分情况下,不是团队离不开领导,而是你离不开你的团队!
你是团队的头,但你的技术不一定是最强的,而你要依靠他们的努力工作来开发出强壮、稳定的软件。你的工作是什么呢,除了技术,还需要保护团队中的工程师不被打扰,在各方面给他们支持,帮助他们能顺利完成任务。同时你还需要在重大的方向上输出影响力,做决策,定计划,这也意味着,如果决策是错误的,需要你来承担责任。而有了荣誉的时候,你要退下来,让给团队里那些优秀的人。这样的团队,才能无往不胜!
善用人才
稍具规模的团队,人才都会有很多种,有的是匠人型,有的是天才型,他们有的人步伐齐整,一步一个脚印,行走就像时间本身一样流畅,唰,唰,不可阻挡。有的人似乎原地不动,呆呆思考,但是瞬间会来个百米冲刺,把所有人都落在身后。
无论是行走,还是奔跑,他们都需要合适的道路和轨迹。设计好这样的通道,帮助这些人才成长,他们自然会做出成就。
我写的这些只是书中内容的冰山一角。本书的作者近十年来一直从事研发团队的管理工作,在研发一线摸爬滚打,积累了大量的相关经验,同时热爱分享和技术写作。他曾经著有《大话Java性能优化》和《深入理解JVM&G1GC》,本书是他的第三本书。在书中明耀用轻快的笔触和充满节奏感的文字,从技术管理、团队建设、产品开发过程、技术预研和选型、系统架构等各个层面,带领你游历属于自己的技术领导之路。
如果你是一位技术从业者,如果你想打造自己的技术领导力,本书就是你手边的参考手册。而我的责任,就是尽可能向更多的人推荐这本书。
池建强
极客邦科技总裁,MacTalk出品人
前言
为什么要写这本书
我对于“技术管理”这个词,或者这个岗位的理解是,先有技术,才有管理,所以,我先写了两本技术类的书,分别是《大话Java性能优化》和《深入理解JVM&G1GC》,谈了谈对于技术的理解。现在我觉得可以谈谈对于技术团队管理的理解了。
近10年来我一直从事技术团队管理工作,一直对自己说要站在一线。我认为所有的工作都应该有对应的方法论支撑,技术管理工作也不例外。当初次担任经理的职务时,我也是无限惶恐,于是上网找资料、看书,有一次看到一篇博文说“经理的职责是管人,而不是管事”,支持这种论调的人其实不在少数,但在思考、实践了几年后,我觉得这种说法真的不适用于科技行业的技术管理领域。鉴于目前市面上几乎没有真正介绍如果做一位合格的技术管理经理(Leader)的书,所以我觉得我应该对所做的工作做一次深层次的总结。
技术管理岗位不容易做,既要保证自己的技术说服力,又要经常上一线工作,还要从管理上给予团队支撑,这些综合起来对于任何一位工程师来说都不是那么容易理解和执行的,希望我的这些总结能够真正帮到你,让你觉得这是一本有意思、有价值的书。
本书主要特色
希望大家读完本书之后,能够大体上解答你心中对于如何才能更好地带领软件团队的诸多疑惑。这里有几点需要说明。首先,本书总结的方法论是我个人的总结,力求实践,不会多讲空话、套话,但也可能存在自我认知的局限,请读者见谅,多提意见。其次,我觉得人脑是越学越灵活的,也许5年后我会认为现在的方法论存在一些问题,到时候我会写文章自我纠正。再者,技术管理人员很多时候就是一个小号的CTO,如果需要自己决定产品方向、销售,那就是个小号的CEO,所以技术领域的综合能力也是你的必备能力。最后,我肯定会继续站在技术管理一线,无论Title、薪资、职场斗争,哪种都不会让我改变自己的职场定位,与君共勉。我相信,从软件工程师转变为技术管理者的你,一定可以从本书中看到自己成长的影子。
我觉得,技术管理本身是有方法论的,但是技术管理人员很多不能得到别人的理解。希望通过本书的总结,帮助大家更好地了解技术管理工作,也更好地做好技术管理工作。
本书读者对象
根据本书的内容特点,可以将阅读对象分为以下几类:
·尚未走出校门,但是心怀远大理想的计算机、软件专业的学生;
·一线研发工程师;
·工作几年后遇到瓶颈的工程师;
·刚刚担任小组长的工程师;
·有几年带人经验的研发经理;
·对技术管理岗位有兴趣的同仁。
如何阅读本书
本书总共5章,5个章节内容相互独立。分别从技术管理工作概述、如何进行团队创建及人员管理、产品开发过程管理、技术调研/预研工作介绍、系统架构相关知识介绍如何具备技术领导能力。每一章内容相互独立,你可以按顺序阅读,也可以选择选择感兴趣的章节阅读。
勘误和资源
由于本人水平有限,编写时间仓促,书中难免有错误或者不全面的地方,在此恳请读者朋友批评指正。如果你有任何疑问或者问题,可以通过我的微信号“michael_tec”与我联系,也欢迎关注我的微信公众号“麦克叔叔每晚10点说”,期待你们真挚的意见反馈。
致谢
7岁那年,当我合上《上下五千年》时,我对自己说,我想当个作家。2016年4月我出版了《大话Java性能优化》,1年内加印两次的销量让我很满足,因为有读者购买我的书,是对我的支持,我需要继续坚持写作。2017年5月,我出版了《深入理解JVM&GIGC》,现在,我的第三本书也即将面世。坦率地说,本书更像是我对过去20多年学习、工作的回顾,是一本自述题材的管理类书籍,写作过程也几乎是一气呵成,希望能给读者朋友帮助。
对于我的每一本书,我都怀着忐忑、惊喜的心情,就像第一次面对我的女儿“小顽子”,给她取这个小名,希望她顽强到底,因为我相信,你若顽强到底,一切皆有可能。
每次遇到困难时,耳边总是回响着郑克良老师(杭州高级中学退休老师,浙江省第一批特级化学老师)的那句鼓励“永远不要放弃”,人应该学会回馈社会,技术分享也是回馈社会的一种方式,而以写作方式进行技术分享是我所能最大程度回馈社会的一种途径。
感谢机械工业出版社华章公司的杨福川老师和李艺老师,你们的专业和热情深深打动了我,让我能够坚持完成本书的编写。同时感谢你们对本书页面排版等内容的包容和支持。
感谢TCL医疗集团产品中心总经理贺军、极客邦科技总裁池建强、特赞CTO黄勇、职业经理人高凌等为我写序。
感谢我的家人,是温暖和谐的家庭帮助我完成了这本书。我的妻子美丽、细心、博学,虽然偶尔不那么温柔,但是我很爱她。我的小顽子,她天生性格很像我,希望她能够踏踏实实做人,保持创新精神,平平安安、健健康康地生活下去。感谢我的岳父母、我的父母,感谢他们帮我照顾小孩,让我有时间编写此书。感谢浙江省特级教师、杭州高级中学(杭一中)化学老师郑克良老师,郑老师的一句“永远不要放弃”,是我多年前进的动力。感谢数学老师张老师在公开场合对我智商的褒奖,第一次收获这样的赞赏,对我这样性格内向、内心细腻的孩子是非常重要的。感谢生命中出现的恩师、良友,有你们的存在,让我得以绽放。
谨以此书献给记忆中的爷爷奶奶、外公外婆,你们给我的都是最美的回忆,我永远爱你们。
我相信这本书不是终点,它是麦克叔叔此生一系列技术书籍的其中一员,欢迎加入我的朋友圈,可以通过微信号michael_tec或者微信公众号“麦克叔叔每晚10点说”和我联系,咱们下一本书见。
Write great book that millions could read is my passion!
周明耀
写于杭州高级中学(杭一中)贡院校区