Agile PM Methodologies for Software Development
August 2, 2010
Going agile in IT projects
For the last fifteen year, due to the streamlined and prompt development of computer programs, the need for new software development approaches has become strong. Most software development companies were looking for new approaches that could allow producing valuable software solutions in a more shortened period of time, with minimized costs and meeting unstable and changing environments.
Agile project management (PM) methodologies have appeared to fit the new requirements of IT companies and to deliver new tools in order to efficiently undertake application development processes. This short review of agile PM methodologies gives a description of three agile software development approaches, including Scrum, Extreme Programming and Agile Modeling.
Software Development Approaches
If to look back into the history of software development, programming (creation of code to facilitate and speed up the solving of complex problems) started with structured languages in the early fifties (FORTRAN by John W. Backus in 1954), and then evolved to object-oriented programming languages in the sixties. Along with programming, software development approaches have evolved during time to help programmers write code.
A typical software development approach guides developers through the development process by dividing this process into certain phases, and for each phase developers apply project management guidelines relating to the selected approach.
The main idea of software development approaches is to allow a developer to focus on one separate phase at a time. By using agile approaches, number of software project failures considerable reduced, and the cost and development time of IT projects were decreased.
Despite these advantages of development approaches, new obstacles appeared making software projects less manageable. Because in that time customers usually set stable requirements and software development companies had to follow these requirements without considering changes, a crisis situation evolved and new difficulties emerged. Such a situation was caused by the following difficulties:
- Customer involvement. Customers were not actively involved in the development process. Thus, a lack of customer involvement led to higher chances of project failure.
- Evolving requirements. Because requirements changed according to business needs and/or legislative concerns, at the early stages of most IT and software projects, customers did not have a clear vision about specifications of their requirements.
- Deadlines and budgets. Because often there was a gap between deadlines and available budgets, projects failed, and software companies did not deliver projects, yet customer set high demands.
- Miscommunications. Often developers and customers could not understand each other because there were no effective communication channels. Requirements were not completely understood by developers, and customers could not specify what needs they actually had.
Agile PM methodologies are targeted at promoting and clarifying the process of requirements management to ensure that the following achievements are available:
- Frequent inspection and adaptation of application development processes are conducted.
- An appropriate leadership philosophy to encourage teamwork, self-organization and accountability have been applied.
- Best practices of project requirements setting to allow for rapid delivery of high-quality software have been presented and implemented.
- A flexible business approach to align the development process with customer needs and business goals has been implemented.
Trying to resolve the difficulties, many IT specialists and developers started working on discovering new software development approaches. As a result, the so called “Agile Manifesto” was created. “Agile Manifesto” is a set of approaches that specify rules for developing and verifying a system. It was about delivering working versions to the customer and making updates according to the customer’s notes.
Basic Principles of Agile PM
Thanks to “Agile Manifesto”, the four basic principles of agile project management methodologies were stated and accepted. The agile methodology principles are as follows:
- Customer satisfaction. It is about creating a software application that satisfies the needs and expectations of the customer, through continuous delivering of working versions and getting feedback from the customer about it.
- Managing requirements. This principle assumes that the developer accepts changes in requirements at any software development stage, allowing the customer to feel more comfortable with the entire development process.
- Cooperation. It is close cooperation between developers and the customer on a daily basis throughout the entire life-cycle of the project development process.
- “Testing Before Writing”. The principle is about development of software on a test-driven basis this means that before adding some change to code, testing should be conducted is to write. After code is changed, testing should be also run.
By following these basic principles of agile development, developers can give quick response to changing environments and changes in user requirements, and to accelerate completion of project deadlines. Agile project management methodologies allow running the development process with minimized documentation flows.
Developers are enabled to deliver working versions of software in short iterations and then update code according to the customer’s needs. Applying this philosophy of agile project management will help overcome the difficulties mentioned above, by responding to changes and satisfying user requirements.