Agile Development Methodology

Over recent decades, while market forces, system requirements, implementation technology and project staffs were changing rapidly Agile Development methodology showed its advantages over the traditional one. The Agile style of development directly addresses the problem of rapid change.
 
The basic idea of agile development process is that the development team can be more effective in responding to changes if it can
  • Reduce the cost of moving information between people
  • Reduce elapsed time between making a decision to seeing the consequences of that decision
To reduce the cost of moving information between people, the agile team works to
  • Place people physically closer
  • Replace document with talking in person and at whiteboard
  • Improve the team amicability – its sense of community and morale 
To reduce the time from decision to feedback, the agile team,
  • Makes user experts available to the team or, even better, part of the team
  • Work incrementally
The term agile, coined by a group of people experienced in developing software this way has two distinct connotations. The first is the idea that the business and technology worlds have become turbulent, high speed and uncertain, requiring a process to both create change and respond rapidly to change.

The second one suggests that an agile process requires responsive people and organizations. Agile development process focuses on the talents and skills of the individuals and molds process to specific people or teams, not the other way around.

Agile process is sometimes defined as useful light-but-sufficient rule of project behaviors and the use of human and communication oriented rules. The agile process is both light and sufficient. The figure below describes Extreme Programming methodology which is based on agile development process.
 
Agile life cycle of Extreme programming model
Figure : Agile life cycle of Extreme programming model


Extreme Programming (XP)

The lifecycle of XP consists of five phases

1. Exploration phase
2. Planning phase
3. Iteration to Release
4. Productionizing phase
5. Maintenance phase
6. Death phase
 

Exploration
In the exploration phase, the customers write out the story cards that they wish to be included in the first release. Each story card describes a feature to be added into the program. At the same time the project team familiarize themselves with the tools, technology and practices they will be using in the project. The technology to be used will be tested and the architecture possibilities for the system are explored by building a prototype of the system. The exploration phase takes between a few weeks to a few months, depending largely on how familiar the technology is to the programmers.
 

Planning
The Planning Phase sets the priority order for the stories and an agreement of the contents of the first small release is made. The Programmers first estimate how much efforts each story requires and the schedule is then agreed upon. The time span of the schedule of the first release does not normally exceed two months. The planning phase itself takes a couple of days.  

 
Iteration to Release
The Iteration to release phase includes several iteration of the systems before the first release. The schedule set in the planning stage is broken down to a number of iterations that will each take one to four weeks to implement. The first iteration creates a system with the architecture of the whole system. This is achieved by selecting the stories that will enforce building the structure for the whole system. The customer decides the stories to be selected for each iteration. The functional tests created by the customer are run at the end of every iteration. At the end of the last iteration the system is ready for production.

 
Productionizing
The Productionizing phase requires extra testing and checking of the performance of the system before the system can be released to the customer. At this phase, new changes may still be found and the decision has to be made if they are included in the current release. During this phase, the iterations may need to be quickened from three weeks to one week. The postponed ideas and suggestions are documented for later implementation during, e.g., the maintenance phase.

 
Maintenance
After the first release is productionized for customer user, the XP project must both keep the system in the production running while also producing new iterations. In order to do this, the Maintenance phase requires an effort also for customer tasks. Thus, the development velocity may decelerate after the system is in production. The maintenance phase may require incorporating new people into the team and changing the team structure.

 
Death
The Death phase is near when the customer does no longer have any stories to be implemented. This requires the system satisfies customer needs also in other respects (concerning performance and reliability). This is the time in the XP process when the necessary documentation of the system is finally may also occur if the system is not delivering the desired outcomes, or if it becomes too expensive for further development.
 

  • Project Management

    The ReliSource Development Process or R-Process inherently supports adaptive development cycle where the development process requires dynamic changes, rapid changes of strategy and continuous change requests.

  • SCRUM development process

    Another popular agile development methodology is known as SCRUM. While extreme programming focus on the core development, the real crude work activities of the programmer, SCRUM keeps its focus on the project management. 
  • Case Study: Customized build cycle with R-Process

    A large US based software developing company was willing to invest in a new business with a new software product which required much research on the actual requirement.
  • ReliSource Process

    The dynamic nature of ReliSource Software development projects demands full fledged software development process with rapid change cycle. The ReliSource process, leveraging the same interest, derived from agile development life cycle, enables to produce high quality application in rapidly requirement changing scenario.
A leading Minority and Women owned Global Sourcing company in Software and IT Consulting