How Agile Changed Software Development

A simple overview of how Agile has affected Software Development

Pratyaksh Jain
Inheaden
5 min readMay 1, 2020

--

Agile software development comprises various ways of software development which are essentially done in collaboration with the development team and the end-user/customer to evolve requirements and the solutions. The authors of the Agile Manifesto chose the word “Agile” as a label for the entire idea because it represented the adaptiveness and the response to change which was so important for this approach.

Agile is an umbrella term for a set of methods and techniques based on principles mentioned in the Agile manifesto. The most popular Agile frameworks include Scrum, XP(Extreme Programming), Crystal, Systems Development Method, Feature-Driven Development.

In 2001, seventeen software developers — Kent Beck, Dave Thomas, Jon Kern, Brian Marick, to name a few — met in a resort in Utah to discuss lightweight development methods. Together they formed the Agile Alliance and published the Manifesto for Agile Software Development.

The Older Waterfall Model

Before any lightweight software development model was even thought of, most companies followed the waterfall model. It was the first process model to be introduced. It is also referred to as a linear sequential life cycle model. It’s very simple to use and understand.

In the waterfall model, each phase must be completed before moving on to the next one and no overlapping of processes takes place. Due to the sequential nature of this model, it created a time gap, also known as a lag, between the business need and the application in production.

In the waterfall model, someone would first write a very detailed document explaining all the requirements that the business has for the application. After this was done, there would be another document providing the developers with the overall system design — architecture, data structures, user interfaces, and other non-functional requirements. The process would finally start coding, integration, and testing, deploy it, and maintain it. To do all of this took about 3 years, generally.

The Agile Way

The Agile way of software development was a major breakthrough in the development industry. It changed almost everything from the waterfall model. Most Agile development methods break development into small increments to minimize planning ahead. Each iteration (usually last about one to four weeks) involves a cross-functional team working on all functions — planning, coding, integration, as well as testing. After every iteration, a meeting is set up with the business to show the progress. This is done to reduce risk and helps in adapting to the change faster. A product good enough for release is not available after each iteration, however, it has minimal bugs. Multiple iterations are required to have a product good enough for release.

A lot of Agile development methods promote face-to-face communication. It promotes more question-answer sessions and helps them understand each other better. Collaboration is a necessary part of Agile. Each team should contain a customer representative helping the team understand the requirements better. The representative is decided by the stakeholders to act on behalf of them. Stakeholders and representatives, both, review the product development after each iteration to see whether the product so far would be good for the actual customer’s needs. This reduces the feedback loop and increases adaptiveness.

Specific tools such as test-driven development, unit testing, pair programming help improve the quality of the product. This is predicated on designing and building quality in from the beginning and being able to demonstrate software for customers at any point, or at least at the end of every iteration.

While Agile has a lot of factors that make it the best model to use, it has its drawbacks as well. Some of them are listed below:

  • Less predictability — For some software products, developers may not be able to quantify how much effort is required. This would happen, generally, to teams that are new to the agile methodology. Further, this would create fear in the team leading to poor decisions, frustration, and mistakes during development. The more systemized waterfall model provides documentation of all requirements which helps under total efforts required.
  • Greater demands on the developer and clients — Since the agile methodology is a very engaging and rewarding system, it requires commitment through the entirety of the project. If there is any lack of communication, it compromises the quality of the product which would look bad for the developing company as well as the client.
  • More time and commitment — Testers, consumers, and developers must constantly be in contact with each other. This means numerous face-to-face communication, as it is the best way. Everyone involved must be in close contact. Testers have to be ever-ready for prompt testing of each iteration so that the developers can move on to the next. All of this is very time and energy-consuming.
  • Lack of essential documentation — A lot of the software requirements are clarified just before development, documentation is less detailed. For any new members joining the team, they could be in the dark regarding some of the features and functionalities.
  • The project can derail easily — This software development model assumes that the consumer’s needs are ever-changing. If there’s any obscurity in the client’s communications, it could cause the developer to focus on the wrong areas. In addition to this, an ever-changing project could also become an ever-lasting one, if not taken care of.

Even after considering these drawbacks, the Agile model is still the most widely-used software development model and the Agile Manifesto has changed the software development industry for the better.

Thank You for Reading!

Found this post useful? Kindly hit the 👏 button below to show how much you liked this post!

Inheaden is a young IT and software startup based in Darmstadt, Germany. As an “Idea and Tech Factory”, we have set out to be a driving force of innovation, digitization, and automation with a focus on the areas of services, products, and research. Under the Inheaden brand, we work on individual “high performance” software solutions that bring a change. Modern designs, innovative technology approaches, and IT security for our partners and customers are important components of our work profile.

--

--