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.