Extreme Programming at a Glance

0
1195

image

“Each of the practices still has the same weaknesses as before, but what if those weaknesses were now made up for by the strengths of other practices? We might be able to get away with doing things simply.” – Kent Beck

Extreme Programming (XP) has been around a while, but not everybody knows “what it looks like.”

What does it look like when you step back and take the balcony view and observe the flow of things?

Whiteboard View of Extreme Programming

It might look a bit like this …

image

I put this view together to help some folks get an idea of what the “system” sort of looks like.  It didn’t need to be perfect, but they needed at least a baseline idea or skeleton so they could better understand how the various practices fit together.

Use the Whiteboard View to Help Others Get On Board Faster

The beauty is that once you put a simple picture up on the whiteboard, then you can have real discussions with the team about where things can be improved.  Once again, a picture is worth 1,000 words.

The main idea here is to get simple visuals in your mind that you can easily draw on a whiteboard, and know the names of the various activities and artifacts. 

If you nail this down, it helps you build a simple vocabulary. 

This vocabulary will help you get others on board faster, and it will help you expand your own toolbox at a rapid rate, and you’ll soon find yourself composing new methods and creating interesting innovations in your process that will help you do things better, faster, and cheaper … on Cloud time.

What is Extreme Programming All About

Extreme Programming (XP) is a lightweight software development methodology based on principles of simplicity, communication, feedback, and courage.  

I like to be able to scan methodologies to compare approaches. 

To do so, I create a skeleton of the activities, artifacts, principles, and practices.   

Here are my notes on XP:

Activities

  • Coding
  • Testing
  • Listening
  • Designing

Artifacts

  • Acceptance tests
  • Code
  • Iteration plan
  • Release and iteration plans
  • Stories
  • Story cards
  • Statistics about the number of tests, stories per iteration, etc.
  • Unit tests
  • Working code every iteration

12 Practices

Here are the 12 XP practices:

  • Coding Standards
  • Collective Ownership
  • Continuous Integration
  • On-Site Customer
  • Pair Programming
  • Planning Game
  • Refactoring
  • Short Releases
  • Simple Design
  • Sustainable Pace
  • System Metaphor
  • Test-Driven Development

For a visual of the XP practices, see a picture of the Practices and Main Cycles of XP.

5 Values (Extreme Programming Explained)

  • Communication
  • Courage
  • Feedback
  • Respect
  • Simplicity

Phases

The following are phases of an XP project life cycle.

  • Exploration Phase
  • Planning Phase
  • Iteration to Release Phase
  • Productionizing Phase
  • Maintenance Phase

For a visual overview, see Agile Modeling Throughout the XP Lifecycle.

12 Principles (Agile Manifesto)

These are the 12 Agile principles according to the  Agile Manifesto:

  • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  • Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
  • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  • Business people and developers must work together daily throughout the project.
  • Build projects around motivated individuals.  Give them the environment and support they need, and trust them to get the job done.
  • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  • Working software is the primary measure of progress.
  • Agile processes promote sustainable development.   The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  • Continuous attention to technical excellence and good design enhances agility.
  • Simplicity–the art of maximizing the amount of work not done–is essential.
  • The best architectures, requirements, and designs emerge from self-organizing teams.
  • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly

4 Values (Agile Manifesto)

These are the four Agile values according to the Agile Manifesto:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

Additional Resources

You Might Also Like

10 Ways to Make Agile Design More Effective
40 Hour Work Week
Don’t Let the Big Get in the Way of the Small
Don’t Push Agile, Pull It
How To Drive Digital Transformation the Agile Way
Kanban for High-Performance Teams
Scrum at a Glance
The 4 Circles of Extreme Programming
Waterfall to Agile
What is Agile?

LEAVE A REPLY

Please enter your comment!
Please enter your name here