L04: Agile Software Development Flashcards

1
Q

Discuss Plan-driven vs Agile development

A

Plan-driven
- Activities are planned in advance and progress is measured against this plan

Agile
- Incremental planning and so, process can be changed

In practice
- Processes include elements of both
- Different process models emphasise different concerns and will be suitable for different types of systems

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

What are some agile principles?

A

Customer involvement
- Customer closely involved throughout development

Incremental delivery
- Software developed in increments, as defined by customer

People, not process
- Skills of team members should be recognised and used without overly restrictive processes

Embracing change
- Expect requirements to change and design for change

Maintaining simplicity
- In both software being developed and the development process

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

What are some challenges of scaling agile processes? (6)

A
  • Large systems of systems, developed by different teams
  • Large systems are often brownfield systems (making sure the new system is compatible with the systems that work with the old system)
  • Configuration vs development
  • Constraints from external rules and regulations (e.g. deadline, budget)
  • Systems with long procurement and development time
  • Diverse set of stakeholders with different perspectives and priorities
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are some challenges that a traditional software team faces?

A
  • Different teams responsible for development, release and support
  • Communication delays
  • Different skills and toolsets
  • Lack of understanding of other perspectives and problems

Result
- Delays in new releases and fixes reaching customers

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

What are some examples of agile processes?

A
  • Scrum
  • eXtreme Programming (XP)
  • Crystal
  • Kanban
  • Feature-driven development (FDD)
  • Lean
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are some examples of scaling agile processes?

A

Large Scale Scrum (LeSS)
- Team of teams

Scaled Agile Framework (SAFe)
- A set of organisation and workflow patterns to promote collaboration across a large number of agile teams

Disciplined Agile Delivery (DAD)
- Hybrid toolkit to simplify process decisions

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

What are some principles of DevOps?

A

Everyone (in the team) is responsible for everything
- Development, release & support

Everything that can be automated should be automated
- Minimal manual involvement in software deployment

Measure first, change later
- Data collected about system and its operation to help decision making

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

What are some solutions for scaling agile processes? (5)

A
  • More up-front design and documentation
  • Diverse product owner or customer representatives
  • Cross-team communication mechanisms
  • Frequent system builds and regular releases
  • New configuration management tools that support multi-team software development
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are some variations of DevOps?

A

DevSecOps
- Development + Security + Operations
- Security is a shared responsibility throughout the software lifecycle

DataOps
- Principles of DevOps applied to data analytics

GitOps
- Version-controlled deployment configuration

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

What are the 3 phases of scrum?

A
  • Outline planning -> backlog and architecture
  • Sprint cycles -> each developing an increment of the system
  • Closure -> wrap up and complete documentation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are the 4 core values of the Manifesto for Agile Software 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

Favour left over right

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

What are the roles in a scrum team?

A

Product owner
- Responsible for maximising value of product created

Development team
- Professionals who do the work of delivering an increment

Scrum master
- Facilitates Scrum and liaises with external stakeholders

Self-organising and cross-functional

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

What are the stages in a scrum sprint cycle?

A
  • During development, team is isolated
  • All communications are channelled through the scrum master
  • Scrum master protects team from distractions
  • At the end of the sprint, completed work is reviewed and presented to stakeholders in retrospective
  • Next sprint cycle then begins
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What does agile mean?

A

Oxford English Dictionary:
“able to change or be changed rapidly in response to customer needs and market forces; adaptable, flexible,
responsive.”

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

What is Agile Software Development?

A

Agile Alliance:
“Agile software development is an umbrella term for a set of frameworks and practices based on the values and principles expressed in the Manifesto for Agile Software Development and the 12 Principles behind it.”

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

What is an agile process and what does it aim to achieve?

A
  • Based on incremental and iterative development
  • Intend to deliver working software quickly and evolve it
    quickly to adapt to changing requirements
  • Aims to reduce software overheads
  • Heavyweight plan-driven processes are not necessarily
    suitable for small and medium-sized projects
17
Q

What is DevOps?

A

Development + Operations

  • DevOps is the integration of software development and management of software after deployment
  • Automation, source code management and measurement are key aspects of DevOps
  • Integration of development, deployment and support
  • Cross-functional teams work on continuous delivery of
    operational features
  • Software engineering, user interface design, security engineering, customer interaction, etc
  • Culture of mutual respect, sharing and learning
  • DevOps concept is interpreted and implemented differently by different organisations
  • Dependent on software delivery mechanism, etc
18
Q

What is scrum in agile development?

A
  • Focus on managing iterative development instead of on specific agile practices
  • Rather than a relay, it is a group effort- everyone makes progress in each iteration
19
Q

What is the Manifesto for Agile Software Development?

A

It has 4 core values and 12 principles for Agile Software Development.

20
Q

What kind of scrum meetings are there within each sprint?

A
  • Sprint planning meeting
  • Daily scrum meeting
  • Sprint review meeting
  • Sprint retrospective
21
Q

Why do we need DevOps?

A

Agile practices requiring faster releases to customers
- Avoiding bottleneck between development and deployment

Successful examples of software services being developed
and supported by the same team with improved reliability
- E.g. Amazon

Increasing use of software as service
- Running on cloud, so no user releases