Agile Development Practices

Agile Development Practices

Agile development is a comprehensive approach to each phase of the software development lifecycle – planning, execution and delivery. It is a set of methods based on clear guidance and principles. The emphasis is on incremental delivery, team collaboration, continual planning, and continual learning.

The Agile Manifesto, written in 2001, states that-

We have come to value

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

Plan-driven development, called Waterfall Software Development Lifecycle, would work well when the scope was defined completely at the start. Contracts used to make it difficult for customers to make scope changes. Agile software development, on the other hand, works well when the scope is not completely known or frozen at the start.

Agile is now becoming the preferred way to manage projects, as it is better suited for the rapidly changing business environment and fast evolving products. Before, there would be a higher risk of failure, as the approach to delivery was ‘all or nothing’. In Agile product development, there is a prioritization by value, so that most valuable features are implemented first. This optimizes the funding available, and reduces the risk of total failure while increasing chances of partial success.

With Agile, projects are delivered in the form of versions or iterations that are reviewed and improved. Instead of waiting for 6 months to see the product for the first time, as would have been the case in the waterfall method, the customer can see the first version in a matter of days or weeks. Quick course correction can be done at any stage.

Advantages of Agile model

  1. Regular and closer interaction between the customer, developers and QA teams that lead to better understanding and collaboration.
  2. Increased customer satisfaction as useful software is being delivered in a rapid and continuous manner.
  3. Design and quality is being reviewed and improved continuously.
  4. Ease of adaptation to changes in business environment or product design and incorporating user feedback.
  5. Able to incorporate changes in requirements even at later stages.
    Challenges with Agile Development:

  6. When following Agile Development, effort estimation can be difficult as specifications and designs are not fully frozen and documented at the start.
  7. The organization may not fully embrace the culture shift and change management required to properly implement Agile Development and gain all the benefits from it.
  8. A custom software development company may need to convince all customers to adopt Agile practices. Some customers may be reluctant to change from current methods.

As Smartsourcing Global, we have successfully adopted Agile Development and also delivered a number of custom software development projects successfully within this framework. We are finding a lot of efficiencies from closer coordination with our customers, as well as between the development and QA teams. We are able to incorporate market led changes into the products or projects that we deliver, thanks to our adoption of Agile methods.