It was a period when developing large scale complex systems became difficult due to the rapid increase of computer power and failure to handle the complexity of problems arising. Which lead to a proposition of an ‘engineering’ approach to developing software. This thus led to the creation of software engineering. Which was created to tackle large software systems.
Agile is a iterative approach to software development. It involves flexibility and collaboration among teams focusing on delivering incremental releases and adapting changes throughout the development process. Waterfall is a sequential approach, where every phase must be completed before moving on to the next.
They to it to test how well their system can handle unexpected problems. It helps their software by learning potential weak spots and improving upon them.
It is a software with source code that anyone can access. They contribute to it further develop and improve open-source software.
Because the older a software is the harder it is to maintain it due to adapting software to certain challenges and environments, integrating with other systems, and changing the design. Technical debt increases complexity and higher operational costs causing more costly maintenance.
Sources:
https://piusmwilson.medium.com/the-1960s-software-crisis-27d15f6356ef
https://www.forecast.app/blog/difference-between-agile-waterfall#:~:text=What%20is%20the%20main%20difference,distinct%20phases%20completed%20in%20order.
https://medium.com/@raja.gupta20/what-is-choas-engineering-and-how-netflix-uses-it-to-make-its-system-more-resilient-b91758df6a8d#:~:text=It%20sounds%20counterintuitive%2C%20but%20the,if%20everything%20keeps%20running%20smoothly.
https://www.linuxfoundation.org/blog/blog/why-do-enterprises-use-and-contribute-to-open-source-software