Software Engineering
What was the "software crisis" of the 1960s, and how did it lead to the creation of software engineering?
The "software crisis" of the 1960s was caused by the rapid increase in computer power and software systems becoming more complex, which leads to software bugs, systems failures, and high cost. Software engineering was introduced then to combat these issues by improving software quality and manage the complexity of large systems.
What are Agile methods and the Waterfall model in software development, and how are they different?
Agile methods and Waterfall model are two different approaches to software development.
Agile methods are iterative and incremental, flexible, and collaborative. Waterfall model has a linear approach, they are rigid, and it has phases.
The key differences between Agile methods and Waterfall model are:
Agile is flexible compared to Waterfall
Agile involves customers throughout the process, while Waterfall only requires them at the beginning and the end
Agile sends working software in smaller increments, while Waterfall delivers the entire project at the end
Why does Netflix intentionally shutdown its serves randomly, and how does this help their software?
Netflix shuts down their servers randomly through a tool called Chaos Monkey. The reasoning behind this is that they want to test the resilience of their software, to ensure that it can handle unexpected problems without effecting the customer's user experience.
What is open-source software, and why do big companies like Google, Microsoft, and Amazon contribute to it?
An open-source software is a software with a source of code that anyone can inspect, modify, and enhance. Big companies contribute to open-source softwares to improve collaborations and enhance innovation, boost reputation and recruitment, have a shared responsibility, and save costs.
Why can maintaining software sometimes be more costly than building it initially, and how does technical debt contribute to these higher maintenance costs?
Maintaining softwares can sometimes be more expensive than building a software due to several reasons:
Bugs in the softwares must be fixed and updated for security, performance and compatibility.
As systems evolve over time by adding new features, they become more complex.
Older systems often require a lot of effort to maintain and integrate with new technology
Citations
Brush, Kate, and Valerie Silverthorne. “Agile Software Development.” Software Quality, 15 Nov. 2022, www.techtarget.com/searchsoftwarequality/definition/agile-software-development. (Accessed 1 October, 2024).
Wikipedia contributors. “Software Crisis.” Wikipedia, 7 Aug. 2024, https://en.wikipedia.org/wiki/Software_crisis#:~:text=The%20software%20crisis%20was%20due,because%20existing%20methods%20were%20inadequate. (Accessed 1 October, 2024).
GeeksforGeeks. “Waterfall Model Software Engineering.” GeeksforGeeks, 12 July 2024, www.geeksforgeeks.org/waterfall-model. (Accessed 1 October, 2024).
Gupta, Raja. “What Is Chaos Engineering and How Netflix Uses It to Make Its System More Resilient?” Medium, 21 Aug. 2023, 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. (Accessed 1 October, 2024).
Opensource.com. “What Is Open Source?” Opensource.com, https://opensource.com/resources/what-open-source. (Accessed 1 October, 2024).