这是本系列文章的第5部分“为什么要敏捷?”
的哲学敏捷软件开发这在理论上听起来很不错,但在实践中又如何呢?在Perficient拉丁美洲,作为近岸/离岸软件开发供应商,我们部署了许多大大小小的敏捷SCRUM项目,并亲眼目睹了我们认为在日常生活中稀缺的东西:有了敏捷,你就有了蛋糕,也有了蛋糕。敏捷不仅比传统方法更快,而且成本更低——如果操作正确,产生的代码输出质量可以与CMMi 5下严格的RUP相媲美。现在,都是玫瑰色下的敏捷吗?绝对不是。对于敏捷软件开发有一个主要的警告,它是一个非常敏感的问题,在说服组织对项目采用敏捷开发时,它经常成为一个关键的破坏者。具有讽刺意味的是,向客户推销敏捷的方式与典型的背道而驰首席财务官想听听.
让我再解释一下:传统上,公司习惯于以一定的价格购买有形商品。一台服务器的价格是“X美元”。100台具有这样或那样特性的电脑的价格是Y美元。在同样的思路中,首席财务官希望从她的IT部门听到,他们将要从事的软件开发需要花费特定数量的钱。简而言之,组织中的决策机制倾向于固定成本的软件开发项目。但是,正如我们所看到的,在以前的文章)是非常困难的,如果不是完全按估算软件开发前期成本,b)迫使软件开发项目成为最可靠的预测是一个该死的失败的方法,要么因为成本超支,因为评估的过程太繁琐不生产,或者因为由此产生的功能将“客户要求但不是客户所需要的”(我们在以前的文章谈到了更多关于这个“传统软件开发方法”的最终结果)。那么,一个软件开发团队应该如何接近一个传统的公司——尤其是一个想要固定价格的公司——来说服他们相信敏捷呢?很简单,告诉他们关于敏捷的许多积极的事实,我们将其总结为:敏捷更快:敏捷取代了关于需求的对话的很大比例的书面需求文档。
书面语言的效率非常低。想象一下,两位科学家仅通过通信手段解决了一个复杂而微妙的问题。现在想象一下,他们可以在一个房间里见面,在一个名副其实的智力乒乓球中合作。对话场景的速度将远远超过书面回应。类似地,在构建项目时,将书面语言最小化,并且对话变得更加“实时”“项目进展得快得多。在我们的经验中,敏捷比在严格的RUP下运行的项目快大约35%到40%。敏捷将你学到的东西整合到最终产品中:软件从一开始就不是完美的。在开发过程中,有太多的变量需要调整,以使其成为更好的产品。想象一位专业的音乐家在创作一首新曲子。无论她多么熟练,她几乎不可能在第一次演奏时就把旋律表现得恰到好处。它必须被倾听,被调整,被暴露在同伴的批评中,并以这种完美的方式成熟起来。传统的开发方法倾向于固定特定软件的初始需求。当这些需求开始建设,改善区域是注意到,运行项目经常变化的机制,因此在政治上昂贵的运行团队(即因为成本固定在人们心中的期望将会改变,例如)变化和新的想法不纳入项目。以类似的方式,软件开发团队经常注意到改进的想法,但是——由于经常有固定的成本调节项目——他们宁愿不提这些想法,以免冒与客户争论价格的风险。 In the final analysis, the project loses, as new and good ideas are not incorporated in the software.
更糟的是,没有考虑到环境的变化和竞争压力,否则会迫使改变。如果软件不太好,达到成本目标的目的是什么?敏捷风险更小:我们已经从Standish小组听到了关于传统软件项目失败的高得惊人的统计数据(在对发达国家的8000多个倡议进行调查时,近45%的倡议被认为是不成功的!问题是,在传统方法下,人们经常很晚才注意到项目正在走向失败。这是在BRUF (Big Requirements Up Front)下工作的结果,在BRUF下,通常在头几个月没有软件显示,只有成堆的书面文档。当第一个软件正式运行时,团队注意到项目已经晚了,或者功能有缺陷,投资在需求上的钱已经太大了。另一方面,敏捷在每个sprint(每2到4周)交付工作软件。这是我们的近岸/离岸项目团队交付的有形软件,可以由客户进行测试。它甚至可以增量地发布到生产环境中。因此,从根本上降低了失败的风险,因为每个月都可以测试产品的质量,每个月都可以采取纠正措施,在真正的损坏发生之前,将项目拉直。
敏捷更便宜:项目的总成本应该被看作是项目本身的货币价值,交付项目所花费的时间,以及由投资产生的交付产出的质量和潜力的概要。根据这一哲学,因为敏捷更快,具有更相关的功能,风险更小,因此敏捷成本更低。但由于其他更传统的原因,它也更便宜。最重要的是,每花一美元在敏捷项目中,80 - 90美分用于生成代码,10 - 20美分用于管理任务.在其他传统方法中,60到70美分用于生成代码,30到40美分用于编写文档和管理任务。因此,当您采用敏捷时,每一美元可以获得更多的代码。或者换句话说,用敏捷方法编写的应用程序比用RUP或瀑布方法编写的应用程序花费的钱要少。这对于公司寻找具有成本效益的外包合作伙伴,在人员增加或近岸/离岸模式下部署服务非常重要。其次,测试驱动开发(TDD)下的敏捷维护成本要低得多。在测试驱动开发中,代码的重要部分是由自动测试覆盖的(例如,自动单元测试和自动组件测试)。随着应用程序的发展,必须根据现有代码对新模块进行回归测试,以确保它们不会破坏已经在工作的模块。对于大型应用程序来说,这可能会花费比生成新模块更多的时间。下敏捷+测试驱动开发,许多回归测试(70 - 80%)可以自动完成,大大降低了维护应用程序的成本。
拉丁美洲在软件开发外包模式(人员扩充、近岸或离岸模式)下的丰富经验表明,总的来说,在敏捷下工作的管理良好的软件开发团队可以实现30%的效率优势(在成本和速度上)超过一个在RUP瀑布方法下工作的类似团队,同时实现相似的质量级别。
关于Perficient拉丁美洲:Perficient拉丁美洲是一家拉丁美洲软件开发公司,在哥伦比亚、墨西哥和美国设有办事处。我们的客户范围从财富500强公司到硅谷初创企业。拉丁美洲在高质量方面表现突出,外包敏捷软件项目.
通过接受,您将访问https://nearshore.perficient.com/外部的第三方提供的服务
评论