- the progress of designs, development, test and deployment as per the plan. Daily scrum calls during design iterations normally involves designers, developers, process folks and testing and deployment teams. This would enable facilitation of the design specifications being agreed by all impacted parties and test cases being planned and written well in advance by the testers. This would also ensure that the completed designs are indeed in a stage where it can be picked up by the relevant teams and developed, tested and deployed in an allocated iteration slab [ Generally 2 weeks each]. It’s also essential to have stand up calls internally during development, test and deployment stage to ensure any discrepancies are ironed out at an early stage in the SDLC life cycle. The best practice is to have a quick 15-20 min stand up call per day to track the progress of the project.
- Use of collaboration tools like wiki – It’s a general practice to use Collaboration tools like Wiki for documenting and sharing user stories, completed design documents with any UML diagrams, highlighting dependencies between user stories or test dependencies etc. This facilitates exchange of information stored at one place for all involved parties.
- Co-location – Co-located teams greatly increases the inter team communication resulting in speedy decision making.
- Use of audio visual aids – In case of teams spread across locations and where Co-location is a challenge it is ideal to use audio visual aids like live meeting with white board options, net meeting etc.
- Feed back integration and decision making - Engaging stake holders like Project managers, designers, developers, testers, deployment and process teams throughout the agile SDLC life cycle, would ensure correct decisions being made at the right time and facilitates early feedback in the lifecycle making the process truly agile. Engaging business stake holders at appropriate check points ensures that the project being delivered is clearly aligned to the business vision and improves customer satisfaction.
- Re-useable artifacts - It’s a best practice to arrive at re-useable artifacts like design templates, development and test progress templates, Wiki templates, delivery progress templates, release planning sheet, Project high light templates etc, which greatly reduces the time spent on documentation.
- Group reviews and sign off – At the end of every iteration it is a good practice to have a quick group review and sign off the deliverable so that there is no discrepancy that has been missed out at any stage.
- Continuous improvement and lessons learnt – Regular feedback sessions at the end of an iteration or at specific agreed check points to look at what worked well and what didn’t for the project enables lessons learnt to be incorporated into future iterations. This fosters a continuous improvement process through out the agile delivery.
Once the decision is made by the business to go ahead with Agile delivery approach as a way forward, it is very important to form a team with clearly defined roles and responsibilities as required by the agile process. Since the approach to agile delivery needs a clear paradigm shift in thinking compared to waterfall delivery, it is important not to undermine the need of a well defined training plan. This ensures that all the involved parties receive training and awareness sessions periodically to re-enforce their understanding of the process. This also takes care of churn in the people and doesn’t affect their adherence to the best practices and agile delivery guidelines. It is also important to complement the best practices with key industry standard processes like ITIL rationalized to suit the demands of rapid delivery in agile programmes.