Agile Development Flashcards

1
Q

Define ‘stakeholder’ in the context of agile development

A

A stakeholder is anyone who has a vested interest in the system - most commonly used to describe customers, but can also refer to developers, users, etc.

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

Define a cross-functional team

A

A group of people with different functional expertise working toward a common goal.

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

What are some principles that Agile advocates for?

A
  • adaptive planning
  • evolutionary development
  • early delivery
  • continuous improvement
  • rapid and flexible response to change
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are some ways Agile differs from traditional plan-driven development as stated in the Agile Manifesto?

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
5
Q

Why is Extreme Programming ‘extreme’?

A

It takes an extreme approach to iterative development
- new versions may be built several times a day
- increments are delivered every 2 weeks
- all tests must run for every build and the build is accepted only if tests run successfully

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

Define test-first development

A

Tests are written automatically for a new piece of a functionality before that functionality is implemented

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

Define pair programming

A

Developers work in pairs at a single computer, checking each others’ work as they go

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

Define collective ownership

A

The idea that by having all developers work on all areas of the system, each developer takes responsibility for all of the code - anyone can edit anything

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

Define a user story and explain how they are different from traditional requirements

A

User stories are stories written from the perspective of the user, detailing requirements for the system. They are then divided among small teams and these teams break them into implementation tasks that are used as a basis of schedule and cost estimates. The customer then chooses the stories for inclusion in the next release based on their priorities and schedule estimates.

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

Describe Extreme Programming’s take on refactoring

A

XP proposes constant code improvement instead of dedicated refactoring

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

Describe how XP employs test-first development

A

The program is tested after every change has been made. The tests are incrementally developed from scenarios and the user is involved in validation.
Automated tests run all components each time a new release is built.

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

How is the customer involved in verification in XP?

A

The customer helps develop acceptance tests for the user stories that are implemented in the next release of the system.

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

What is meant by ‘test automation’?

A

Tests are written as executable components before the task is implemented, that can be easily executed to verify each iteration.

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

What are some problems with test-first development?

A
  • Developers prefer coding to testing and may take shortcuts when writing tests
  • Some tests can be too complex to write incrementally
  • It is difficult to judge the completeness of tests
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Describe the difference between ‘scaling out’ and ‘scaling up’ agile methods

A

Scaling out is concerned with how agile method scan be introduced across a large organization.
Scaling up is concerned with using agile methods for developing large software that cannot be developed with a small team.

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

Why are there contractual issues with agile?

A

Software contracts usually are based on a specification which defines what has to be implemented by the developer. This is not always compatible with Agile’s idea of interleaving specification and development

17
Q

What stage of development is less effective with agile?

A

Maintenance - Because of Agile’s minimal documentation, new devs may struggle with being introduced during maintenance phase, and agile methods may not be effective for evolving a system in response to customer change requests

18
Q

When would it be more appropriate to use a plan driven development method?

A
  • It is important to have a detailed specification/design before implementation
  • Agile is ideal for small/centralized teams. It may be less practical for large, international teams.