最近公司里的Scrum Master在一个PPT里把所有失败的传统流程的项目的案例的缺点组合成了一个“典型的”传统软件开发模式,用以对比可以自适应任何情况的无懈可击的Agile。并且告诉我们,使用了Agile的项目失败是因为你不够Agile,不然你怎么会不能够立刻调整到合适的状态呢。然后紧接着又批判了一个因为没有做Retro就被贴上“不完善”标签的团队。等等,刚才谁说可以自己调整到合适状态的来着。。。
dilbert comics首先,我承认Agile中的很多理论是相当有效的,并且实践证明也能广泛的应用于不小的一部分项目当中。
然而流程之类的东西,感觉应该是团队自发选择或是通过总结经验建立出来的,就好像是从多处逻辑里提取出来的抽象和通用方法一样。而通过类似传教的方式四处宣扬和强行灌输来影响大众并吸收党羽,还以一种革命者的态度来推翻所谓的“传统方法”的做法,只会遭到反感。
仔细想下Agile和传统方法的区别,对比一下不就知道他们各自的长处的软肋了吗?传统的软件开发模式关注大格局,软件架构师会在项目早期就思考系统在未来的演进并考虑所有其他相关的系统以及他们之间的通讯问题。而Agile侧重于快速创建原型然后在进行不断迭代,重构,持续交付从而克服各种项目前期的不确定因素。传统的流程讲究层次,每个阶段都会是从设计,开发到测试交付的流程。而Agile强调端到端feature的交付,产品会被分解成很多feature然后由各个成员各自完成。那么当你的feature很难甚至没有办法进行正交分解时,你又怎么能保证你的持续交付能够顺利呢。
总的来说,不要为了用而用。不同的风格和流程是很正常的,适合的才是最好的。
说到底,好的设计和好的流程哪个才是产品质量的决定因素呢。不要天真的以为只要遵从某个速效减肥药似的流程就可以奇迹般的获取成功。不然说不定哪天会有人告诉我项目之所以成功是依靠公司的dress code呢。
接受访谈的乔布斯所以程序员还是应该多提高自己的姿势水平。周围大谈Agile的Scrum Master,也许连一行代码都没写过呢:)
也有人告诉我,很多我知道的大神都在用Agile,而且另外也有很多大公司在用,你怎么能拒绝这么流行炫酷的东西呢。那么我建议你读一下王垠的我和权威的故事,当然你也可以了解下他是怎么看待Agile的。
所以说到底用不用Agile呢。结论就是要自己思考然后决定。相信熟悉项目和团队的你肯定比所谓的Agile教练或是软件工程专家更能做出正确的决定吧。
网友评论