使用敏捷规划开发软件的实践建议

来源:developerWorks 中国 作者:Steffan Surdek
  
您是否希望实现敏捷规划?您是否正在进行迭代开发并且仍然身陷困境?在本文中,作者将利用他的经验帮助并指导 IBM 产品团队获得能够回答上述问题的路线图:“如何利用敏捷规划开始开发发布版软件”?他介绍了敏捷规划的基本知识,并分享了他的一些观点,指出了哪些方法是有效的以及哪些方法是无效的。编者注:根据作者的要求,图 1 和图 4 做了更新,并增加了其他一些更正内容。

“我们正在进行敏捷开发,因为我们在开发中利用了迭代”。宣称已经实现了敏捷开发的团队经常这样说。然而,真正意义上的敏捷开发,不仅仅是在开发中实现迭代开发那么简单。

过去,开发团队提供了具体的发行版,包含预先确定的内容和预先确定的日期。在每个发行版之初,管理团队要和开发团队进行会谈,讨论发行日期和内容实现方面的压力。

在这种情况下,遇到的挑战就是管理层试图指定发行日期和内容,而开发团队的观点是他们只能实现其中之一。在实际中,发行版的内容可能要比开发团队的最初设想更加灵活。不幸的是,开发团队并不能总是意识到这一点,而人们已经开始忙碌地工作。

敏捷软件开发简介

敏捷软件开发指一组建立在类似原理上的软件开发方法学。这些方法通常可以推进一种项目管理流程,这个流程鼓励频繁地进行检测和采用,设计能够有助于快速交付优质软件的最佳实践,以及一套领导/业务原理,内容涉及团队工作、自我组织、可说明性,以及能够满足客户要求和实现企业目标的开发。

以下的现代运作管理和分析方法使用了相似的概念基础:

  • 精简式(Lean)制造/生产:这种生产实践考虑到了任何不能为最终用户创造价值的资源支出。
  • 软系统方法学(Soft Systems Methodology):这种方法最适合分析对于问题定义存在不同观点的复杂情形(换句话说,“软” 问题类似于 “如何管理灾难?” 之类的问题)。
  • Six Sigma:这种方法试图找出并排除在开发过程中引起缺陷和错误的原因,具体方法是使用一组优秀的管理方法,并在擅长使用这些方法的组织内组建一个特殊的人力团队(比如 “Black Belts”)。

本文将为您提供一个路线图,帮助克服这些困难并使团队从简单的迭代开发过渡到敏捷开发。路线图包括:

  • 帮助团队转移到使用敏捷规划的建议。
  • 有关迭代开发的指导。迭代开发应当持续多长时间?在给定的发行版期间,团队是否只能从事迭代开发?团队在各个发行版之间应该执行哪些工作?
  • 有关创建用户描述(user story)以及理解产品所有者角色的建议。用户描述是什么?应该由谁编写?综述(Epics)和用户描述之间有什么区别?描述中包含的工作应该持续多长时间?产品所有者是谁?产品所有者在这个过程中的作用是什么?
  • 有关在产品、发行和重复阶段计划和管理计划安排(backlog)的建议。每个规划阶段都有自己的计划安排。这些不同的计划安排应当包含哪些内容?对于每个规划阶段,需要进行何种程度的评估?
  • 评测和解释团队进度的技巧。可以从团队进度中推断出哪些信息。

简化向敏捷开发的过渡

在开始实现过渡之前,需要考虑下面这些事项:

  • 理解您希望在过渡过程中实现哪些目标。对于某些人来说,他们很难接受变化,并且您需要理解,要获得所需的结果,您希望在早期流程的哪些位置作出妥协。一旦证实了您获得了所需的结果,那么就可以始终推动更多内容;要表示您需要添加哪些内容,这将是过程演变中的下一个步骤。
  • 不要草率地开始过渡流程。如果过渡流程对于团队来说是必然之举,而团队并没有进行适当的培训,那么这将产生严重的受挫情绪,并且影响到团队成员对新流程的信心。
  • 要清楚培训的必要性。了解需要学习哪些内容,然后掌握这些知识。尝试首先对一些小型项目使用敏捷方法,从中获得一些思路。学习了所需的知识后,对团队的其余成员进行培训。确保在开始之前,所有团队成员使用相同的词汇表并对流程有相同的认识。培训过程将帮助您找到自己的知识体系中的缺口。
  • 坚持完成流程。一旦开始流程后,就不要走回头路。您只能选择做与不做,而没有别的选择。如果发现有出错的苗头,那么对新流程作出调整,而不是继续沿用旧方法。

您需要团队做出一定的成功承诺。要获得他们的承诺,首先您自己要对流程充满信心。如果您坚信自己可以顺利完成的话,那么敏捷规划就可以为您的团队工作。




时间:2009-06-08 16:34 来源:developerWorks 中国 作者:Steffan Surdek 原文链接

好文,顶一下
(1)
100%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量