In last few years, we have been hearing the word ‘Agile’ frequently in the project delivery workspace. Quite often, we had constructive debates and interesting discussions among colleagues on challenges in Agile projects. Common concerns were – lack of ownership from team, mixed signals from senior management and ineffective cost management. I would like to share my experience where we applied agile methodology to a project aiming to deliver the functionalities/features quicker for the business to use and the challenges we encountered.
The project was initiated to develop new reports for a business unit to measure their sales performance. The data required to build the report was sourced from a datawarehouse which hosted the consolidated transactional data from various source systems. The project scope was to develop reports and to implement the required business rules and data transformation. The project applied agile techniques to deliver the reports in an iterative deployment schedule. The features required in the reports were listed and prioritised by the business sponsor and the sprint period was 4 weeks. In Agile methodology, sprint is the time period within which a selected list of feature is completed and made ready for business use.
In an agile project environment where the team is set of highly skilled developers, a sponsor who was supporting the team to follow agile framework, a management team who applied the agile techniques appropriately, what could go wrong in such agile project? In spite of an optimistic agile environment, there were still challenges.
Design changes during the iterative sprints – Are you thinking of doing design, development and testing in an agile way? I would recommend to read ahead and validate if that approach would help your project to achieve the desired outcome on time.
The project started with minimal business requirements from the business and the list of features required were identified. The project included redesigning the underlying data model of an existing application and adding the new features identified to the application. The project did not have the detailed requirements at the start of the project and the design, data model, build and testing started simultaneously following agile approach. As we progressed through sprints, any design or data model changes, while developing the features down the line, eventually resulted in rework on the features completed in earlier sprints. The finished products were revisited every time there was a change in design which increased overall cost and caused delay in progressing with the remaining open activities.
From my experience in this agile project, it would be challenge to complete the sprints on time if design is evolving across sprints. If the project involves major redesign or new application development, it is worth investing initial few days in preparing high-level design with the available requirements. This would avoid rework on the features while we get into the development sprints. Development and testing goes well within a sprint timebox.
Team member sharing while sprint is in progress – The projects had a dedicated skilled team which was a key strength to get the development on time and of high quality. The project deployment was planned into multiple deployment phases so that the finished products can be released earlier. There were cross impacts due to other inflight project and the part of the development team was deviated to focus on sharing the knowledge of the project and its impact on other projects so as to enable first deploy release to go ahead as planned. As per Agile guidelines, the core sprint development team is expected not to be deviated from the locked down list of features. But in the real world, the knowledge of the skilled team is required to mitigate any risks related to that project. We had delays on the sprint that was in progress in order to accommodate risk mitigation activities. A dedicated and committed team is a key for a successful Agile project. The agile project manager should implement the two key techniques that the Scrum methodology emphasises strongly.
- The Scrum Master should ensure that the team is not impacted by any changes or other external influences that could potentially deviate the team from the current sprint. The Scrum master should ensure that the team remain focussed on the current sprint until the end of sprint
- Any changes in resource plan should be restricted while the sprint is in progress.
Requirements unclear even while sprint is in progress – Agile framework facilitates the business SMEs to change or finalise requirements while the feature is being developed. But in order for the development team to complete the development within the sprint time, the business should be clear on the requirements for the features in the current sprint to enable on time completion. Ambiguous requirements, while sprint is in progress, lead to delays in completing the feature within the sprint and may result in increased backlog.
The business subject matter experts have to have the requirements clear to enable the team to complete the project on time. Any requirement changes from the business SME impacting the sprint has to be considered as a new item in the backlog list. Requirement changes during the sprint has to be recorded and tracked to effectively manage the sprint timelines and overall project cost.
While Agile framework accepts less documentation, we need to understand the main objective of agile framework is quick delivery. Documents that enable quick delivery and better control on time and cost are still required in agile project management. As much as projects are unique, challenges within the projects are also unique. Lessons learnt from past experience always helps in the handling these challenges effectively in the future. Agile methodology also gives the opportunity to identify any challenges at the end of each sprint which will enable to apply corrective measures throughout the journey of the project. Go Agile, enjoy the continuous learning and eventually master the skill of Agile project management.