hw6. Prof Eduardo. Software Engineering Research
Software Crisis
During the early years of computer science, rapid increases in computer power caused a difficulty for writing efficient
computer programs in required time.
"The major cause of the software crisis is that the machines have become several orders of magnitude more powerful! To put
it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers,
programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem."
- Edsgar Dijkstra
Agile vs Waterfall method
Both Agile and Waterfall models have their advantages and drawbacks, thus, which one of them fits more depends on the team and
their project. Agile methodology is known for its adaptability, risk management, and faster market release time. Agile model
makes projects to be as flexible as possible, even allowing late changes in the process. However, this feature might lead the
project to continue developing without clear boundaries.
Waterfall methodology, on the other hand, requires clearly defined stages, including implementation, design, maintenance,
verification, etc. Waterfall method follows the strict plan, which makes it easier develop. However, Waterfall method is very
inflexible, making it hard to make changes at the later stages of the project.
Netflix & Chaos Monkey
Netflix, one of the largest streaming servers in the world, have been using Chaos Engineering for several years to make sure
their systems can hold the real emergency situations. They created a tool called Chaos Monkey, which randomly creates server
disruptions to find the vulnerabilities and examine how much time does it take for the system to recover itself.
Open-Source Software
Open Source Software (OSS) is a term to describe the software which is publicly available with its source code to use, change,
or distribute while keeping the original copyrights. Big tech-companies such as Google, Microsoft, and Apple use OSS Policy
because it attracts more contributors from outside with new perspectives and problem-solving skills.
Software Maintenance
Sometimes software maintaining can be more expensive than the cost it took to build it. Main reason is that as the time goes,
more people use the software, the project gets bigger, requiring more budget to sustain the system.
References
1. https://en.wikipedia.org/wiki/Software_crisis
2. https://www.digitalocean.com/resources/articles/agile-vs-waterfall
3. https://medium.com/@raja.gupta20/what-is-choas-engineering-and-how-netflix-uses-it-to-make-its-system-more-resilient-b91758df6a8d
4. https://opensource.com/resources/what-open-source
5. https://maddevs.io/customer-university/software-maintenance-costs