Iterations, truly defined, are ‘idea to successful deployment’. This concept will apply at various levels. An overall application of the iterative process is a high level start to finish accomplishment. Business has an idea of how things can work. Requirements are gathered… communicated. Work is done and deployed to QA, UAT. Deployed to production and verified.. Voila, we have an iteration. Anything that disrupts that smooth process (lol) decreases velocity. Whether it is management, communication, watched pots, personal grudges.. you name it.
On a different level, an iteration can be defined at more of a micro level… micro-iterations. A developer gets a requirement, makes changes, tests (hopefully, maybe… well it compiles anyway) sends it to the QA team… it comes back. Maybe the developer didn’t have the right requirements, maybe bad testing, maybe changes in requirements, maybe the inability to test because of lack of a good test environment. Whatever the reason, we are back to square 1.05. Here are a few suggestions of how to increase this velocity…
- Set up a good test environment with reasonably comprehensive data.
- If release to QA environment is laborious, as it often is, developer can communicate and demonstrate results to QA with a simple 5 minute screen-share.
- Emphasize developer testing… require screen shots of results on tickets.
More coming…