Open Source

Agile Development

Agile Development is a software development model that includes a variety of development methodologies that can be followed to create adaptable software i.e. software that can easily meet changing customer requirements.

In agile development the entire project is broken down into a number of sequential iterations. For each iteration, that typically lasts for not more than three weeks, the complete development process (i.e. planning, designing, coding and testing) is followed thereby minimizing the risk. On completion of each iteration, the software is released to the customer. The feedback received from the customer is then incorporated in the software.

Agile software development methods are ideally suited in cases where the requirements are constantly changing and where the project size is not large. Agile methods are best suited for projects that have small teams.

Principles

The principles of Agile Development as per the Agile Manifesto are as follows:

  • Customer Satisfaction through continuous delivery of valuable software
  • Delivery of software in short iterations ranging upto six weeks
  • Daily communication and collaboration between all concerned project members
  • Providing for continuous changes in requirements
  • Creation of a proper work environment and delegating work to specific project members
  • Face to face communication is preferred over documentation
  • A good design and attention to detail ensures the creation of adaptable or agile software
  • Simplicity in design and coding should be maintained
  • Self-organizing project teams work best
  • Regular meetings to identify means to improve productivity

Benefits

The benefits that arise out of agile development include the following:

  • Flexibility/Agility: As opposed to traditional development project, change is acceptable in projects that follow the agile development methodology.
  • Quality: Testing is carried out at regular intervals thereby ensuring at a bug free and quality product.
  • Visibility: Agile methodology encourages active participation by all stakeholders during the life cycle of the project. This ensures that expectations are effectively managed.
  • Efficient Risk Management: Multiple smaller release`s ensure that possible issues are identified early on making it easier to respond to changes.
  • Right Product: In agile development the requirements can evolve and the ability for change to be incorporated ensure that the right product i.e. the product that was accepted is delivered.

Agile Methods

A wide variety of agile software development methods are followed. Some of them are:

  • Extremem Programming
  • Agile Modeling
  • Scrum
  • Adaptive Software Development
  • Crystal Clear
  • Agile Unified Process

Recommendations

Outsourcing web development efforts can yield drastically different results depending on who you partner with. In the end, success depends on so many factors far beyond code development itself - strong project management skills, the ability to balance a strategic vision and end user needs with technical realities, discipline in execution, steady productivity, honesty, and a positive attitude in dealing with unexpected challenges and changes to name a few. I've found that those who can consistently deliver on these key attributes are rare.
Ted Bream
CEOCore Agenda Inc.