In Global Delivery Engagements:
Assessing Fit for Agile Development
Madu Ratnayake, Global Head of Process
Quality, and Valarmathy Rangasamy, Lead Agile Champion, Virtusa
Corporation
Agile software development is receiving increasing attention from
information technology (IT) organizations globally. With its emphasis on
lightweight processes, high-quality deliverables, flexibility in dealing
with changing business priorities, short delivery cycles, higher team
morale, and a host of other benefits, agile development offers a fresh
approach to businesses seeking greater agility in their software
engineering processes.
While agile development aims to increase collaboration and
communication, Virtusa' experience indicates that it is no silver bullet
for the ills of enterprise application development. Agile practices
deliver significant advantages when applied in the right context, at the
same time they also contribute to notable failures when implemented in
the wrong context.
So, identifying the right conditions for agile development is perhaps
the critical success factor in its use. This article describes Virtusa's
Agile Suitability Assessment tool for deciding whether a project using
the global delivery model is suitable for agile development.
Is Agile Development suitable for your project?
The Agile Suitability Assessment tool is a systematic approach to
understanding the "ground" conditions of a project, and for deciding
whether agile development is the right approach to use.
The tool assesses the risk associated with specific problems on the
ground, and identifies ways to tailor agile processes to address them.
But, if the ground conditions are unfavourable, the use of agile
practices can harm both the players and the chances for a successful
project. You cannot play ice hockey with bumpy ice!
Determining Agile Suitability for Outsourced Global Delivery
Systematically assessing the suitability of agile practices for a
particular engagement is an art in itself.
Several of the publicly available suitability assessment tools are
primarily based on the assumption that traditional approaches and agile
approaches sit on opposite ends of a continuum. On the basis of multiple
environmental factors, these tools try to pinpoint the exact location in
which the target project falls on this continuum.
In fact, Virtusa's 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.
The Five Factors driving Agile Suitability
The Virtusa Agile Suitability Assessment tool guides the evaluation
of a project's environment along five key dimensions that affect the
success of agile development in an outsourced global delivery
engagement.
Client Environment
Applying agile practices to an environment steeped in traditional
development methodologies requires a significant shift in mindset.
Proper understanding of what agile development means, willingness to
change, and executive sponsorship are important for the transformation
to happen.
If the client organization is open to undertake 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.
One of the key benefits of the agile approach is its ability to
deliver a solution iteratively to the end users, enabling them to start
realizing benefits early on.
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 client
stakeholders, the existing level of trust between users and IT, and the
overall collaboration culture, can significantly affect the outcome.
Client Partnerships
In a multi-site, multi-partner project, the quality of relationships
among partners plays a significant role.
The openness of partners to sharing the 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.
The client and the partners must share realistic expectations and be
willing to listen and empower each other toward project success.
Nature of requirements and solution
The essence of the agile approach is to develop software iteratively
and deliver 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
prioritize requirements, and the criticality of the application are all
important factors in analyzing the suitability for an agile approach.
Client Engagement
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.
Team
Agile development favours 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. It is
crucial to have team and management buy-in, since the agile approach is
primarily driven by mindset over practices.
The availability of the right skills and the team's collaborative
abilities play a significant role in the success of the project. Also,
since agile is dependent on a high degree of 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.
Agile Suitability Analysis
By carefully assessing the five factors described above, we are able
to depict a project's suitability for agile development in a structured
way.
The diagrams for the two extreme scenarios are shown in Diagram 1.
In the diagram to the left, the benefits outweigh the risks, and
hence this project is most suitable for an agile approach.
In the diagram to the right, the risks outweigh the benefits, and
hence this project may not be suitable for agile development.Diagram 2
shows two typical real-world examples:
Project one is a technical application rewrite project that has
minimal involvement from business users. The team is not stable and does
not have the required skills for test automation. The application is
dependent on the number of related applications, and hence requirements
cannot be segmented into logical chunks.
All these points introduce major risks for an agile approach, which
is therefore not recommended for this project.
In Project two, most of the environmental factors are conducive for
agile development; the team-related risk is based on a requirement for
skills in a proprietary test tool environment. This project is conducive
to an agile approach, and risk mitigation steps can be taken by training
the team on the proprietary test automation tool. In each case, the
final decision is taken after a detailed analysis of the suitability
report by an expert agile champion along with the project stakeholders.
Virtusa's Agile Implementation Approach
We follow a structured approach to agile implementation in projects
using our "Conceive - Transform - Optimize" model. The following chart
depicts our six-step methodology for agile implementation, including how
Agile Suitability Assessment fits into the approach as shown in Diagram
3.
We help our clients conceive the best use of agile concepts by:
* Conducting awareness sessions on agile development
* Assessing the suitability of the project
We help the teams transform their development processes into agile
ones by:
* Conducting detailed agile development workshops
* Tailoring the project approach based on the team's inputs and risks
assessed during the suitability assessment
During project execution, we optimize the agile approach by:
* Providing continuous coaching, since practising agile techniques
requires a major change in team member mindset
* Continuously evaluating and refining the approach based on project
performance and feedback from the team and client
Summary
Agile software development is not a panacea for all challenges
related to today's complex software development environment. Those who
are considering agile practices should apply a structured suitability
assessment approach to determine the organization's readiness to execute
an agile development project. While agile practices deliver significant
advantages in the right context, they contribute to project failures
when applied in an inappropriate context.
The success of the agile approach depends primarily on having the
right supporting mindset, and secondarily on the proper execution of
agile methods. By using Virtusa's Agile Suitability Assessment tool, an
organization can quickly understand whether it has the right stuff for
success.
|