View on GitHub

12fallacy

打造杰出软件开发团队的12条指导建议

打造杰出软件开发团队的12条指导建议

I. 技术模块切分要以业务组织架构为指导。尽量和业务部门对齐,闭环。不仅仅要和产品经理对齐,还要和运营部门对齐

II. 有意义的研发指标一定是要能体现到资产负债表上的。每个程序员的效能要量化为营收指标

III. 模块不仅要精心设计还要避免腐化。要设立一个首席架构师的职位,所有模块的 pr 都必须他看过之后才能合并

IV. 名字一定要取好,这事关高内聚。例如取名为“交易平台”,然后就可以通过顾名思义把某某交易结尾的需求塞入这个模块

V. 单一职责是说一个服务只做很简单的事情。比如每一张数据库表,只要无脑封装对应的 CRUD 服务就可以了,这样无论多便宜的人都可以招进来写代码了

VI. “复用”体现了技术的价值。程序员看见很多功能似乎都差不多,就应该成立一个部门,专门写代码生成工具来教产品经理如何设计产品

VII. 服务好每一个用户。目前服务了100万人,刚融完资,即将服务1000万人,对应的研发团队至少得提前扩充10倍

VIII. 凡事预则立,不预则废。公司主营业务当年就吃了单体的亏,这个新业务做为未来公司第二条增长曲线,必须先把微服务拆好再开工

IX. 自由是基本人权,微服务的精髓是团队高度自治。每个后端团队都应该选择不同的编程语言。前端同学也不要羡慕后端,你们可以尝试刚流行的微前端架构

X. 把同技能的人才集中起来,去吸引更多人才是公司最重要的事情。我们要把优秀的前端开发都集中到成都,把高性价比的测试集中到贵阳,在北京由产品经理们统一完成产品设计

XI. 要虚心借鉴商业上得到证明了的成功经验。某公司因为应用了微服务/事件溯源/领域驱动/(此处为扩展性预留),上市后市值翻了好几倍

XII. 相信自己的业务是最复杂的最独一无二的。以上11条也许适用于简单的业务,但一定不适用于我们公司这样复杂的系统

不想打造如此杰出软件开发团队的,请访问 https://autonomy.design/