1 不是不写代码
相反,一些核心组建核心代码都会参与,这些代码会在各种项目中去使用,对于健壮性,性能等各方面要求非常高,需要有一定水平的人才能写好。
阮一峰博客有一句话:“警惕那些很长时间没有编写任何代码、却在设计系统的人。”
2 一般不深度参与业务代码编写
因为业务代码上线过程非常复杂需要各种测试等耗费时间很长没有那么多精力去参与,但是会对各个业务组的代码做review,偶尔也可能会参与到一些业务中去,例如今年我自己就参与了一个项目的核心业务开发,原因是这块业务我最懂,投入产出比最高所以自己上了。
3 职责更多表现在设计
与公司整体技术体系构建上。例如项目上的技术可行性论证(理论指导实践),架构师需要出理论过程,指导研发人员进行生产实践,告诉团队走什么样的路可以走通。公司技术体系构建表现在:例如公司网络架构是怎样的才能服务好公司人员让大家网络好用,公司运维体系构建符合构建更高效的能效体系,研发人员的技术选型,技术架构,用什么框架,是否需要额外封装,等等。
4 以我目前经验
架构师应该考虑到是软件实现的一切。所有委托给研发实现的功能,架构师应该都能实现,且保证合理。
架构师应该保证[软件]不会腐化,不会随着人员的更替而丢失信息。架构师还应该考虑软件的质量,应该提前防止一些问题出现,也应该保证出现的问题不会再重复出现。
架构师还应该考虑提升软件的特性,可[测试性],撸棒性,可观察性,可扩展以及开发效率等等。保证研发除了在实现需求外,没有其它的心智负担。
5 总结
一言以蔽之,架构师能 cover 住一个软件的走向的,如果自己不亲自开发,或者说自己在亲自开发的过程中,出现了上下文信息丢失严重,[开发环境]性能差,效率慢,开发环境难以构建以及因为上下文丢失很轻易的改出 bug。那这些都是架构师的失职。
呼吁每一个研发都以架构师来要求自己。架构师不应该是一个职位,而一是份责任。