《架构师的角色》
一个软件架构师比“仅仅是”一个设计师意味着更多的东西。这个可以由单人或多人承担的角色有一个冗长的职责、技能和知识的列表。
一个成功的软件架构师必须满足这些条件。这些先决条件包括以下几点:
a) 领导力:工作指导、团队建设、建立愿景、组织培训。
b) 沟通:技术和非技术的沟通、鼓励合作。
c) 谈判:处理内部和外部的利益相关者和他们之间相互冲突的需求和期望。
d) 技术技能:生命周期技能、专业技术知识、持续学习、编码能力。
e) 项目技能:预算、人员、进度管理、风险管理。
f) 分析能力:软件架构分析、项目管理和测量的常规分析思维成功的设计不是一个“贴在墙上”的静态文档。
也就是说,软件架构师不仅要做好设计,而且必须密切参与项目的每一个方面,从概念和业务论证到设计与建立,直到运营、维护,最终到项目结束为止。
架构师考虑的问题必须全面,必须了解的要广,具体的细节可以不关注,因为细节变化很快。很多具体技术人员出身的架构师,只关注于具体的细节,某些方面做的很好,整体的性能很差。
架构师必须了解软件流程,否则无法驱动整个团队前进,如果一个架构师不熟悉开发流程,无法协调产品线相关人员进行高效工作,也无法指导团队成员完成自己的工作。所以来说架构师一般不是空降兵,因为空降兵一般不会熟悉新公司的开发流程,即使是同一个行业的,各个公司的差别还是很大。所以说 听说某某去某某公司做首席架构师或者首席科学家,一般是高风险的事情,即使他对这个行业很了解。