I miss XP. It hit me hard how much when I read Uncle Bobs Ode to Kent’s White Book.
Man those were good times. We were going to change the world. It was us against them. It was the tyranny of the traditional against the brash, naivety of the new. And It was the programmers who finally stood up and said “Enough!”.
And man did XP make waves.
Test first? Ridiculous.
Recipes cards for requirements? You gotta be kidding.
Simplest thing that could possibly work? Grow up.
It’s unfortunate that people don’t talk about XP like we used to. But it’s practices are alive and well practiced everyday by thousands around the world.
Let’s take a look at why this book has so influential, the impact it’s had on our industry, and why we still aren’t all using it today.
Testing
XP tipped testing on it’s head.
No longer an after thought, left till the end, XP made testing the center of the universe on software projects
You didn’t write code until you had a failing test on XP projects
You didn’t check code in until all the tests ran
The tests needed to be continuously passing – 100%
You weren’t done, until all of your customers tests passed
Customers wrote tests. Developers wrote tests. Everyone tested on an XP project.
Design
XP challenged a lot of what we traditional thought was good (upfront) design.
Taking more of an options approach, XP recommended not adding complexity until you absolutely needed it (YAGNI).
This was XP’s way of pushing back against the over engineering going on in the late 90s. XP taught us to design continuously (not once) while introducing us to the importance of language, and the power of a good metaphor.
Requirements & Analysis
The story card was XPs greatest innovation.
Instead of trying to get everything written down and get everything right upfront, XP said jot the idea down on one of your mom’s recipe cards, and have a conversation later with your customer if it ever comes up.
You wouldn’t believe the howls of protest.
How this could possibly work!
Where’s the tracability?
Where are the requirements?
How are you going to fit all those requirements on that one little index card?
Planning
1000s of books had been written on how to manage and plan software projects. XP pretty much blew them all up.
XP trivialized what it took to plan software project.
It punted on the whole ‘plan the work, work the plan’ thing by telling the truth (we don’t know exactly when we are going to be done), and rejecting static plans. Instead it said, we are going build something, see how long that takes, and then feed that back into the plan. Then we’ll tell you how are date is looking. No wishful thinking or management by miracle here.
XP was the first to suggest that when you have too much to do, and not enough time, you should do less. Rocket science. I know.
Controversy
You can see where all this is going.
XP disrupted just about every traditional role on the software project.
It showed how dysfunctional things in our industry really were.
And not everyone appreciated that.
XP’s problem was it’s lack of inclusiveness.
It was great if you were a programmer or a customer.
But it was terrible if you did anything else.
It threatened testers (developers were now writing the tests)
It threatened analysts (developers were now talking directly to customers)
And it especially threatened project managers (small groups of professionals don’t require much in the way of management).
For these reasons many attacked XP and the Agile movement. And that might have been it if it wasn’t for the emergence and soft sell of Scrum.
Scrum to the rescue
For all of XP’s divisiveness, Scrum was the exact opposite.
Scrum was for everyone.
Small, self organizing teams made up of multi-disciplinary people delivering software every 30 days. Sounds great.
Traditional testers could test
Analysts could analyze.
Everyone had a spot at the table and was a large part why so many flocked to it.
PM’s were perhaps the most happy. Not only where the back in change. They finally had a means to ‘control’ these Agile projects, while simultaneously gaining a new title themselves – Scrum Master.
This was of course maddening to XPers and felt like a huge step backwards. Not only did Scrum not bring anything new or innovative to the party (from the XPers point-of-view). It completely left the most important parts out – the software!
But despite all these things, Scrum was hugely successful in one area where XP failed. Scrum was Agile’s beach head in enterprises and organizations.
Scrum made it safe for people to talk Agile. I am also extremely grateful to Scrum for promoting the concept of the self organizing team – no titles or roles on projects.
Ripples for years to come
Some to the largest organizations in the world are applying XP at a mass scale. XP had a huge affect on how Google tests software. And, not sure if anyone has noticed, Kent spends a lot of time these days at Facebook. I don’t know what the arrangement is, but that place reeks of XP. And for anyone who wants to see world class engineering and problem solving on a global scale check out how Facebook releases software or how they do development and deployment (hint – there is no QA department).
But love it or hate it, it’s hard to deny how much this book has affected our industry. Apparently it’s now recommending reading for management gurus. While on the other hand I know many in our industry would be quite happy to see it quietly die.
XP matters. This book matters, and many of us wouldn’t be where we are today if it weren’t for Kent and Ward. That book took courage to write. Let us hope we can show the same courage and continue talking about it in the future.
For more information checkout:
– My recommended reading list (XP Books near the top)
– The original IEEE Paper
– Good ol Wikipedia
Dec 11, 2013 @ 22:07:36
Great post Jonathan! JB Rainsberger gave a talk on the last ten years of software development since the Agile manifesto in 2011, http://vimeo.com/30151990 and his contention (spoiler alert) is that “post agile” is XP. I have always said that XP is the most advanced of the Agile methodologies with the worst brand. Just try going to an IT Director and telling him our new way of working is called EXTREME Programming… Kent gave us brilliant ideas, and bad marketing. It might have had greater success if he called it cautious programming, or SAFe programming ;). Kent recently spoke about his work with Facebook in conversation with Eric Ries, author of Lean Startup, to promote the conference that is wrapping up in SF today. Enjoy! http://www.ustream.tv/recorded/40772384
Dec 12, 2013 @ 16:59:50
Those are great links Robin. Thank you. Will definitely check those out.
Cheers
Dec 13, 2013 @ 07:42:33
Hey, JR, Robin, thanks for the promotion. 🙂 I’ve recently talked about “The Next Decade”, where I think we need to put the essence of the XP practices back into the common consciousness: managing risk, egolessness, trust, and do things like explain the business case for simple design. I’ve been doing that more and more the past year or so. I know that you guys already do that, but I think we can probably do it even more loudly than we do.
I think the Extreme Programming brand did its job, and I appreciate it, and I have no idea how to brand the Next Thing without pandering. I don’t really know what the next market values. I guess I need to choose a next market, then see what it values. Hm. There’s a clue in that sentence.
Thanks again.
Dec 13, 2013 @ 12:13:40
I am with you JB. I think some us of have subconsciously been doing that (I recently created an XP Page on my agilenutshell.com website), and I have slowly been writing more about the body of knowledge and language I don’t want to see us lose (YAGNI, Simplest thing that could possibly work).
I think eventually there is going to be another revolution. It may not be under the XP name, but I think it is going to build on XPs core values
You code because if you do not code, you will haven’t done anything.
You test because if you don’t test, you don’t know when you are done coding.
You listen because if you don’t listen you don’t know what to code or what to tests.
And you design so you can keep coding and testing and listening indefinitely.
Thanks for the comment.
http://www.agilenutshell.com/xp
Dec 20, 2013 @ 21:41:30
Jonathan,
Well written and right on target.
I think we need to look for new ways to connect. For me this is through culture and people-friendly work environments.
– Michael
May 13, 2014 @ 23:44:20
Fond memories indeed! Great experience with my mentors and colleagues.