1. The "software crisis" of the 1960s referred to widespread problems in software development, including projects running over budget and time, inefficient code, and software not meeting requirements. This crisis led to the creation of software engineering as a discipline to address these issues through more structured and systematic approaches to software development.
2. Agile methods are iterative and flexible approaches that emphasize collaboration and rapid delivery, while the Waterfall model is a linear, sequential approach where each phase must be completed before moving to the next. Agile methods allow for more adaptability to changing requirements, while Waterfall provides a more structured process.
3. Netflix intentionally shuts down its servers randomly as part of a practice called "chaos engineering." This helps them identify and fix potential vulnerabilities in their system, improving overall reliability and resilience.
4. Open-source software is software with source code that anyone can inspect, modify, and enhance. Big companies like Google, Microsoft, and Amazon contribute to open-source projects to collectively solve common problems, allowing them to innovate on top of a shared foundation and benefit from community-driven improvements.
5. Maintaining software can be more costly than initial development due to factors like changing requirements, the need for updates and bug fixes, and the accumulation of technical debt. Technical debt refers to shortcuts or suboptimal solutions implemented during development, which can lead to increased complexity and higher maintenance costs over time.