Requirements in eXtreme Programming Flashcards

1
Q

Who named XP?

A

Kent Beck in 1995

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

What is the Basic Principle of XP?

A

Change costs more overtime. We can flatten this cost by applying five values

  • Simplicity
  • Communication
  • Feedback
  • Respect
  • Courage
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the 12 practices of XP?

A
  • Planning
  • Testing
  • Pair Programming
  • Refactoring
  • Simple Design
  • Collective Code Ownership
  • Continuous Integration
  • On-site Customer
  • Small Releases
  • 40-Hour Week
  • Coding Standards
  • System Metaphor (architecture)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

How does planning work in XP?

A

Write user stories
Release planning creates the schedule
Make frequent small releases
Start each iteration with iteration planning

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

Describe the overall process of XP

A

Review slide 2-6

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

User stories turn requirements into a ______. They should identify fundamental desires and be sized for _ to _ weeks

A

dialogue, 1, 3

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

User stories are written only by the ________

A

customers

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

What are 3 criteria for user stories

A

Sized so they can be built in one iteration
Independent of each other
Testable

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

What is the user story format?

A

As a WHO I want to WHAT so I can WHY

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

Instead of KLOC, we use what to estimate in XP?

A

Past experiences. We let team members who actually do the work make an optimistic estimate

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

How do we prioritize user stories?

A

Ultimately, the users make the final decision based on the value each user story brings. However, developers should order them by risk and relay the information to the customer

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

What is project velocity?

A

The total of estimates of the user stories done during an iteration. This value is not useful until after a few iterations. We have to guess the initial value

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

What is release planning?

A

Gathering user stories and creating a release plan that lays out the overall project. Project velocity is used to determine which stories make into which release

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

In XP, you should never what?

A

Delay releases

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

Give an outline of iteration planning in XP

A

Add to release plan (unfinished tasks, new tasks, bugs)
Use project velocity and customer to re-prioritize tasks
Use project velocity to determine stories to develop
Break down stories into tasks
Use task-level project velocity to determine how much can be done in this iteration

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

What does a tracker do?

A

Asks developers for:
- How many days of work have been done on a task
- How many days are left to finish it
a couple times each week.

17
Q

Once a tracker asks the developers for their status, what can happen?

A

Drop stories
Take on more stories
Reassign stories

18
Q

Every morning should start with a __ minute standup meeting

A

15

19
Q

What is the purpose of the standup meeting?

A

To communicate problems, but not solve them

20
Q

What is the format of the standup meeting?

A

Go round one by one, with each person saying what has been done and what problems there are

21
Q

What 2 types of testing are used in XP?

A

Unit testing
- Writing these tests are done before coding
- Just enough code is written to run the test
Acceptance testing
- Written at the beginning of each iteration for each story in the iteration
- One user story can have one or more acceptance tests
- Customer specifies the testing scenarios

22
Q

What are advantages of pair programming?

A

Design decision involve at least 2 brains
At least 2 people are familiar with the part
2 people are less likely to neglect tests and other tasks
Code is being reviewed by at least 2 people

23
Q

What are the disadvantages of pair programming?

A

Slow at first

24
Q

What is refactoring?

A

Improving code without changing functionality

25
Q

When should you not refactor?

A

The code is broken and needs rewriting
You don’t know how to make it simpler
It’s the only thing stopping shipment

26
Q

What are some guidelines for making a simple design?

A
  • Don’t design everything at once
  • Use the simplest design (run all tests, no duped code, fewest classes and methods)
  • Don’t include extra features
  • Don’t anticipate the future
  • Simpler is usually better (easier to understand, easier to change)
27
Q

What is continuous integration?

A

After successful unit testing, integrating the new code into your build, sometimes several times a day

28
Q

What is good a bout continuous integration?

A

It can reveal bugs that don’t show in unit testing

29
Q

When doing continuous integration, do not do a ___ ______ integration, and spend a lot of time fixing problems

A

big-bang

30
Q

What is the on-site customer used for?

A

Clarifying stories (requirements) and making business decisions.

31
Q

Why do we have an on-site customer in XP?

A

To remove bottlenecks caused by waiting for decisions and clarifications

32
Q

XP heavily advocates a __ hour work week, with minimal overtime

A

40

33
Q

Explain the following terms:

  • Requirements elicitation
  • Requirements analysis
  • Requirements specification
  • Requirements validation
  • Requirements change management
A
  • Requirements elicitation: Discovering requirements through consultation with stakeholders
  • Requirements analysis: Analyzing requirements to resolve conflicts
  • Requirements specification: Documenting requirements
  • Requirements validation: Checking requirements for consistency and completeness, creating a prototype, writing acceptance tests.
  • Requirements change management: Procedures that manage change
34
Q

Describe how each of the following requirement concepts are met in XP:

  • Requirements elicitation
  • Requirements analysis
  • Requirements specification
  • Requirements validation
  • Requirements change management
  • Architecture
A
  • Requirements elicitation
    Interview with clients
    User story capturing
    Input from stakeholders
  • Requirements analysis
    Meeting business people and devs of projects
    Ordering user stories
  • Requirements specification
    User story
  • Requirements validation
    Acceptance criteria written at beginning of each iteration
    Each user story gets 1+ acceptance tests
  • Requirements change management
    Daily standup meeting
    On site customer
    Tracking
  • Architecture
    System metaphor