Agile不能忽视工程方法

一个开发团队,无论使用什么方法论,CMMI也好,Agile也好,基础的工程方法都是非常重要的。

我在给客户做敏捷转型过程中,团队对Agile的方法与理念非常有热情,每天按时开站会,每周一个Sprint,每周频繁梳理自己的Product Backlog,PO、SM以及团队都明确自己的职责,似乎一切都很顺利。

然而培训后的一天,我观察他们的源代码,大吃一惊。我发现他们竟然没有单元测试!原来,他们一直都不写单元测试的。于是我紧急跟团队与SM沟通,让他们了解单元测试的重要性。

如果我们把开发软件看成是盖房子的话,那么单元测试就是保证每块砖头是符合质量要求的手段。如果砖头都不合格,怎么能保证房子是稳当的呢?无论架构是不是合理、无论流程有多么的科学,都不行!

其中的开发人员跟我说,项目时间紧啊,我们没那个时间去写单元测试。我没有说话。

之后我观察到一个现象:该开发人员每隔一段时间编译成功后,就把成功的代码拷贝一份,放在一个特殊的目录下。我问他这是在做什么,他说他在做备份,以防止每次修改代码后发生意外,不能快速找到出问题的代码段,所以用这种方法快速恢复。

于是我告诉他,如果他有完整的单元测试,每次运行一下单元测试,马上就能定位哪几个方法出了问题,快速而有效。结果开发人员很是兴奋,马上对单元测试有了兴趣。

这件事又一次验证了我的想法,好的方法也要用能够解决问题的角度去切入,这样就能够达到事半功倍的效果。

当下,很多做敏捷转型的顾问过度关注流程的变革,忽视基础的软件工程方法,其实应该更多地关注软件工艺,引入更先进的工程工具与方法。比如TDD、自动化测试、持续集成等。

后来,我们为该团队引入了TDD、自动化测试与持集成等工具与方法。我跟他们说,这跟Agile无关,这其实是基本功,这是不管用什么项目管理方法都应该做的事情。

你可能感兴趣的:(Agile不能忽视工程方法)