敏捷开发过程中如何开发高质量的软件.docxVIP

敏捷开发过程中如何开发高质量的软件.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
前言 什么是软件质量?很多技术同仁都认为软件质量是软件是否存在 Bug,是否性能高,安全性好等等。其实软件质量的含义远多与此。质量就是软件产品对于某个(或某些)人的价值;价值是指创造利润,又或是降低成本。总的来说,软件质量是软件的灵魂和存在意义。另外,我们知道现在敏捷开发日趋流行,其实敏捷开发也是顺应市场的对价值的诉求和日益复杂的业务而产生的方法论,敏捷开发是追求高质量软件的方法论和过程。 本文将和大家一起探讨软件质量的含义,以及敏捷开发中如何进行高质量软件的开发。 软件质量的理解 首先,我们先来看看什么是软件产品质量?先有了软件质量定性的了解,才能介绍如何影响、控制和改进质量。 大师温伯格在《质量·软件·管理系统思维》说到:“质量就是软件产品对于某个(或某些)人的价值”(某个或某些人文章中统称之为用户),这里面包含两个层次的质量含义,即“正确的软件”及“软件运行正确”: “正确的软件”是说,一个软件要能够满足用户的需求,为用户创造价值。此处的价值可以体现在两个方面,即为用户创造利润或者减少成本。如果一个软件能够满足需求的用户群体越大、创造的利润越大或减少的成本越大,则该软件产品的质量越高。反之,一个产品尽管运行良好,没有 Bug,扩展性很强,性能很好,但如果没有服务的用户人群,没有为用户创造价值,则这样的软件尽管运行良好,也无任何质量可言。 “软件运行正确”是说软件没有或很少 Bug,扩展性很强,性能良好,易用性高等。这样的软件是一个运行良好的软件,但还不能称之为高质量的软件。只有在软件符合用户的需求的基础上,运行良好的软件,才是一个高质量的软件。当然,如果软件完全符合用户需求,但不易使用,经常出错,性能很差,这样的软件也不是一个高质量的软件。 “正确的软件”及“软件运行正确”二者相辅相成,前者关系到软件的成败,后者关系到软件的好坏。在现实的很多开发团队中,特别是偏技术的开发团队中,往往过分注重后者(软件的 Bug 率,性能,可扩展性,架构等),经常陷入在软件开发过程的细节之中,而忽略了前者(软件需要符合用户的需求),开发出的软件经常能用但无用,不是最终用户期望的软件,这样的软件是能用但无用零质量软件。 在产品开发中,能用但无用的现象尤为明显。产品和项目不一样,项目往往是为某个客户而开展,有特定的需求来源,而产品往往是一个更广泛的概念,是市场上某一类客户群体的价值代表,没有固定的需求来源,而且良好的产品往往要起到引导客户需求的作用,超越现有客户能提出的需求,所以对产品来说,“正确的软件”更加困难,但也更加重要。 当然,“软件运行正确”同样非常重要,关系到软件的好坏。Bug,扩展性,性能,易用性等问题会造成客户想用但用不了,同样造成软件质量问题。 敏捷开发对软件质量的影响 敏捷开发对软件过程和质量控制产生了一系列的影响,主要来自两个方面的影响,用下图表示如下: 图 1. 敏捷过程带来的影响 图中的具体含义如下: 敏捷开发对“正确的软件”的影响 敏捷开发拥抱市场变化,拥抱客户需求变化,采用迭代反馈的方式管理项目。其背后的一个核心理念是:一个高质量的软件,首先应该是一个“正确的软件”,能够满足客户的需求。 我们知道当今的世界产品极大丰富,不管任何产品都会有的竞争对手和替代产品,大家熟知的有浏览器大战,输入法血拼,视频网站、博客满天飞,国内外 ERP 系统竞争激烈等。所以,软件的质量是要在市场化的竞争激烈的环境中去进行验证,进行优胜劣汰,最终高质量的软件产品被客户接受。所以,一个高质量的软件首先应该是一个“正确的软件”,能在激烈的市场和竞争对手中找到市场定位,有客户需求和市场销量,能提高产品的使用者客户体验的软件。否则,软件做的再好、性能再快、界面再优美好用也不是一个高质量的产品。 敏捷开发正是符合这样市场环境而诞生并流行,其迭代反馈、拥抱变化的理念和方法,能够使得团队更能开发出符合市场和客户的高质量软件。如上图 1 中所示,左图中的大半圆表示传统的开发模式中,产品不能满足客户需求的风险。因为传统的开发模式基于中央控制的计划,没有足够的迭代和反馈理念和方法,犹如一次性的把所有的资金购买了一只股票,导致质量风险大。上图 1 中右边的敏捷开发中,采取迭代反馈的原理,通过一系列的方法(下面会介绍)把市场和客户的需求和期望分散到个整个软件的生命周期中,犹如把所有资金进行资产组合,最后的软件产品质量风险小,能够较大概率的符合市场和客户的需求,并带来价值。 敏捷开发响应市场和客户价值取向,但如果没有完善的方法去收集和分析市场和客户的反馈,也会导致严重的质量问题,如软件随波逐流,随客户朝夕更改;市场定位模糊,没有核心竞争力;和竞争对手没有任何区别,陷入艰难的红海战争中等。所以,敏捷开发方法对高质量软件也提出了挑战,需要相应的方法和流程去

文档评论(0)

Epiphany + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档