Loading

大型网站技术架构,架构师领导艺术

架构师的工作:架构设计,软件开发,

其他一些管理职能:规划产品路线、估算人力资源和时间资源、安排人员职责分工,确定计划里程碑点、指导工程师工作、过程风险评估与控制。

 

这些管理事务需要对产品技术架构、功能模块划分、技术风险都熟悉的架构师参与或直接负责。

 

在软件开发过程中,架构师除了实现技术架构,完成产品技术实现外,还需要和项目组内外各种角色沟通协调,可以说架构师相当多的时间用在和人打交道上。处理好人的关系对架构和项目的成功至关重要。

 

架构师作为项目组最资深的专业技术人员,是项目组开发测试工程师的前辈。

从架构师的身上,工程师可以看到自己的未来,因此架构师在做人做事方面需要严格要求自己,做好表率。

 

关注人而不是产品

一定要坚信:一群优秀的人做一件他们热爱的事,一定能取得成功。不管过程多么曲折,不管外人看来多么不可思议不靠谱。

 

所以最好的软件项目管理不是制定计划,组织资源,跟踪修正项目进展,对成员进行激励和惩罚,而是发掘项目组每个成员的优秀潜能,让大家理解并热爱软件产品最终的蓝图和愿景。每个人都是为实现自我价值而努力,不是为了领工资而工作。

 

寻找一个值得共同奋斗的目标,营造一个让大家都能最大限度发挥自我价值的工作氛围。

 

没有懒惰的员工,只有没被激发出来的激情。所有强迫员工加班的管理者都应该为自己的无能而羞愧。 

发掘人的优秀

有些企业喜欢挖优秀的人,而不是去把自己打造成一个培养优秀人才的地方。殊不知:是事情成就了人,而不是人成就了事。指望优秀的人来帮自己成事,不如做成一件事让自己和参与的人都变得优秀。

调查下功能的实现,找开源实现,阅读文档和代码,针对项目需求场景对代码做优化,将优秀的代码提交给开源项目的作者。

大多数人,包括我们自己,都比自己以为的更优秀,有些优秀需要在合适的环境中才会被激发出来,比如做一些有挑战的事,和更优秀的人合作,抑或拥有了超越自我的勇气。

 

发掘人的优秀远比发掘优秀的人更有意义。

共享美好蓝图

蓝图应该是表述清楚的:产品要做什么、不做什么、要达到什么业务目标,都需要描述清楚。

蓝图应该是形象的:产品能为用户创造什么价值、能实现什么样的市场目标、产品最终会长什么样,都需要形象地想象出来。

蓝图应该是简单的:不管内部还是外部沟通,都能一句话说明白:我们在做什么。

 

蓝图应该写在软件架构设计文档的扉页、写在邮件的签名档、写在内部即时通讯群的公告上。

 

在项目过程中,架构师要保持对目标蓝图的关注,对任何偏离蓝图的设计和决定保持警惕,错误的偏离要及时修正,必要的变更要经过大家讨论,并且需要重新获得大家的认同。

 

也许有人会说"你是在忽悠我吧,只是想让我努力工作而已"。青春总会逝去,人总是会死的,当有一天你白发苍苍回首往事,你回为无所事事而遗憾,但不会为被人忽悠而羞愧。

批评马云的人,一定为马云在创建阿里巴巴的时候没有忽悠他成为创始人而遗憾。

共同参与架构

架构师需要对系统架构负责,但并不是说一定要架构师自己完成架构设计,并要项目团队严格遵守架构决策。

把架构和架构师凌驾于项目和项目组之上,只会让架构师变成孤家寡人,让架构曲高和寡。

1. 不要只有架构师一个人拥有架构

让项目参与者对架构充分争论,大家越觉得自己是项目架构的重要贡献者,就越是愿意对开发过程承担责任,越是愿意共同维护架构和改善软件。

2. 让其他人维护框架与架构文档

除非是重大重构,否则架构师应该让项目组成员维护框架和架构文档,给项目组成员成长的机会也让自己有更多的时间去寻找更大的挑战。

学会妥协

不要企图在项目中证明自己是正确的,一定要记住,你是来做软件的,不是来当老大的。所以不要企图去证明自己了不起,永远也别干这种浪费时间、伤害感情的事。

 

当做项目迷失方向的时候,提醒自己是来做软件的,来实现客户价值的,不是来证明谁对谁错的。

 

很多时候,对架构和技术方案的反对意见,其实意味着架构和技术方案被关注、被试图理解和接受。

 

架构师不应该对意见过于敏感,这时架构师应该做的是坦率地分享自己的设计思路,让别人理解自己的想法并努力理解别人的想法,求同存异。

 

对于技术细节的讨论应该立即验证而不是继续讨论,当讨论深入到技术细节的时候也意味着问题已经收敛,对于整体架构设计,各方意见趋于一致。

 

而当大家不再讨论架构的时候,表明架构已经融入到项目、系统和开发者中了,架构师越早被项目组遗忘,越表示架构非常成功;项目组越离不开架构师,越表示架构还有很多缺陷。

 

成就他人

我们活着不是为了工作,不是为了做设计、写程序,这些不是我们生活的目的。我们活着是为了成就我们自己,而要想成就自己,就必须首先成就他人。

 

每个人都有自己成就的目标,而工作是达成自我成就的一种手段:通过工作的挑战,发掘自我的潜能,重新认知自我和世界。

 

软件开发过程是人的智力活动的过程,软件开发不仅是制造软件的过程,也是开发人员自我完善、超越自我的过程。所以我们工作不只是生产产品,还要成就人,并最终成就我们自己。

 

做成一个项目不但要给客户创造价值,为公司盈利,还要让项目成员获得成长。要让他们觉得通过这个项目,自己的知识技能和业务水平都得到了提高。

 

架构师作为团队的技术领导者,在项目过程中不要试图去控制什么,带着一个弹性的计划和蓝图推进,团队会管好他们自己。

posted @ 2019-10-07 20:53  元宝爸爸  阅读(230)  评论(1编辑  收藏  举报