Agile is here to stay. With its emphasis on lightweight processes, high-quality deliverables, flexibility in dealing with changing business priorities, short delivery cycles, higher team morale, and a whole host of other benefits, agile development offers a fresh approach to businesses seeking greater agility in their software engineering processes.
Agile over traditional practices brings in significant value; however our experience indicates that it is no silver bullet for the ills of enterprise application development. Agile practices are developed based on several fundamental assumptions about the environment within which the project is executed. In the right context, all promises of agile come alive; in the wrong context agile can add significant risks to the successful delivery of an engagement. Especially in a global delivery environment, careful consideration of risk factors helps you avoid potential significant failures.
The following guidelines can help in deciding whether a project using the global delivery model is suitable for agile development:
Applying agile practices to an environment steeped in traditional development methodologies requires a significant mindset shift. Proper understanding of what agile development means, willingness to change, and executive sponsorship are important for the transformation to happen. If the organisation is open to undertaking risks, is innovation-driven and has a mindset for continuous improvement, then the required change can be easily accomplished. A strong agile champion at the top is critical for the success of an agile development project.
A tightly time-driven project creates the right environment for all stakeholders to come together quickly, build working relationships and create momentum. Other dimensions – such as the number of stakeholders, the existing level of trust between users and IT, and the overall collaboration culture – can significantly affect the outcome.
In a multi-site, multi-partner project, the quality of relationships among partners plays a significant role. The openness of partners to sharing feedback for the benefit of the project, the availability of the partners to participate in multiple sessions, and the overall level of trust play key roles. Partners must share realistic expectations and be willing to listen and empower each other towards project success.
3. Nature of Requirements and Solution
The essence of the agile approach is to develop software iteratively and deliver it in usable increments that provide value to the business. The nature of the requirements, as well as the solution to meet them, plays a key role in executing the project using agile methods. The refactoring effort involved for incremental development may not be justifiable when the requirements are frozen upfront. The feasibility of segmenting the requirements and developing them in smaller chunks, the frequency of requirement changes, the business’s ability to quickly prioritise requirements, and the criticality of the application are all important factors in analysing the suitability for an agile approach.
4. Scope and Time
When the project has a fixed timeframe, the agile approach is particularly useful for getting maximum business benefit within the given time. On the other hand, projects with both fixed timeframe and scope may not provide enough flexibility for the business to reprioritize or change requirements once the project commences. Agile development is best suited for projects with fixed time and cost, and variable scope.
Agile development favors individuals and interactions over processes and tools. The approach is more people-centric; hence, team composition plays an especially important role in assessing agile suitability. The availability of the right skills and the team’s ability to collaborate play significant roles in the success of the project. With high dependence on tacit knowledge, it is vital to maintain a stable team. Dynamically changing teams should opt for a more traditional development approach instead of a people-oriented approach.
By carefully assessing the five factors described above to understand the “ground” conditions of a project, you can assess the project’s suitability for agile development in a structured way.
Our experience in global agile delivery suggests that agile and traditional approaches are not the two ends of a continuum. Our Agile Suitability Assessment approach is based on a risk-benefit analysis framework that considers the complex nature of the environments in which the projects are executed. We evaluate numerous environmental parameters, including client readiness, team readiness, the commercial relationship, the nature of the target solution, and a host of other aspects before recommending agile development for an engagement.