Archives
- Newer posts
- November 2024
- April 2024
- November 2023
- October 2023
- August 2023
- May 2023
- February 2023
- October 2022
- August 2022
- July 2022
- May 2022
- April 2022
- March 2022
- February 2022
- June 2020
- March 2020
- February 2020
- January 2020
- December 2019
- November 2019
- October 2019
- September 2019
- August 2019
- July 2019
- June 2019
- May 2019
- April 2019
- March 2019
- February 2019
- January 2019
- December 2018
- November 2018
- October 2018
- September 2018
- August 2018
- July 2018
- June 2018
- May 2018
- April 2018
- March 2018
- February 2018
- January 2018
- December 2017
- November 2017
- October 2017
- September 2017
- August 2017
- July 2017
- June 2017
- May 2017
- April 2017
- March 2017
- February 2017
- January 2017
- August 2016
- June 2016
- April 2016
- March 2016
- February 2016
- January 2016
- July 2015
- June 2015
- Older posts
Software Development: Then and Now
Software development “then” refers to the traditional way of developing software; i.e., “The Waterfall Model” and “now” refers to the modern way, “Agile”.
Waterfall as its name suggests that it employs the sequential process. Development flow from the start to the end following several different stages, moving from one stage to another can be done only when you complete the current stage. There is no room for changes or errors, so an initially extensive plan must be set and then follow it carefully.
The advantage of the Waterfall model is that it focuses more on record keeping, having such records provides the ability to improve upon the existing program in the future and also suppose if a new developer joins in, then by going through the documentation s/he will get definite idea of what is done, how it is done and what needs to be done. The size and cost of the product can be estimated accurately as it takes extensive planning at the beginning.
The disadvantage of the Waterfall model is that it is very rigid and inflexible. The developer cannot go back to the previous stage to make changes once it is completed. It depends heavily on initial requirements, however if these requirements are faulty in any manner or an error is found, then it’s not possible to reflect the changes or fix the error, The project has to start all over from the beginning with new coding. The testing takes place at the end. Therefore, the errors that had made way back at one stage, but discovered late, may affect the other parts of the product that is developed later. The client’s participation in the development process is only at the beginning of the process. Suppose if the client realizes in the future that they need some change in requirements, than it is difficult to incorporate into the current product.
Agile came into existence as a solution due to the disadvantages of the Waterfall model. Instead of a sequential design process, the Agile methodology follows an incremental approach. The Agile methodology divides the product into smaller modules and build separately, tested and delivered it to the customer to use. This development is taken place on weekly or monthly sprints, hence after every month, the customer gets a part of the software fully functional to use.
The advantages of Agile methodology are; Requirements ever evolving so change can be catered for very easily, given the shorter planning cycles; Encourages active involvement and interaction from the client which allows the product to be built, based on priority and accuracy. The testing at the end of each sprint ensures that bugs are caught early and taken care of in the development cycle. Risk is reduced, due to the feedback received after every sprint.
Some of the disadvantages of Agile are; It doesn’t have a concrete plan, so time lines and cost estimation will not be accurate. Agile doesn’t have documentation and a concrete plan. So if a developer has left the team during development, then it will be difficult for a new developer to take charge.
So, which is better?
Both the Agile and Waterfall methodologies have their strengths and weaknesses. The key to decide which is right depends on the project if it’s going to be change rapidly. If so, choose Agile. Do you know exactly what you need? If not, Waterfall is the better option.
– Irfanali Pathan