从敏捷工程实践中获益的五种途径

发表于:2014-8-13 11:24

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:夏雪    来源:InfoQ

分享:
  创造有用的软件是门工艺。这是没有非黑即白的成功公式的。但是,却有一些敏捷工程实践,实践证明它已经屡次为企业增加了价值,但前提是要考虑周全之后再使用。在本文中,我将与大家分享5条具体的途径,你的企业能够通过这些途径从敏捷工程实践中获益。
  (假设我们使用Scrum + 极限编程(XP)= 敏捷这条基本公式,那么在我讲敏捷工程实践时就会谈到公式中与XP相关的那一部分,比如测试驱动开发、结对编程和持续集成。)
  James Shore在一篇精辟的博客中说:
  “与XP(极限编程)相比,Scrum更加简单,对原有工作几乎也产生不了多大的影响,所以我看到很多人是从Scrum开始入手的。但其中的问题是,从Scrum开始入手的团队比从XP开始的团队多得太多了。XP团队在开始时会经历更多的痛苦,但在第一年就会达到高效的状态。”
  我不仅同意他所说的,而且也亲眼见过很多次这样的情况。XP很难。它难在需要严格的纪律,另外,它的好处虽多却有时难以立杆见影。
  我的父亲是一名牙科医生。他有一次告诉我说“找一位好的牙科医生是很难的。牙医能补牙或者杀死牙神经,但你5年内不会知道他做得好不好,因为你需要一段时间之后才知道他补得到底好不好。”XP与之非常类似。
  我清楚最好的软件开发人员(而且知道上千名)在高压环境下是最遵守纪律的。
  许多开发人员体验了敏捷/Scrum/精益/XP的做法。但是,严格的截止日期临近时,或者团队已经拖期时,再或者公司要求团队“快速完成”时,他们还能维持多高的纪律水平呢?
  There are many XP practices. The most valuable ones for a business are:
  现在有很多XP实践,其中对商业而言最有价值的是:
  测试驱动开发—TDD是你的商业安全网。因为测试是在编码之前完成的,所以写完的测试一定会运行失败,接下来再写代码使测试可以通过。TDD保证你的产品功能,不管公司和技术团队实现的是大规模的变更还是小规模的变更。
  结对编程—让2名开发人员写同一段代码,使用同一个键盘和同一台显示器。因为结对大大降低了浪费的时间和缺陷,所以能带来更高质量的代码,并带来高水平的协作。
  集体代码所有制和持续集成—如果每段代码不只有一个人熟悉,那么就不会有什么交流瓶颈了。把代码持续集成到一个主干可以避免重复和不匹配的代码。
  重构—在当时的情况下,写的代码是解决已知问题的。通常,团队巧妙地解决了他们的问题,然后持续重构和修改代码,确保代码库能以最为高效的方式不断满足业务最新的需要。
  然而给定的XP很难,它需要连续的训练和一定的时间保证才能做得好,高管们要的是速度。技术总监们、副总裁们、首席执行官们说“我希望我的工程团队获得更好的敏捷工程实践效果,使我们变得更快。”
  最初,我同意 James Shore所说的,XP的确很难,实际上它违反了敏捷帮助团队更快的理念。事实上,XP有陡峭的学习曲线,而且很自然的是,这需要一定的学习时间,学习XP的团队肯定比什么都不学的团队更慢。
  所以,如果“更快”不是敏捷工程实践真正的价值,那么什么才是它真正的价值呢?
  我认为,敏捷工程实践真正的价值是,它们让公司以某种方式拥抱变化,事实上,这将成为一种竞争优势。
  为什么呢?
  当我们进入2014年,这个论点将在逻辑上成为合理的。如果现实果真如此,那么以此推理,在接下来的十年间,那些充分利用软件构建流程的公司将走向成功。
  是的,这个道理大家都懂,有很多竞争优势是软件之外的。例如,那些能够充分利用数学工式去预测未来股票的对冲基金将拥有竞争优势。那些能够充分利用布艺和颜色去预测未来时尚的零售商店将拥有竞争优势。但是,随着7乘24小时的网络连接和全球信息共享,你刚想到一个好点子,你的竞争对手就将会去模仿它了。
  这让我们兜了一圈又回到刚才的观念,那些能够充分利用软件构建流程的公司将超过他们的竞争对手,拥有巨大的竞争优势。这个概念的关键词是“流程”。它是技术栈无关的。从敏捷工程实践中充分获益的关键是,出现危机的时候仍能极力地坚持最起码的流程原则。这就像是锻炼身体。假设你休假的时候每周锻炼五次,上班的时候每周锻炼一次,那么实际上你每周只会锻炼一次。如果离截止日期还远的时候才实践结对和TDD,一旦要到截止日期了就把敏捷抛到一边,那就说明你并没有勤奋地实践敏捷流程。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号