信息化 频道

敏捷与精益: 中国软件的发展之路

    解决之道

    那么,如何破解软件开发目前的困境呢?精益管理模式下的敏捷开发过程提供了一个诱人的替代方案: 软件系统总是被持续地交付,并且改变需求的代价也很合理。这种开发过程是通过如下三个主要的技术手段来实现的:

    1. 关注软件持续交付的软件生产技术。这些技术被统称为“敏捷”。它们的一个关键特性是更容易适应变化,并且使任何以后可能会被废弃的大型设计或架构所需的投资最小化。这些技术极大地减少了产品上市所需要的时间。

    2. 管理软件持续生产和发布的软件开发管理过程。精益管理来自于制造业,早期被称为JIT(Just-In-Time)。精益管理关注反馈周期以及利用不同训练等级的工作者来更快速地交付更高质量的产品。一般而言,精益管理过程能够降低50%的制造成本,降低事务性流程(订单处理)90%的成本。

    3. 将所有(或者几乎所有)的重复劳动自动化,包括软件产品的生产、测试和集成。把计算机的能力应用到这些事情上,在缩短反馈周期的同时使工作者把精力放在生产性任务上。比如在传统开发过程中,可能一个月会将所有软件模块集成一两次,但是在敏捷项目中,这样的构建过程每天都要做很多次。

    敏捷和精益过程所产生的影响是极具震撼性的。人们分析了一系列的敏捷项目,其结果表明,产品上市时间平均减少了69%,成本降低了57%。此外,质量也同样令人印象深刻: 致命缺陷平均减少了80%,普通缺陷减少了60%。这些结果与精益管理过程取代传统方式方法时所取得的进步是一致的。既然结果如此令人振奋,或许大多数人会认为敏捷方法应该早被广泛采用了。事实并非如此,主要原因是支持敏捷的软件开发技术和语言直到近十年(Java、C#)才出现,同时,制造业的JIT式生产过程还没有往其他领域移植,让过程自动化的大规模计算能力还不存在或者因为太昂贵而在应用上受到限制。此外,敏捷和精益过程需要引入完全不同于瀑布模型的组织结构和运作方式:

    1. 瀑布模型中的进度是分阶段标记在甘特图上的; 而敏捷中的进度则是通过当前实际开发的软件来度量的。

    2. 瀑布模型的管理关注大化每个工作者的最生产力; 精益管理则关注优化整个过程的产出。

    3. 在瀑布式开发过程中,发现问题的办法通常是在过程中添加额外的检查或权衡; 而在精益管理中,问题是通过缩短反馈周期或者去除冗余步骤来发现的。

    4. 瀑布模型鼓励发展出超级专家(比如,Web UI 架构师); 而精益管理推崇能有效率地完成多种任务的工作者,在不同任务之间来回移动以优化整体产出。

    5. 瀑布模型鼓励创建和管理专业化的部门,每个部门负责流程一个阶段的所有工作; 敏捷和精益管理则鼓励创建跨技能领域的工作环境,让所有工作者都可以在其中学习所有必要的技能。

    从瀑布模型转移到敏捷和精益管理的影响是重大而深远的。这种改变需要时间,特别是对于那些瀑布式分阶段模型已根深蒂固的组织而言。但这种改变是不可避免的。由于自身令人窒息的组织结构而不采用敏捷和精益管理的印度企业,将会面对世界上那些采用了敏捷和精益管理方法的公司的激烈竞争。
 

0
相关文章