Practices Supporting Iterative Development


Practices Supporting Iterative Development<title/>

Most practices in this book support iterative development.


Most practices in this book support iterative development, directly or indirectly. The following list includes some of the more critical practices:

  • Practice 1: Manage Risk explains how to identify and prioritize key risks. Key risks are used to determine what to focus on in the next iteration.

  • Practic 2: Execute Your Project in Iterations describes how to plan iterative development and think about dividing up your project into a series of iterations.

  • Practice 3: Embrace and Manage Change describes what changes to encourage and discourage at what time within a project. Discouraging certain types of changes late in the project is essential to manage risk effectively.

  • Practice 4: Measure Progress Objectively explains how to assess progress better through iterative development.

  • Practice 5: Test Your Own Code details how developers can approach testing their own code holistically and includes techniques that will potentially participate in a broader test automation strategy.

  • Practice 6: Leverage Test Automation Appropriately describes how automating appropriate amounts of the test effort can also realize improved product quality and shorter product development schedules.

  • Practice 7: Everyone Owns the Product! addresses how all team members need to orient their mindset to enable effective iterative development.

  • Practice 10: Prioritize Requirements for Implementation shows how to determine which requirements to address first to deliver customer value and to mitigate key risks.

  • Practice 14: Manage Versions discusses how to manage the complexity of evolving hundreds of artifacts as you iterate.

If you want to move toward iterative development, these practices should be on your shortlist to adopt.

Practices Improving Your Ability to Manage Requirements

Problems with requirements management are often quoted as a primary source for project failures. As an example, the 1995 Chaos Report by the Standish Group listed requirements management issues as five of the top ten reasons for project failure. A number of practices in this book will help you improve the management of requirements:

  • Practice 2: Execute Your Project in Iterations describes how to plan iterative development and think about dividing up your project into a series of iterations, so that you can get feedback on the requirements.

  • Practice 7: Everyone Owns the Product! addresses how all team members need to orient their mindset to enable effective iterative development.

  • Practice 8: Understand the Domain describes how to document key aspects of the problem domain to minimize communication issues and to increase every team member's understanding of the problem domain.

  • Practice 9: Describe Requirements from the User Perspective outlines how to document requirements in the form of use cases, scenarios, and user stories and how to support your requirements with storyboards and user-interface prototypes.

  • Practice 10: Prioritize Requirements for Implementation shows how to determine which requirements to address first to deliver customer value and to mitigate key risks.

No matter how good you are, you will make many incorrect assumptions regarding requirements.


No matter how good you are at managing requirements, you will make many incorrect assumptions regarding them, and the best medicine for flawed requirements is often iterative development, because it allows you to showcase a partial solution to make sure that you are on track. Therefore, also take a close look at all the practices for iterative development.

Practices Improving Your Ability to Do Architecture, Design, and Implementation

A majority of people in most projects are involved in architecture, design, and implementation activities. Making these people more effective is hence of great value. The following practices will help you improve in this area:

  • Practice 5: Test Your Own Code details how developers can approach testing their own code holistically and includes techniques that will potentially participate in a broader test automation strategy.

  • Practice 6: Leverage Test Automation Appropriately describes how automating appropriate amounts of the test effort can also realize improved product quality and shorter product development schedules.

  • Practice 7: Everyone Owns the Product! addresses how all team members need to orient their mindset to enable effective iterative development.

  • Practice 10: Prioritize Requirements for Implementation shows how to determine which requirements to address first to deliver customer value and to mitigate key risks.

  • Practice 11: Leverage Legacy Systems provides information about reuse of another type of asset, that is, how to leverage the many valuable assets you have in your organization.

  • Practice 15: Leverage Patterns explains how patterns allow you to produce an architecture more effectively and how patterns can be used to help enforce the architecture.

  • Practice 16: Architect with Components and Services describes the benefits of developing with components and services and explains how to go about developing a component- and services-based architecture.

  • Practice 17: Actively Promote Reuse offers guidelines for how to enable and promote reuse of assets.

  • Practice 18: Model Key Perspectives explains how models can help you understand, communicate, and accelerate development.

Practices around architecture, design, and implementation are rapidly evolving.


This is an area where practices are rapidly evolving. New technologies help us architect, design, and implement our applications more effectively, while innovative approaches to design and implementation, such as agile approaches, make us look at how we work from new perspectives.

Practices Improving Your Ability to Do Testing

Testing needs to be initiated early in the project.


Testers may be some of the most undervalued resources in a project, often thrown in at the bitter end in an attempt to raise quality. Throughout the book we have provided guidance on how testing needs to be initiated early in the project and to continue throughout the project. A number of practices in this book focus on testing and quality assurance:

  • Practice 1: Manage Risk explains how to identify and prioritize key risks. Key risks are used to determine what to focus on in the next iteration.

  • Practice 2: Execute Your Project in Iterations describes how to plan iterative development and think about dividing up your project into a series of iterations, so that you can start testing early in the project.

  • Practice 4: Measure Progress Objectively explains how to assess progress better through iterative development.

  • Practice 5: Test Your Own Code details how developers can approach testing their own code holistically and includes techniques that will potentially participate in a broader test automation strategy.

  • Practice 6: Leverage Test Automation Appropriately describes how automating appropriate amounts of the test effort can also realize improved product quality and shorter product development schedules.

  • Practice 7: Everyone Owns the Product! addresses how all team members need to change their mindset to take more responsibility for the ultimate quality of the application you are developing.

  • Practice 20: Continuously Reevaluate What You Do offers guidelines for how you can improve your working procedures by always challenging what you do.

Testing is where the rubber hits the road. It provides invaluable feedback on how well you are doing and allows your teams to improve the way they work.



Agility and Discipline Made Easy(c) Practices from OpenUP and RUP
Agility and Discipline Made Easy: Practices from OpenUP and RUP
ISBN: 0321321308
EAN: 2147483647
Year: 2006
Pages: 98

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net