Lecture 1 Flashcards

1
Q

What are the three main problems with the Waterfall Model?

A

-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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

In terms of software development, how have delivery times and financial risk changed over time?

A

Instead of years it can take weeks, and failures that would once bancrupt a company might now only result in a negligible financial loss

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the four characteristics of Agile development?

A

-Individuals and interactions over processes and tools
-Working software over comprehensive documentation
-Customer collaboration over contract negotiation
-Responding to change over following a plan

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is the wall of confusion?

A

The separation between developers and operators; when they don’t collaborate they have conflicting interests

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are the goals of DevOps?

A

To tear down the wall of confusion, to create teams that are product-oriented and to connect all phases of the SDLC

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is CALMS?

A

A framework to help understand DevOps principles and assess a company’s ability to understand them

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What does CALMS stand for?

A

-Culture
-Automation
-Lean
-Measurement
-Sharing

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

According to Westrum, why is the culture of a company important to software development?

A

It predicts the flow of information, affecting both organisational and software delivery performance

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

According to Westrum, what are the three characteristics of good information?

A

-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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

According to DevOps principles, what four aspects of software development should be automated?

A

-Builds
-Tests
-Monitoring
-Deployment

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

When automating tasks, what does version control provide?

A

A single repository of truth that provides the intended state of the system at any time

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are examples of lean software development practices?

A

The use of MVPs, seeking continuous customer feedback, giving developers the authority to change specifications

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the four key metrics to measuring your delivery process?

A

-Lead time for changes
-Deployment frequency
-Change failure rate
-Mean time to restore

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

How should we measure improvement?

A

Create a baseline by defining what metrics to measure and then collect these metrics

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

In software development, do high (frequent output) or low performers (infrequent output) have a higher failure rate?

A

Low performers have a higher failure rate. High performers have been shown to do better in terms of marketability, profitability and productivity

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

How can software be measured?

A

-Error rates
-Availability
-Performance
-Customer usage
-Infrastructure utilisation

17
Q

What factors are important to the successful planning of a software development project?

A

Establish business objectives, constraints in terms of time/budget and emphasise the importance of a MVP

18
Q

What is it called when you use short periods of time, usually two weeks, to continuously build new versions of the software?

A

Using sprints