Skip to main content

XP is to Development Process what GOF is to Software Design

The problem I see with most objections to Extreme Programing (XP) and Agile development is that they are often speculations on theory, rather than wisdom based on actual practice. It's amazing to see the amount of time and energy people spend in *discussing* process than actually building something and learning from the experience.

The following is my real-world take on this subject, directed at no one in particular, but at everyone in general who is critical or afraid of XP (often the same people who don't have meaningful experience of using it):

XP is a process that has *evolved* through the collective experience of programmers through the mess that the software industry had become- always late, always over-budget, always buggy. And we were told to accept it as a fact of life.

In the midst of all the chaos, there were programmers working after hours doing what they weren't allowed to do during the day - writing tests for code (TDD), automating builds and tests (continuous build & integration), fixing things they were not supposed to fix (refactoring), working with their like-minded colleagues (pair-programming) on weekends to ensure they got a lot done without the "inevitable bugs" which would have brought down the fury of the management upon them, ... and so on.

XP and Agile brought us all out of the closets. That's why only experienced people with open-minds find it easiest to adopt XP. Or fresh out of college students or young programmers who have not yet been corrupted by the "you're too good to write tests- you'll only do coding" crap they often get fed.

To me, questioning XP without learning XP is like questioning the Gang-of-four Design Patterns before you have any serious programming background solving the problems solved by the GOF patterns.

Design patterns *evolved* after years of people doing things the wrong way, before they learned the right way. Design patterns teach us how to write good code by learning from the mistakes made by smart, experienced programmers before us and the lessons they learned.

*** Design Pattens are Best-practices for programming, solving most typical programming problems.

*** XP/Agile are Best-practices for product/project development process, solving most of the typical process problems (requirements gathering, estimating and scheduling work, measuring progress, managing change, getting feedback early & often, continuous knowledge transfer and peer-review, ... the list is long.


Comments

Popular posts from this blog

Splitting User Stories vs. Rally's "split" feature (that has nothing to do with it!)

I recently came across a "split" feature in the popular Agile tool Rally that they recommend to handle unfinished work. Manage Unfinished Work - Split user stories http://www.rallydev.com/help/manage-unfinished-work Screenshot http://www.rallydev.com/help/sites/default/files/multimedia/Screen%20Shot%202012-03-02%20at%2011.17.11%20AM.png UPDATE: The above links don’t work anymore (apparently since CA acquired Rally). Rather than change the links (because I’m not sure if the new links correspond to the old articles I was responding to), I’m just going to share the new links: https://help.rallydev.com/manage-unfinished-work#split Below are my observations on the "Split" feature in Rally (following by a few excellent articles on Splitting User Stories): This has numerous problems: 1. Nothing to do with Splitting User Stories It has nothing to do with "Splitting a User Story" which is an advanced but fairly well-understood field in Agile, and a tool for Product Managers…

The Wise & Persistent (a.k.a. Agile) Entrepreneur

"The whole problem with the world is that fools and fanatics are always so certain of themselves, but wiser people so full of doubts."
Bertrand Russell
The Dunning-Kruger effect explains the pervasive and perverse phenomenon where people with less competence rate their ability higher than do people who are relatively more competent.

The successful pursuit of any major goal in life requires many things including the much overrated Luck. In my mind, two qualities stand head and shoulders above everything else as absolutely essential to success:

Your ability to LearnYour Persistence
I've previously discussed how to improve your ability to learn.

Today I want to share with my fellow entrepreneurs my thoughts on persistence.

I'm sure you had enough lessons of persistence knocked into your head. And it may even be getting to a point where the word starts to lose its meaning. But the thing is, persistence will lead you to success only if you have a proportional ability to learn…

Gaand Mein Danda

If you don't know Hindi, you probably won't relate to it.

Turns out the youth culture in India is alive and well, and quite creative too.
Here's a hilarious- and a very melodious song, Gaand Mein Danda, from "Bodhi Tree", a student band from XLRI Jamshedpur.

Read along with the lyrics for total enjoyment ;)

Some of their other hits include:
- Sabka Katega
- Too Many Potatoes
- XL Ki Kudiyan

Here's some more on the topic if you're intrigued:
Sutta mil gaya
Swear word mil gaya