第14章 架构师领导艺术
架构师是软件开发组织中一个比较特殊的角色,除了架构设计,软件开发等技术类工作,通常还需要承担一些管理职能:规划产品路线、估算人力资源和时间资源、安排人员职责分工,确定计划里程碑点、指导工程师工作、过程风险评估与控制等。这些管理事务需要对产品技术架构、功能模块划分、技术风险都熟悉的架构师参与或直接负责。
-
关注人而不是产品
一定要坚信:一群优秀的人做一件他们热爱的事,一定能取得成功。不管过程多么曲折,不管外人看来多么不可思议不靠谱。
这也是领导的真谛:寻找一个值得共同奋斗的目标,营造一个让大家都能最大限度发挥自我价值的工作氛围。
-
发掘人的优秀
是事情成就了人,而不是人成就了事。
大多数人,包括我们自己,都比自己以为的更优秀,有些优秀需要在合适的环境中才会被激发出来,比如做一些有挑战的事,和更优秀的人合作,抑或拥有了超越自我的勇气。
发掘人的优秀远比发掘优秀的人更有意义。
-
共享美好蓝图
-
共同参与架构
-
学会妥协
不要企图在项目中证明自己是正确的,一定要记住,你是来做软件的,不是来当老大的。所以不要企图去证明自己了不起,永远也别干这种浪费时间、伤害感情的事。
对于技术细节的争论应该立即验证而不是继续讨论,当讨论深入到技术细节的时候也意味着问题已经收敛,对于整体架构设计,各方意见正趋于一致。
而当大家不再讨论架构的时候,表明架构已经融入到项目、系统和开发者中了,架构师越早被项目组遗忘,越表示架构非常成功;项目组越离不开架构师,越表示架构还有很多缺陷。
-
成就他人
这一段,我只想全部抄下来
我们活着不是为了工作,不是为了做设计、写程序,这些不是我们生活的目的。我们活着是为了成就我们自己,而要想成就自己,就必须首先成就他人。
每个人都有自己成就的目标,而工作是达成自我成就的一种手段:通过工作的挑战,发掘自我的潜能,重新认知自我和世界。
软件开发过程是人的智力活动过程,软件开发不仅是制造软件的过程,也是开发人员完善自我、超越自我的过程。所以我们工作不只是生产产品,还要成就人,并最终成就我们自己。
做成一个项目不但要给客户创造价值,为公司盈利,还要让项目成员获得成长。要让他们觉得通过这个项目,自己的知识技能和业务水平都得到了提高。项目结束时,大家会觉得不可思议:“如此完美的产品,如此有挑战的开发居然都是我们完成的”。而且每个人都觉得自己在项目中至关重要不可或缺。
架构师作为团队的技术领导者,在项目过程中不要去试图控制什么,带着一个弹性的计划和蓝图推进,团队会管好他们自己。你越是强加禁令,队伍就越是没有纪律;你越是强制,团队就越是不能独立自主;你越是从外面寻找帮助,大家就越是没有信心。
而一旦打造出一个优秀的团队,在以后的合作中,面临更大的挑战时,架构师就可以从容应对,因为你不是一个人在战斗。同时一个优秀的团队内部也会发生化学反应,创造出超出工作本身的机会,开启更美好的明天。