Cabal Programming
Mark Mzyk | December 12, 2007
The blog discipline and punish just posted a link to an old article describing how Valve designed Half-life (direct link here).
The article is interesting and worth the read to discover how one company worked to develop an incredibly successful product. From the article, Valve discovered on their own many of the things that encompass the agile and XP programming methodologies and put them to good use.
I identified the following areas that Valve employed, in their own way, from agile and XP:
- Scrum
- Customer Collaboration
- Collective Ownership
- You Aren’t Going To Need It (YAGNI)
- Code Reuse
- Less Design Docs, More Implementation
And while I didn’t see pair programming mentioned explicitly in the article, I think it probably did occur. At the very least Valve had a lot of pair designing going on.
On a side note, I think pairing is just like using parallel processors. When taken full advantage of, there is more processing power to get things done than just one alone.
Getting back to Valve, it would be interesting to see a follow up article to see how the Cabal process has worked for them in their projects since Half-life. I’ll look into this and let you know what I find.
Cabal Programming. That just sounds so much cooler than Extreme Programming. At least, I think so.