The agile SDLC model is different from the traditional waterfall model, and therefore has different sets of challenges starting right at the project planning stage. Agile follows an iterative delivery method which makes project planning in Agile take a slightly different approach.
Documentation in a project is nothing but a sophisticated process of standardizing project information and its communication to the team members, so that the project can progress smoothly. With this objective in mind, the documentation of the project plan is emphasized as one of the best practices of project management discipline, whether it is a traditional Waterfall model or Agile model.
Since Agile SDLC emphasizes on iterative delivery of every feature, its requirement for documentation is a bit different from the traditional waterfall approach. Documentation in Agile projects is usually a set of documents, some of which have to be developed at project initiation stage, whereas some have to be developed continuously at the end of every consecutive iterative delivery.
Though Agile project management will still have to capture the project requirements, identify risks, and provide a detailed work management plan for every iteration, there are certain crucial elements to understand in the Agile project documentation process:
- One of the key principle here will be to understand that the documentation should follow ‘just enough’ approach for every iteration. There is no need to include all the details upfront as Agile does not follow this practice in principle.
- Documents should specify the functional requirements as well as non-functional requirements, identify risks, define the scope, and provide a detailed work management plan for each iteration.
- Agile project documents must also make provisions and offer scope for requirements change.
- The documents must capture dependencies on other projects/products.
- Agile project documents must specify the situations where the document set from previous iteration can be edited or whether a new specification document should be added.
Due to many sprints that an Agile project goes through, the documentation in Agile SDLC must ensure that they address and capture the following important areas for every iterative delivery:
- Revised Backlog list
- Product/feature documentation in every iteration
- Modified/Iterative use cases
- Non-functional requirements
- Testing use cases
- Deployment plan including help and maintenance scope
Overall, an Agile SDLC project should have the following set of documents:
1. Project charter: This document should define the goals of the project and its business justification. It should be prepared at the project initiation stage. This document can be considered similar to the Reference Plan document of a traditional waterfall project. This document should also cover the assessments that were used for selecting a particular Agile methodology [e.g., Extreme Programming (XP) or Scrum], provide good practices for the selected Agile methodology, and have reference to all other project documents.
2. Requirements Plan: This document should capture ‘just enough’ functional requirements as well as non-functional requirements. The functional requirements should be ‘just enough’ to start the first iteration.
3. Iteration Documents: These documents have to be prepared after every iteration to include Backlog list, and other details to allow the next iteration to proceed. Iteration documents should include details on modified use cases, functional requirements, non-functional requirements, tests and maintenance plan.
Other than these documents, agile projects must also have following documents prepared at the initiation stage. These will be very similar to those for traditional projects:
- Quality management plan
- Team management plan
- Communications management plan
- Issue management plan
- Review management plan
Thanks for reading. What is your take? Do you think any specific document is missing here? Share your thoughts and experiences with us here.