Wednesday, August 24, 2005

Approaches to Iterating

Recall that we at Cauvin, Inc. specialize in agile product management. Most agile methods incorporate iterations. With iterations, you develop and "release" the product many times before the final release to customers. In each time-boxed iteration, you refine the requirements, design, implementation, and tests for that "release" of the product. (I'll explore in a future entry how some agile methodologies plan the tests for the product before they design and implement.)

Yet sometimes it's not immediately obvious how to divide a product development effort into iterations. Here are some approaches that we use with our clients:
  • Verbal Description - Flesh out use cases and verbally walk through the customer experience with prospective customers.
  • Mock-Up - Compose a Powerpoint presentation or other user interface and use it to demonstrate the user experience to prospective customers.
  • Simulation - Create a simulated environment for testing your product and demonstrate your product working in that environment.
  • Use Cases per Iteration - Implement just a subset of the product's use cases and demonstrate them to prospective customers.
  • Use Case Versions per Iteration - Implement simplified versions of the use cases your product will ultimately satisfy. Demonstrate these working versions to prospective customers.
No matter which approaches you use to divide your product development effort into iterations, try to confront uncertainties and risks (in requirements and design) in early iterations.

No comments: