软件系统架构师成长之路(一)

几个月前,公司由于战略调整,将位于美国的系统工程(system engineering)部门的工做转到了国内。也由于此次调整,我有幸以系统架构师(system architect)的身份主导产品一新功能(feature)的开发。在此我分享本身的一些体会。
 
从开发架构师变成系统架构师所面临的第一个挑战,是所面临的技术范畴和问题复杂度变广和变大了不少。作开发架构师(development architect)时,只要关心整个系统一个子产品的内容,而系统架构师却得关心多个产品的内容。作开发架构师时,因为系统架构师已将问题进行了分解,所以所看到的复杂度也只是整个解决方案的一部分。作开发架构师时,对于不明白的问题,咱们能够想固然地向系统架构师咨询,而作系统架构师时,很多情形下就要本身经过查阅规范去寻求问题的答案,并在必要时指导开发架构师的工做。
 
系统架构师引导产品开发工做的方式是提供系统架构文档(system architecture document,其中以用例描述为主),要写好这一文档也是不小的挑战。一个组织得再好的文档,新手要在2300多页的文档中找准开发新功能所需修改的各个点并不容易。找修改点的过程须要经过阅读去把握文档的编写脉络,修改点找到后又须要模仿前人的语气、角度和风格进行编写,不然写出来的内容会让人以为突兀。在系统架构文档中描述用例时,对于假设(assumption)、前置条件(pre-condition)和后置条件(post-condition)的把握有时是个难点,这须要本身有很清晰的思路和作深刻的思考。
 
作系统架构师须要与更多的人进行交互,这又会让人面临新的挑战。好比,系统架构师须要了解各运营商的网络部署状况以寻求兼容性解决方案,这就须要与客户团队(account team)进行交互;要了解第三方的产品特性就得与卖方管理者(vendor manager)进行交互;等等。为此,系统架构师须要对产品线的相关组织架构至关了解,并对各类角色(包括项目经理、产品经理、客户团队等)的职责有清晰的认识,不然会出现有问题不知向哪寻求帮助,或者作那些不在职责以内的事等问题。
 
除了以上提到的对于架构师的挑战外,一个成熟、稳定的产品研发管理团队对新系统架构师上手工做颇有帮助。它有助于系统架构师快速地明确本身的工做职责和帮助创建起所需的人际关系。反之,若是没有这样一个团队,因为系统架构师的经验不足而容易出现一些扯皮现象而影响工做的开展。
 
系统架构师新手必定不能忽视团队的做用,以及在合适的时机向上司或其它富有经验的管理者寻求帮助,这是我最大的一个体会。团队的做用在于能帮助分担工做,并为技术方案的定型出谋画策。系统架构师新手因为一直身处技术领域,因此与富有经验的管理者相比,他们的技术大多不是瓶颈,但在管理方面就颇有可能不如他们。他们因为阅历丰富而能很快地帮助找到管理问题的根结点,帮助咱们从困境中走出。注意,系统架构师所需的不仅是技术能力,更有管理能力。
 
总而言之,作系统架构师的确是很大的一个挑战。但不管如何,直面挑战是咱们最好的选择!没有痛苦就没有成长!
 
相关文章
相关标签/搜索