Lecture 1 Flashcards
What are the three main problems with the Waterfall Model?
-Over time, project requirements change
-Over time, risks accumulate without being tested
-Time delay between tangible output and user feedback create misalignment with market conditions
In terms of software development, how have delivery times and financial risk changed over time?
Instead of years it can take weeks, and failures that would once bancrupt a company might now only result in a negligible financial loss
What are the four characteristics of Agile development?
-Individuals and interactions over processes and tools
-Working software over comprehensive documentation
-Customer collaboration over contract negotiation
-Responding to change over following a plan
What is the wall of confusion?
The separation between developers and operators; when they don’t collaborate they have conflicting interests
What are the goals of DevOps?
To tear down the wall of confusion, to create teams that are product-oriented and to connect all phases of the SDLC
What is CALMS?
A framework to help understand DevOps principles and assess a company’s ability to understand them
What does CALMS stand for?
-Culture
-Automation
-Lean
-Measurement
-Sharing
According to Westrum, why is the culture of a company important to software development?
It predicts the flow of information, affecting both organisational and software delivery performance
According to Westrum, what are the three characteristics of good information?
-It provides answers to the questions the receiver needs answered
-It is timely
-It is presented in such a way the receiver can use it effectively
According to DevOps principles, what four aspects of software development should be automated?
-Builds
-Tests
-Monitoring
-Deployment
When automating tasks, what does version control provide?
A single repository of truth that provides the intended state of the system at any time
What are examples of lean software development practices?
The use of MVPs, seeking continuous customer feedback, giving developers the authority to change specifications
What are the four key metrics to measuring your delivery process?
-Lead time for changes
-Deployment frequency
-Change failure rate
-Mean time to restore
How should we measure improvement?
Create a baseline by defining what metrics to measure and then collect these metrics
In software development, do high (frequent output) or low performers (infrequent output) have a higher failure rate?
Low performers have a higher failure rate. High performers have been shown to do better in terms of marketability, profitability and productivity