by Istvan Bagyura, CTO, P92
Perhaps the most common misconception about “agile development” is that it has no structured plans and the customer/product owner can change their mind any time during the development. It is true, that they can change their mind at any chosen moment, but there are severe consequences.
Firstly, developers will become frustrated, because nothing will ever be finished. Secondly, the software will be an ever changing mess and will never be completed. Thus the development project will become a living nightmare for everyone involved, very chaotic and unpredictable and will most likely be a failure rather than a success.
Why does everyone think that agile means constant change?
Agile development methodologies are iterative and need everyone to remain focused on the goals of the current iteration. In practice this translates as the goal of the current iteration is the most concrete and the goals of an upcoming iteration are vaguer and open to discussion.
Every task in the current iteration is set. Goals and tasks are understood by both the developers and the product owner, outlined by developers and there is an agreement between the customer and the development team to act upon them. If anything changes, then the agreement is broken and we then have to deal with the consequences. We have to start the planning from the scratch, because the original plans have been invalidated. Therefore in agile development it remains best practice not to change the scope of work during the current iteration of the project to avoid confusion and poor delivery and to gain the most value from the development team.
Change can happen!
Sometimes during a project there are needs to make immediate and unplanned changes. In this scenario it is the best to close the current iteration and make new plans. The worst thing that can happen is that you lose an iteration. For example, each iteration takes approximately 2-4 weeks, therefore this is the maximum time you can lose.
As the upcoming planned iterations do not contain lots of details you will not lose much time there. This is where agile comes into its own, it concentrates on the present and work efforts are spent on the most important items at that given time. We know that other ideas and development work is in the pipline and we already have some ideas , but we do not overthink as they can still change in an agile environment.
Concentrate on the goals
Every iteration should have a ‘name’ or ‘title’. Usually it is a one sentence description, or a short list of goals. I prefer the one sentence description that captures the overall goals of the 2-4 week iteration. This description summarises the overall goals and everything we do should be aligned with these goals. It helps us to select tasks and prioritize them. It also allows us to categorise the changes. If however we need to change the iteration's description, this signifies that the change is significant and can endanger the whole project.
I often see agile teams that use non-descriptive names, for example Sprint 1, Sprint 2, Sprint 7 etc… This use of titles does not allow us to concentrate on our overall goal and our client's needs and can be a distraction and cause a loss of focus. It is much better (a must) to have a descriptive title, such as, “working online booking”.
Key to a successful agile project
- Do not make dramatic changes during an iteration.
- Always give a title to the iteration that captures the goals.
- If you cannot avoid dramatic changes STOP and re-plan.
Practical Tips for SCRUM users:
- No-one can change the priorities of the SCRUM board without a discussion and agreement.
- No-one can put new User Stories onto the SCRUM board without discussion and agreement.
- No-one can remove User Stories from the SCRUM board without discussion and agreement.