分享

Dr. Dobb‘s | Scaling Scrum | (二)

 xiao huan 2008-05-21

Scaling Scrum

(Page 2 of 3)

The Full Development Picture

Construction is only one part of the overall software development lifecycle. Figure 2 presents an overview diagram of the Agile lifecycle which encompasses the ideas presented in Figure 1 and extends them to address the full range of software development issues. This lifecycle explicitly includes the concept of phases because the activities that you perform do in fact change throughout the span of a project. I‘ve adopted the normalized terminology described in the sidebar plus other common agile phase terminology—many agile teams refer to project initiation effort as "iteration 0" and transition as the release phase. In the Eclipse Way, the Agile process followed by the Eclipse development team, they use the terms "warm up" and "end game" respectively. In Agile and Iterative Development (Addison Wesley, 2004), Craig Larman uses the terms "pre-game" and "release" for these phases. The Open Unified Process (OpenUP) uses the terms Inception and Transition respectively. Sadly, many people consider the concept of phases to be antithetical to agility, yet in practice they seem to be a fundamental lifecycle concept.

Figure 2 encompasses several critical activities to scale Scrum to meet your real-world development needs:

  • You need to do some initial requirements and architecture envisioning at the beginning of the project to address basic questions around scope, cost, schedule, and technical strategy. Few projects are funded without acceptable answers to these issues.
  • To ensure the quality of your work, you should have an independent test team that works in parallel to the development team. This team reports change stories back to the team who then treats them exactly like a requirement—they‘re estimated, prioritized, and put on the work item stack (see "Scaling Test-Driven Development", www./architect/205207998).
  • The "work item stack" contains all of the potential items of work that a team may need to address, not just stakeholder requirements. For example, you need to set up people‘s workstations, fix defects, people attend training, they take vacations, they review the work of other teams, and so on. These are important activities that must be planned for accordingly.
  • Iterations can be any length, not just 30 days, and an individual team needs to determine which is best for them. As Dr. Dobb‘s 2007 Agile Adoption Survey (www./architect/200001986) found, the most popular iteration length is two weeks.
  • Effective agile teams prove their architecture with code early in the project (this is the Elaboration part of Elaboration and Construction). Although purists claim that you should prioritize based solely on business concerns, the reality is that it behooves you to address technically risky requirements early in the lifecycle. Luckily, business value and technical risk often go hand-in-hand, so you rarely need to "game" your work item stack much to accommodate this strategy.
  • The Transition phase provides time to successfully release software into production. This effort includes training people, finalizing testing, finalizing documentation, pilot/beta testing, and deploying the system; see "The Agile End Game" (www./architect/198800565) for more detail.
  • Enhancement requests and defect reports are identified once the system is in production and treated as new work items that must be prioritized.

[Click image to view at full size]

Figure 2: The Agile Software Development Lifecycle. The full development lifecycle must address project initiation, construction, and deployment.

Since the late 1990s, I‘ve written that effective software development is serial in the large, iterative in the small, delivering incremental releases over time. Over the past few years the rhetoric around agile software development has unfortunately drowned out the "serial in the large" part of the message, forcing many people to rediscover proven techniques and strategies. If the lifecycle of Figure 2 makes sense to you, and you‘d like to extend Scrum to address these issues, I suspect that you‘ll find that the OpenUP, downloadable free of charge at www./epf, will be of interest to you.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多