技术开发 频道

敏捷、生产力和商业价值

    敏捷方法学释放现在生产力

    那么,敏捷方法学里面是如何对待这些软件生产力呢?是不闻不问,还是积极采纳它们,按照自己的价值观和理念改造它们,进一步提供更有效的开发实践呢?我们以一些知名敏捷实践为例,看看这些实践与当前软件生产力之间是什么关系。

    Test-Driven Development

    TDD的实践形式可以简单地归纳成:添加足够简单使得失败的测试,尽可能简单地修改功能代码使测试通过,重复这个过程;如果功能代码产生了bad smell,你需要重构来消除。用简单的方程式来描述,就是:

    TDD = TFD + Refactoring

    很明显,这个最有名的实践脱胎于unit test,又融合了重构的优点。“通过unit test可以改善代码质量”、“持续重构可以改善程序设计”,这些观点已经得到广泛认可。敏捷方法把developer unit test和重构吸收进来又加以改造,使得开发人员通过小步前进的方式获得更高的生产率,并交付更高质量的软件。而IDE集成ALM工具,更是让普通开发人员在应用TDD的开发过程中如虎添翼。

    Pairing

    Pairing 要求两个人在一起结对工作,结对的双方不要求都是开发人员,可以是开发人员与商务分析人员,或者开发人员与质量分析人员,又或者是商务分析人员与质量分析人员,甚至是团队成员与客户。

    坚持代码评审以及保持团队概念一致性是两项被很多经验证明能提高生产率和交付质量的实践。Pairing就把这两者做到了极致:编码设计的时候,始终有另外一个人在评审你的代码,从一开始就杜绝了不良设计和代码的引入;工作的时候,始终有另外一个人和你保持对概念理解的一致性,便于团队保持概念一致性。

    Continuous integration

    有了持续集成服务器Cruisecontrol或者Cruise、自动构建工具ant等等、版本管理工具,以及其他代码分析工具,比如测试覆盖率工具、checkstyle工具,持续集成涉及的功能越来越强大,不仅能自动快捷地给开发团队提供构建结果,而且能提供其他更多的分析结果以帮组开发团队改进软件质量。这样,开发团队通过快速得到构建反馈而提升了生产率,也可以凭借分析结果验证交付软件的质量。

    敏捷方法实践还有很多,比如Stories、story wall、stand up、retrospective等等。不管这些实践形式如何,其实我们都能从它们身上看到已经存在并被证明能提升生产率的开发实践。也就是说,敏捷方法学充分利用了已有的软件开发工具和开发语言的威力,极大地采纳了被证明了的软件开发实践,再按照一定的价值观和理念进一步改进这些开发实践。

    从敏捷方法学对待现在软件生产力的态度,我们可以说敏捷方法学面对新兴软件生产力是积极采纳的,释放了软件团队最大的软件生产力,从而促进了软件团队交付能力的提升。

0
相关文章