Agile Extreme Programming Flashcards

1
Q

Define Extreme Programming (XP)

A

It is an agile software development framework that aims to produce higher quality software and higher quality of life for the development team.

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

What are the origins of Extreme programming?

A

Developed in the 1990s to address specific software development requirements in the face of vague or changing requirements. (Beck at the Chrysler Corp)

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

Describe the Extreme Programming Mindset.

A

Kent Beck described the following as a minimal set of effective practices:
- Very Short Iterations (Planning Game)
- Continuous Code Reviews (Pair Programming)
- Extensive Testing (Test-Driven Approach)
- Automating builds (Continuous Integration)
- Constant design improvement (Refactoring)
- Continuous architecture refinement (Metaphor)

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

Describe the XP tenets

A

XP aims to flatten the cost of change curve by applying XP values, roles and practices.

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

What are the five XP Values

A

Communication
Feedback
Simplicity
Respect
Courage

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

Describe the XP Value of Communication.

A

Software development requires communication to transfer knowledge. Most problems can be traced back to a lack of communication.

XP employs communication in the area of fine scale feedback, (e.g., Paired programming, Planning game, Test-driven Development, and Whole team) and Shared Understanding (e.g., Coding standards, collective coed ownership, simple design and system metaphor).

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

What is the responsibility of the XP Coach?

A

To notice poor communication and to facilitate effective information exchange.

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

Describe the XP value of simplicity.

A

It is the quality or condition of being easy to understand, do or uncomplicated in design. Avoids waste. (What is the simplest thing that will work). (Remember the KISS mentality).

It means doing a simple thing today, even if it means we pay a little more to change it tomorrow, by addressing only the known requirements without trying to predict future requirements.

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

Describe the relationship between simplicity and communication.

A

Simplicity and communication have a mutually supporting relationship, in that when there is more communication, there is clearer understanding of what is needed, and the higher the confidence level on what doesn’t need to be done. As well, the simpler the solution, the less communication required.

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

Define the XP value of feedback.

A

Constant feedback about previous efforts means that teams can identify area for improvement and revise their practices. Feedback also supports simple design.

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

Define the XP value of Courage.

A

It is effective action in the face of fear and is required to raise organizational issues that reduce the project teams effectiveness, allows the opportunity to stop something that does not work and try something else or to accept and act on feedback.

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

Define the XP value of Respect.

A

Builds on the other four values of communication, simplicity, feedback and courage, respect means respecting ones thoughts, feelings, abilities, qualities or achievements.

It is demonstrated by programmers that never commit changes that break compilation, that make existing tests fail, or that otherwise delay the work of their peers. Team members strive for high quality and seek the best design.

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

What are the four roles and one optional role of the XP team?

A
  • Customer
  • Programmer
  • Tester
  • Coach
  • Optional: Tracker
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Define the role of Customer

A

Commonly includes:
- Driving project goals and features.
- making business decisions.
- participating in the planning game.
- Acceptance tests.
- Representing business/Sponsor interests.
- Prioritizing
- Ideally a single voice.

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

Define the programmer role.

A

Commonly includes:
- collaborating to create customer solutions.
- pair programming
- Programming testing
- Applying designs, coding standards and refactoring.
- collective code ownership.

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

Define the Tester role.

A

Areas commonly include:

  • Helping the customer choose/write functional tests.
  • Running functional and integration tests.
  • Supporting programmers.
  • Setting up the test landscape.
  • Post testing reports.
  • Validating and confirming defect resolution.
17
Q

Define the Coach role.

A

Areas commonly include:
- Optimizing use and veneifits of applied XP practices.
- Demonstrating XP values.
- Noticing team process.
- Ensuring focus on project objectives/iterations.
- suggesting improvements in XP practices.
- resolving team conflicts.
- Serving as an intermediary.
- mentor and train.

18
Q

Define the optional role of the tracker.

A

Commonly includes:
- tracking project schedule.
- capturing progress.
- supporting a sustainable pace.
- identifying ration of passing to failing tests.
Logging and resolving issues.

19
Q

What are the four XP activities?

A
  1. listening
  2. Designing.
  3. Coding.
  4. Testing.
20
Q

What are the four agile principles that are connected to Fine Scale Feedback.

A
  • Pair programming.
  • Planning Game
  • Test-driven development.
  • Whole team (customer)
21
Q

Describe Paired Programming.

A

Two programmers are better than one. This allows for continuous review and quicker response to problems. One programmer will be the driver, and one will be the reviewer/observer.

22
Q

What is the purpose/objective of the planning game?

A

To effectively steer and guide the project activities in order to meet both business value and technical feature objectives.

23
Q

What are the advantages of Test-driven development?

A
  • increases confidence in the code and system stability.
  • promotes simpler, more independent less-coupled code.
  • clarifies functional requirements.
  • Facilitates final acceptance.
24
Q

What is the “Whole Team” and the objective?

A

The whole team refers to a cross-functional group of people with the necessary roles for a product that form a single team. The objective is to ensure what is developed is what is needed and adds business value.

25
Q

What are the three agile principles connected to “Continuous Process”

A
  1. Continuous integration.
  2. Refactoring (design improvement)
  3. Small Releases.
26
Q

What is continuous integration and the objective?

A

Continuous integration is about automating processes for a team to continuously build and test software, many times a day. The objective is to ensure stable code base to deliver a suitable version for release at any moment.

27
Q

What is refactoring, and what is the objective?

A

Refactoring represents a set of guidelines for a specific programming language that recommend programming style, practices, and methods. The objective is to increase cohesion of the code while lowering the coupling.

28
Q

Describe the key advantages of small releases.

A
  1. providing business value early.
  2. reduce the risk and scope variance.
  3. Improving communication and feedback from customers and end-users.
29
Q

What are the four agile principles connected to Shared Understanding?

A
  1. Coding standards.
  2. Collective code ownership.
  3. simple design.
  4. System metaphor.
30
Q

What are coding standards and their advantages?

A

Coding standards represent a set of guidelines for a specific programming language that recommend programming style, practices, and methods. The advantages are to:
- support collective ownership.
- enhance reading and interpretation of base code.
- reduce the amount of time spent reformatting other’s code.

31
Q

What is “collective code ownership” and the main objective?

A

Anybody who sees an opportunity to add value to any portion of the code is required to do so. The objective is that everybody takes responsibility for the whole code base and system.

32
Q

What are the advantages of simple design?

A
  • Avoids redundant, duplicated or copies of information or logic.
  • Promotes the successful running of all necessary tests.
  • Ensures the result states the important intention of the programmers.
  • Prevents the mentality of implement for today, design for tomorrow.
33
Q

What is the System metaphor and the objective?

A

Provides a guiding vision and definition of an XP project complementing what is commonly referred to as the system architecture. It’s objective is to establish a common mental model and descriptive language of a system an how it is intended to perform.

34
Q
A