为什么软件开发方法很糟糕
Daniel Kahneman 在Thinking Fast and Slow 中所说,“获得一项技能有两个基本条件:
①一个足够有规律可预测的环境;
②通过长期练习学习这些规律的机会。”
但是传统的软件项目与常规的、可预测的环境相反。
项目成功的唯一衡量标准—— 最终结果是否在其生命周期内创造了预期价值? 这与导致成功或失败的关键决策相距甚远,以至于原始团队中的任何人都很少出现以获得反馈。实际上不可能确定哪些决定导致了成功或失败。这些因素使 IT 专业人员很难获得成功的产品和服务所需的技能。
软件方法论——即使是“雇佣一群优秀的人,让他们自我组织”的方法论——也很糟糕,因为它们经常导致货物崇拜行为:我们在做站立会议,我们有一个优先级的积压,我们甚至看在上帝的份上练习持续集成 - 为什么我们制作的东西仍然很糟糕而且很晚?因为你忘记了最重要的事情:建立一个能够尽快学习和适应的组织。正如 Laurent Bossavit 指出的(私人交流)“开发人员的技能部分取决于他/她所知道的方法以及他/她偏爱一种语言而不是另一种语言的原因。”