Discover by Doing

Prefer a working proof of concept rather than a rigid specification.

Start “Getting Real” as soon as possible. See if you can produce a working prototype and discover the next steps. Iterative improvement and incremental change are about adapting to new information with agility. If you control the whole product from planning to specifications, requirements, design and so forth, you can decide to not overproduce planning in the initial phases and instead deliver updates to the plan continuously, just-in-time, as more information emerges. However, if you don’t control the whole lifecycle of your software project and are handed a rigid, exacting specification and a budget, Bonsai principles can still help improve productivity. In waterfall, the main difference is that, instead of a “voice of the customer” that continually provides feedback as the software progresses, the only feedback is the difference between the software and the initial spec. You can still break down the steps into small increments and order them by dependencies and priorities. You can incrementally discover the implementation details and even continuously reorder the backlog based on what you think you most need to know in the initial phases to make better implementation decisions as the project progresses.

Fail Fast

If an idea looks like it might not work or will be too much trouble, throw it away now. Don’t let people struggle too long. The maximum time for a research spike is about 2 weeks. If you can’t make a working incremental improvement in 2 weeks, it’s likely time to revise the plan or break down the task based on what was discovered.