- Published on
【高效程序员的45个习惯】敏捷的骨头与灵魂
- Authors
- Name
- 小土刀
- @wdxtub_com
省流版:敏捷的灵魂,藏在那些看起来“软”得不能再软的东西里——沟通、协作、责任、勇气。它的“骨头”是持续集成、单元测试、版本控制,都是硬技术;但它的“灵魂”,是对团队文化、节奏和行为的重构。
很多人以为敏捷是个方法论,是个工具箱,是一套流程。但就像“战略”不是 CEO 的专利,敏捷也不是项目经理的独门武功。它是一种态度,是一组信仰,甚至说是一种生活方式都不为过。不是在墙上贴几个“迭代计划”,用上 Jira、CI/CD,就算是敏捷了。
“右边有价值,但左边更重要”
敏捷开发宣言开宗明义地告诉我们:
- 个体和交互 胜过 过程和工具
- 可工作的软件 胜过 面面俱到的文档
- 客户协作 胜过 合同谈判
- 响应变化 胜过 遵循计划
这不是说右边没用,而是说:当左边和右边冲突时,先保左。比如,你发现团队每周都填日报、写流程,却没人愿意读彼此的代码;需求文档写了几十页,产品一上线就改;合同签了三个月的开发周期,第三周客户需求就变了。此时就该问一句:你是在做软件,还是在考公务员?
敏捷的精髓,是反过来用“人性”来设计流程,而不是用流程去管住人性。
敏捷不是“快”,是“不断地前进”
很多人听到“敏捷”第一反应就是“快速交付”,恨不得明天上线、下周迭代、下下周复盘。于是大家都在“追 sprint”,却没人知道自己在跑去哪儿。
实际上,敏捷追求的不是快,而是节奏感。就像马拉松选手的呼吸——稳定、规律、有反馈。一天不写代码没关系,但不要一周都“假装在开发”;一个功能晚交一天没关系,但不要“躲在角落里 debug”。
书里说得很直白:“软件开发是一项复杂的智力活动,不能时续时断。”持续前进,是解决复杂性的唯一办法。不要等需求都变了才想起重构,也不要等上线当天才想写测试用例——你的时间表不敏捷,你的项目也不会。
态度决定了一切
说到这里,不得不说敏捷的另一条核心信仰:对事不对人。
团队里出了 bug,开会讨论时,第一句应该是“我们怎么解决这个问题”,而不是“你这代码怎么回事”;有人没理解需求,可能不是他的问题,而是大家都以为自己懂了。犯错不是问题,不知道自己错在哪儿,才是问题。
敏捷要求的不只是技术上的专业性,更是心态上的成熟。比如:
- 没有人能完全掌握系统,但每个人都可以掌握自己负责的那部分;
- 读别人代码不是浪费时间,而是提前踩地雷;
- 如果你不能清楚解释为什么要“+1”,就别轻易写下这行代码。
你不需要一开始就很出色,但你必须起步,才能变得出色。这句话,适用于每一个进入敏捷开发的团队和个人。
工具只是脚,文化才是方向盘
别误会了,这书也没有抛弃工具,它给了一个完整的“敏捷工具箱”:
- Wiki 知识共享,别把知识锁在脑子里;
- 版本控制是底线,没有就别说你是搞软件的;
- 单元测试是防御工事,是让未来的你不骂现在的你;
- 自动构建是持续交付的前提,也是团队节奏的节拍器。
但就像一个登山者说的:“你可以有最贵的登山装备,但如果你不知道山在哪,那只是在负重行走。”敏捷工具的存在,是为了服务于那套以人为核心、持续进化的开发哲学。
敏捷不是一种方法,而是一种信仰
最后,我们要理解的是:敏捷之所以难,不是因为工具难、流程复杂,而是它挑战了我们内心深处的某些惯性:
- 想一劳永逸 vs. 接受持续变化
- 追求完美文档 vs. 接受“刚好够用”
- 怕出错而多做准备 vs. 快速反馈及时调整
所以,敏捷开发的核心不是 Jira、Scrum Master,也不是什么燃尽图,而是一个个愿意承担责任、直面变化、追求进步的个体。
这才是敏捷真正的“执行力”。