Challenges of Migrating To Agile Methodologies PDF
Challenges of Migrating To Agile Methodologies PDF
Challenges of Migrating To Agile Methodologies PDF
For decades organizations have relentlessly pursued the goal of creating optimized and
repeatable processes. The stability they yearned for, presents one of the biggest hurdles to
adopting agile development methodologies. The variations between traditional and agile
methodologies previously detailed suggest that organizations must rethink their goals and
reconfigure their human, managerial, and technology components in order to successfully adopt
agile methodologies. Here, we identify the key management, organizational, people, process, and
technological issues in adopting agile methodologies. Table 1 summarizes the main issues
involved under each component.
Process-related issues: The problem of changing attitudes and practices from process-centric
to people- centric is acute. Organizations that have for years attempted to achieve higher levels
of CMM are particularly susceptible to this problem. The idea of changing a process to fit the
capabilities and competencies of people and the characteristics of the project, rather than using a
rigid process encompassing standardized activities may be sound, but can be achieved only
through significant investment of time, effort, and capital.
Traditional processes are compliance-driven and activities- and measurement-based, aimed at
providing assurance. Agile methodologies rely on speculation, or planning with the
understanding that everything is uncertain, to guide the rapid development of flexible and
adaptive systems of high value. They stress the importance of assessing as opposed to measuring,
and are highly tolerant of change. One of the biggest barriers to migration is the change in a
process model from a life cycle model to one that supports feature based development using
evolutionary and iterative development. Such a change entails major alterations to work
procedures, tools and techniques, communication channels, problem-solving strategies, and roles
of people.
Agile methodologies place a premium on testing, urging developers to develop the test code
upfront. The notion of test-driven development (TDD) is becoming increasingly popular within
the agile community. TDD is motivated by the fact that thinking about and writing tests prior to
coding will make the code more understandable and maintainable. TDD also facilitates
continuous integration of new code and/or changes without adversely affecting the existing code
base. However, the firmly entrenched tradition of writing code prior to testing must be overcome
to institutionalize the practice of early and frequent testing. TDD also redefines the role of the
quality assurance function in systems development. Questions have also arisen about the efficacy
of agile approaches with regard to large projects where scalability is paramount. Due to the
novelty of agile methodologies, very little empirical data is available regarding each method. The
biggest challenge facing the project manager, therefore, is the selection of an appropriate method
from the host of agile methods currently available. This is very much like the predicament that
early adopters of object technology faced. While all agile methods, to some extent, conform to
the tenets outlined in the agile manifesto, they are not all alike in every respect. They differ in
terms of team size, code ownership, duration of each iterative cycle, emphasis on upstream and
downstream activities, and the mechanisms for rapid feedback and change. In the absence of a
unified agile approach, organizations must decide which is most compatible with their existing
practices.
Technological issues: An organization’s existing technology can impact the efforts to
migrate to agile methodologies. Companies that rely solely on mainframe technologies may find
it difficult to assimilate agile methods compared to those that use OO development techniques.
Tools play a critical role in successful implementation of a software development methodology.
Organizations planning to adopt agile methodologies must invest in tools that support and
facilitate rapid iterative development, versioning/configuration management, JUnits, refactoring,
and other agile techniques. Of course, tools alone cannot make software development successful.
People must be trained to use them correctly.