敏捷开发(纪念版)
上QQ阅读APP看书,第一时间看更新

第1章 敏捷实践

“教堂塔尖上的风向标,虽然是由铁制成的,但如果不知道顺应风势,也会很快被狂风折断。”

——海涅(Heinrich Heine)

我们许多人都经历过项目缺乏实践指导而导致的噩梦。缺乏有效的实践造成不确定性、错误反复出现以及精力被浪费。客户因进度延期、预算增长和质量糟糕而倍感失望。开发者也因为花更长的时间但做出的软件更差而沮丧无比。

经历这样的磨难后,自然害怕重蹈覆辙。这种恐惧促使我们创建一个过程来约束自己的行动,并对产出和约束提出规范性要求。我们根据过去的经验来提炼这些约束和产出,选出之前项目中似乎行之有效的东西,希望它们能发挥作用,消除我们的恐惧。

但是,项目没有简单到依赖于少量约束和产出就能可靠地防止错误。随着不断试错,我们得以诊断错误,增加更多约束和产出以免未来犯同样的错误。但是,在经历许多项目后,发现整个过程过于庞大和臃肿,显著阻碍了我们顺利完成项目。

庞大和臃肿的过程会产生事与愿违的结果,造成项目延期,预算失控。团队响应能力变差,产品总是达不到理想的效果。不幸的是,这又会造成许多团队误以为自己选错了过程。因此,有点像恶性的“过程膨胀”,他们的过程变得越来越庞大。

恶性“过程膨胀”很好地描述了许多软件公司在2000年前后的状况。虽然当时许多团队仍然在没有一种过程的指导下运行,但对极为庞大的、重量级的过程的追求日益盛行,大公司尤甚。