|Photo via Pxhere|
Software development companies today practice the agile software development methodology which was launched in 2001 by 17 technologists who drafted the Agile Manifesto. This manifesto had four major principles for the development of better software. It advocated for collaborative efforts by teams, adaptive planning, evolutionary development, early delivery, and continuous improvement so that there will rapid and flexible response to change.
The agile methodology was preceded by the Waterfall software which required a lot of documentation before any coding was made. They first needed a business requirement document which was long and detailed in everything from strategy comprehensive functional specifications to visual user interface designs.
"It took months before anyone saw the application working and by then, the stakeholders were getting antsy and often smarter about what they really wanted. No wonder changes were so expensive," writes Isaac Sacolick at cio.com.au.
The waterfall methodology was invented in 1970 and it was revolutionary as it brought discipline to software development with each step in the development guaranteed to the final product which was according to specs.
The applications, however, were complex and large and its rigidity was not good for the internet era where there was a need for speed and flexibility. With the rapidly changing internet technologies, this led to questioning the traditional methodologies by startups and paved the way for the development of the agile methodology as a group of software developers got together and found out they were collectively doing software development different from waterfall method, and so they came up with the Agile Manifesto which expressed their shared beliefs on how modern software development should be.
The agile software development process starts by defining the users and having them in mind and with the user (who is the voice of the customer) giving all the insights, ideas, and feedback, to create the product vision.
There are many agile frameworks like the scrum which focuses on a delivery cadence and meeting structures that include planning, commitment, and daily standup meetings.
Another is the kanban where teams get user stories and funnel them through a staged development process.
The agile methodology is considered better because it is designed for flexibility and adaptability which is important in a world where technologies are changing fast.