So you have heard about this strange word - 'Agile' . After some googling, reading some blogs and maybe some books you hear only promises how you will implement majority of your projects easily, in time and within budget. All you need is to put some team together, write some user stories, estimate them and start doing iterations. You track your velocity, write unit tests and more or less follow best agile practices while coding. And somewhere in the middle you find out that you are lost and not sure what is happening. Then you start to ask your self what had happen?
This is happening probably more often than we would expect. And the reasons are different. I will not try to find those reasons as lot of them are already described and you can find out how to prevent them.
I will concentrate on one that is for unknown reasons rarely mentioned in blogs and even agile books.
Even when you are doing agile software development (XP, Scrum) what you need is concept or vision for the project. But not only in the head but also on the paper. This needs not to be hundred pages document but document that clearly states what are the goals of the project.
In the number of agile posts, your project is starting with writing epics, stories and/or roles. But it is little bit confusing how to get those user stories. Advice you find the most often is to make user stories writing session where moderator guides meeting and the goal is to write as many user stories as possible. But how you can write user stories if you are not aware what is the main goal of the project? To be able to write good user stories (even epics) you must have clear idea what is the vision of the project.
To be able to write good user stories you must have vision document.
Some of the attributes of the good vision document are:
- It is short
- It clearly states goals of the project
- It is read and understood by the software development team (and all other interested parties)
- It is always up to date (changing with the project)
I believe these attributes state that vision document is agile.
So if you are planning new project and want to do it right way I believe correct order of steps would be (note that very often the first step is left out and I believe it is the first mistake in the project):
- Write vision document and communicate it to all interested parties
- Write epics and user stories based on the vision document
- Create your product backlog
- Start with iterations
- After few iterations review the project
- If necessary change user stories
- If necessary change vision document
- Communicate changes in the vision to all team members so they are aware of the new course of the project
So vision document must reflect all the time your current goal of the project and this goal has to be clearly communicated to the team.
Be careful, doing agile project without clean vision and without adapting during the path is impossible.