加载中...

本篇要回答的问题:软件工程篇到底讲清楚了什么?为什么团队之间能有百倍生产力差距?高效团队的效率到底体现在哪两个核心维度上?

本讲是软件工程篇(也是全专栏最后一章)的回顾与总结。架构师并不是纯技术岗位——从软件工程视角看,架构师要对软件工程的执行结果负责:按时按质迭代发布、敏捷响应需求变更、防范质量风险、降低迭代维护成本。

架构师要对软件工程的执行结果负责

软件工程覆盖范畴极广:从需求与历史缺陷 → 产品设计 → 架构设计 → 编码与测试 → 产品发布 → 线上服务持续维护;贯穿始终的是不变的团队分工与协同不变的质量管理

软件工程篇内容全景

百倍差距:高效团队的两个核心维度

软件工程是团体活动。个体之间可有十倍生产力差距,团体之间更可达百倍以上(一个团队三四天做完的,另一个团队可能要一年)。个人差距是技术能力差距,但团队差距有更深刻的原因

效率维度 体现什么 决定因素
开发新功能的效率 架构的老化程度 架构优劣;维持架构持续优异绝非个人能力,要靠团队共同坚持
新人融入的效率 新人多快理解业务现状与团队做事方式 仰仗团队对业务传承的坚持

这两者背后,关乎的都是协同的科学

共识:团队效率的基础

关键判断:有的团体像一盘散沙(充其量叫 “团伙”),有的上下同心拧成一股绳才是真正的 “团队”。共识是团队效率的基础。

从软件工程角度,产品设计和架构设计是团队最大的共识——架构过程就是一次团队共识确认的过程,从混沌之初到形成越来越清晰一致的视图(Picture)。

高效团队还有极高的团队默契,包含:

默契的组成
共同的目标
团队的做事态度与价值观
编码规范
架构设计文档的模板
软件工程的方法论
基础架构及技术选型

新人融入的基础过程就是阅读别人写的源代码——既有文档越清楚,障碍越小、融入越快。而文档传递的是思维方式:程序员不善 / 讨厌写文档,根源不在文档本身,而在有效的思维表达方式需要长期训练。

质量管理与宏观人力规划

软件工程各环节都有交付物,理想情况下上一环节输出是下一环节输入。质量管理从交付物入手:版本管理、单元测试、持续构建、灰度发布等。

更宏观的是人力资源规划(属于业务架构的顶层设计)——什么外包、包给谁、版本计划怎么排:

外包方式 对应形态
传统外包 源代码外包
开源 众包
云服务 服务外包
商业软件 产品外包

选择原则:非核心竞争力相关、能外包的尽量外包;优先云服务,次选开源,最后传统外包。 判断逻辑——越与面向用户的业务流程相关、越靠近核心竞争力,越不能外包。

版本迭代规划随阶段而变

业务阶段 迭代的重点 性能地位
从 0 到 1 用户使用姿势(产品设计规格)的验证 不是第一位
扩张阶段 用户看不见、却最在乎的非功能性需求 关键指标
遇巨大冲击的需求 头脑别发热,回到从 0 到 1 方法论,在少量客户上先做灰度 ——

总结

软件工程还很年轻(仅 50 年),方法论仍在快速演化,这意味着我们不必墨守成规,要勇于探索、打破固有惯例、建立新方法论。但打破惯例不是胡闹——不能做不尊重科学的 “野蛮人”(不写设计文档、不写单元测试、不做 code review)。要先尊重团队协同的科学,再在尊重的基础上探索更高效的协同。

先把"是什么"回答清楚

概念 一句话说明
高效团队两维度 开发新功能效率(架构老化程度)+ 新人融入效率(业务传承)
团队最大共识 产品设计与架构设计
团队默契 目标、价值观、编码规范、文档模板、方法论、技术选型……
外包选择原则 非核心尽量外包;云服务 > 开源 > 传统外包

一句话速记

个人差距是技术,团队差距是协同:用 “产品 + 架构设计” 这两个最大共识、用文档与默契沉淀业务传承,让开发新功能和新人融入都不掉速——这就是百倍效率团队的底层。

几条值得记住的判断

  • 团队百倍差距的根源是协同的科学,不是单纯的技术能力。
  • 文档难写的根源不在文档,而在有效的思维表达方式需长期训练
  • 打破惯例的前提是尊重科学:写文档、写测试、做互审不是可选项。

严谨并非创新的对立面,而是创新的重要基础。每个人都有灵光乍现的时刻,但唯有那些拥有严谨科学态度的人才能抓住它,把它变成现实。

思考题

回到你的团队:你们是 “团伙” 还是 “团队”?拿两个核心维度自检——开发一个新功能的效率(架构有没有老化)、一个新人融入的速度(业务有没有可传承的文档与默契),你们在哪一项上最掉链子,又打算靠什么共识去补?

公告栏
这是我的个人知识库。
记录技术,也记录生活 —— 读过的、试过的、想明白的,都堆在这儿。
最新文章
网站资讯
文章数目 :
5
已运行时间 :
本站总字数 :
15.7k
本站访客数 :
本站总访问量 :
最后更新时间 :
全局知识图谱
当前页面 已访问 文章 标签
ESC 关闭 · 滚轮缩放 · 拖拽移动 · Ctrl+G 开关