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 minimal set of effective practices for 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 tenet

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

The XP value of Feedback is the practice of providing constant feedback about________________ so that teams can identify areas for ________________ and ____________ their practices. Feedback also supports ____________.

A

The XP value of Feedback is the practice of providing constant feedback about previous efforts so that teams can identify areas 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

The XP Value of Respect Builds on the other four values of ____________, ____________, ____________ and ____________, and means respecting ones ____________, ____________, ________________, ________________ or ________________.

A

The XP Value of Respect Builds on the other four values of communication, simplicity, feedback and courage, and 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 in Extreme Programming.

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

Fine Scale feedback is connected to the XP Value of Communication. XP aims to keep communication flowing by these four practices 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

In Extreme Programming, 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 XP practices are connected to “Continuous Process” in Extreme programming?

A
  1. Continuous integration (continuously building and testing code many times a day)
  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

In Agile Extreme Programming, 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 interdependence (i.e., 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

Shared Understanding is connected to the XP Value of Communication. XP aims to keep communication flowing by these four practices 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 in Extreme Programming?

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

The System Metafor provides a ________________ and ________________ of an XP project complementing what is commonly referred to as the system architecture. It’s objective is to establish a ____________________ model and ________________ language of a system an how it is intended to perform.

A

The System Metafor 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.