Agile View of Process Flashcards

1
Q

Main ideas of agile development

A
  1. Individuals and interactions over processes and tools.
  2. Working software over comprehensive documentation.
  3. Customer collaboration over contract negotiation.
  4. Responding to change over following a plan.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Principles 1-6

A
  1. The highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  2. Welcome changing requirements even late in development
  3. Deliver working software frequently, from a couple of weeks to a couple of months.
  4. Business people and developers must work together daily throughout the project
  5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to the job done
  6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Principles 7-12

A
  1. Working software is primary measure of progress
  2. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  3. Continuous attention to technical excellence and good design enhances agility
  4. Simplicity - the art of maximizing the amount of work not done - is essential
  5. The best architectures, requirements, and designs emerge from self-organizing teams
  6. At regular intervals the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Three issues that agile methods address.

A
  1. It is difficult to predict which requirements and user priorities will persist and which will change.
  2. It is difficult to predict how much design is necessary before construction can begin.
  3. Analysis, design, construction and testing are not as predictable as we might think (from planning point of view).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

How an agile process manages unpredictability?

A

It adapts to changes incrementally. For this it requires a quick user feedback. To get a feedback a working version (or prototype) must be delivered frequently.

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

Qualities of an agile team.

A
  1. Competence.
  2. Common focus.
  3. Collaboration.
  4. Decision-making ability.
  5. Fuzzy problem-solving ability.
  6. Mutual trust and respect.
  7. Self-organisation.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Key XP activities.

A
  1. Planning.
  2. Design.
  3. Coding.
  4. Testing.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

XP planning.

A
  1. Users writes stories on index cards and assign them ‘value’ (priority).
  2. Developers assess the stories and estimate their ‘cost’ (in terms of development weeks). If it takes > 3 weeks the story is split.
  3. Users and team agree on the stories to be included in the increment, delivery dates, ie ‘commitment’.
  4. If it’s second release the ‘project velocity’ is computed (number of stories per release). This helps estimate delivery dates and scale the next commitment.
    Stories can be added or updated at any time and plans change accordingly.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Order of story implementation in XP.

A

In three ways:

  1. All implemented at the same time.
  2. Ones with higher value implemented first.
  3. The most risky are implemented first.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

XP design principles.

A
  1. KIS(S), No extra functionality (keep to the story).
  2. CRC cards - the only design document.
  3. Difficult design - spike solution - prototype.
  4. Refactoring.
  5. Design continues both before and after coding started.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

XP coding.

A
  1. Starts with writing unit tests.
  2. Pair programming.
  3. Continuous integration.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Why pair programming?

A
  1. Keeps focus.
  2. Problem solving.
  3. Quality assurance.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

XP testing.

A
  1. Created before coding.
  2. Automatically run after each code change.
  3. At the end - acceptance tests, written by the user based on the stories.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Adaptive Software development.

A
  1. For building complex software and systems.
  2. Human collaboration and team self-organisation.
  3. Three phases: speculation, collaboration, learning.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly