The XP Agile Approach in Plain English

BETTER APPROACH = BETTER SOFTWARE = BETTER OUTCOMES

XP and other Agile methodologies bring about a better software product and overall better business.

XP or Extreme Programming is about solving problems quickly and writing maintainable code. Below are some XP Agile practices that I’ve found work well with XP teams explained in PLAIN ENGLISH.

KAIZEN (改善)

The Japanese principle of continuous improvement — a concept that not only makes things better, it makes people better. Employ it in everything you do from product feature MVP development to internal process improvements.

INCREMENTAL REQUIREMENTS

By working in small batches, programmers can more quickly implement their work, demonstrate how it works, and make it available to the wider team faster and more efficiently.

FULL STACK STORIES

Don’t build buttons that go to no where or backend processes that aren’t used, build both parts at the same time to ensure the full user experience works.

TEST-DRIVEN DEVELOPMENT

Create a safety net around the code base by writing automated tests that verify feature completion and that nothing else has been broken. Write the tests before writing any production code. If the tests aren’t “green” when they are run, the feature isn’t complete.

CONTINUOUS INTEGRATION

No one works in a silo. Multiple times a day, developers integrate their work with the larger team, to make sure that everyone is always working on the latest update. This means that there is no more “end of project” surprise when all of the code gets put together.

REFACTORING

Developers are encouraged to simplify existing code whenever possible — for a better and easier-to-modify code base. (It’s like cleaning out the rotten veggies out of the refrigerator drawer before putting fresh produce in.)

COLLECTIVE CODE OWNERSHIP

Leverage the brain trust of your entire team by allowing everybody to extend or improve every developer’s code. Bottlenecks are eliminated and better code is crafted because everybody is involved.

PAIR PROGRAMMING

Two programmers working together at a single computer. It’s better for knowledge-sharing, increased productivity, and higher quality output. It also helps with onboarding and lack of going down rabbit holes (see graphic on top for what this looks like)

INFORMATIVE WORKSPACE

To avoid project progress bogging down, fill developer workspaces with “information radiators” — useful charts and diagrams that keep everyone up to date on the health of the project at a moment’s notice.

JUST ENOUGH DOCUMENTATION

Often documentation standards are out-of-date minutes after they’re, well, documented. And they slow everything down. Minimize documentation before implementation, and focus on it at project end for greater efficiency and accuracy.

SHORT STANDUP MEETINGS

No one likes meetings because they have a tendency to go on and on. Limit standups to five or ten minutes, and require everyone attending to stand. This ensures highly focused discussion of progress, health and upcoming coordination — so everyone can get back to work.

ITERATION RETROSPECTIVES

Every step of the project, the team comes together to discuss the tactics that worked well — as well as those that need improvement — to insure that everybody is continually improving.

PROJECT RETROSPECTIVES

Hold a longer reviews of all the issues and ideas we’ve uncovered to make the most of every project moving forward.