The Agile Approach

As with Toyota's Lean Manufacturing model, the Agile approach embraces some specific tactics for creating a more efficient and cost-effective development process:

  • Highly iterative processes, with development cycles that tend to be short and quickly adapt to meet needs that become visible only through the course of development.

  • Bringing the customer into the development process.

  • Creating smaller workgroups with highly skilled workers who mentor the more junior members of the team.

  • Valuing getting things right, or right enough, early on, and not allowing fundamental errors or inefficiencies to linger or recur. This is clearly reflected in the Agile emphasis on testing, consistent and thorough peer review, and repeated refactoring.

In addition, Agile development methods attempt to harness, or at least allow for, the unpredictable (Figure 7-2). Imperfect knowledge is a hurdle in both product development and software development. While market forecasting can be remarkably accurate in some cases, you can't depend on it to be reliable. This is increasingly problematic as you attempt to keep up with the developments in the marketplace we've discussed in previous chapters. As you expand our vision of your customer's needs, it's increasingly clear that those needs can be quite complex. Or perhaps more accurately, to keep the solutions for your customers simple, the solutions may be complex for you. Even in cases where the solution itself is not complex, the road you take to ...

Get Subject To Change: Creating Great Products & Services for an Uncertain World now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.