May 2007 - Posts

PEZ Development
20 May 07 03:41 AM | Earl Beede | with no comments

I was teaching an Agile seminar recently when the image of a PEZ candy dispenser popped into my head. Why, PEZ candy, I thought, is just like an Agile project. You work things in priority order by taking what is off the top of the stack of similar sized bits of work. We know that they are similar size since we broke down the bigger ones until they at least fit into the iteration length. Like PEZ, the product owner could rearrange the candy flavors however they liked until I put one into my mouth. Then it is either spit it out or eat it, no changing the flavor.

This metaphor may be the perfect thing for solving the Agile name problem. A few of the "founders" of Agile have suggest that the name "Agile" was not the best choice. I mean, who really is saying their development methodology is "rigid"? Also, there isn't a good name for the opposite of Agile. Boehm uses a term like "Plan-driven". Others have used the term "traditional". I have used the idea of "deterministic". But if I rename Agile to "PEZ Development", that opens all up all sorts of useful comparisons.

Waterfall can become "Jawbreaker Development". One big, hard lump that, no matter how long you suck on it, never seems to go away. Of course, we all know somebody who said that they actually finished a jawbreaker in their lifetime. Sure they did. I think they just licked at it for awhile before it got lost behind the clothes washer. As kids, most of us took out a hammer and broke our breaker. It was much easier to consume as a chunk here and a splinter there. Once we got tired of it, the rest could be thrown away.

Spiral can become "Tootsie Roll Pop Development". You start out with the hard stuff. By slowly spinning it around and around in your mouth, you take care of all the hard things that can break your teeth. Once that is gone, the soft, easily consumed center is quickly dispatched.

All the well run sequential models (staged delivery, design to schedule, etc.) are "Chocolate Bunny Development". Of course, here I am referring to the large, solid chocolate bunnies given in the spring at Easter. You can substitute your favorite holiday large chocolate item if you wish. Usually consumed in series of scheduled times (like after dinner or, for me, when awake), you keep eating it until it is gone or you run out of time (your Dad takes it and eats the rest). Also a common feature of this type of candy is a decision to eat in a certain order. First go the ears, then the feet...

The old code-and-fix model can be "M&M Development". Sure, its fun to eat but you just don't stop. Not even when the bag is gone, you just go get another one. There is no way to eat a few. You also never really know when you have had enough.

Evolutionary prototyping is "Salt Water Taffy Development". Pick one up out of the pile of brightly colored taffy and taste it. Most of the time you spit it right back out because it tasks like, well, salt water. But, you try again until you find one that is edible. Then you stop since you know it is not wise to press your luck.

I think that this general renaming of software development can really help us identify the best of each set of practices. It can help us get out of the "my way is good" and "your way is bad" syndrome. By using this naming standard we can see that there is something sweet about each way of approaching software development. It can also remind us that too much software development before dinner can ruin our appetite.

And you can be the Candy Man!

Filed under: , , ,
The Existential Pleasures of Flogging
06 May 07 12:17 PM | Earl Beede | 5 comment(s)

In my last post I spoke about how some moron is going to cause you to go Arrrgg! by doing something stupid with your product. Unfortunately, that appears to be a fundamental truth. I have been pondering why some moron does the stupid thing when Steve McConnell's inaugural post lead me to another conclusion: it is as fun as heck to flog somebody else's product.

That is just it. Whipping and beating your own product is about as enjoyable as a warm tuna sandwich with way too much mayo. You can eat it if have to but you rather not. However, flogging some other poor soul's attempt at product perfection is a way to bring them down to their existential, earth-bound reality. When I have to flog my own work, I call it testing and I hate it. When I get to flog somebody else's stuff, well, then it is play time! I don't have to check out every part of it, I don't have to calculate coverage or trace back to every requirement, I can pick and choose the spots that seem interesting; the spots that are mostly likely to cave. I can invoke moron creativity and try clicking on that button while holding down the print screen key just because I can.

I had one of you flog me recently. That person (who will remain nameless but I will call Bruce) attempted to use this site's email system to send an email after he had 1) composed a system email 2) opened up a new tab and 3) logged off the system. So, surprise-surprise, when he tried to send his email, the system said something like, "You need to be logged in, you bozo." It probably didn't say the "bozo" bit but it should have. Then -- as he writes me oh so formally -- the system had the audacity to return him to a blank email form after he logged back in. "It should have populated the system email with the original text," wrote Bruce-who-is-nameless (I guess in some other email system). I personally am not sure how, since there was no database connection to save the text but, hey, this is where the existential pleasure of flogging comes in.

When I flog, it is not about what is best for some undefined customer or world peace or the improvement of humanity. It is doing what I want to do in the way I want to do it. It is a fully self-focused, down-to-earth, gritty reality of my own best interests when I flog. I don't have to limit it just to software or products, I can flog away at any personal injustice that I deem worthy of my attention. I am sure that many governmental rules are the result of flogging. I recall that a once mighty sports stadium in Seattle, the Kingdome, had to change its railings because some drunk climbed up on them and fell off. That is flogging at its finest; morons do something stupid so we all need to change. Think of the overload of politically correct speech and you can see flogging at work.

The obnoxious point is that it would be better if the system populated the email, the Kindome didn't kill people (even if they are unbelievably stupid), and that we all respected each other. A good flog isn't wrong, it isn't even necessarily petty (though it often is). It is, however, the exception rather than the rule. It is what happens to the one rather than what happens to the many.

I believe it was the comedian George Carlin who pointed out that all people driving faster than you on the freeway are maniacs and those driving slower than you are idiots. It is the rationalization that *I* am the special one that brings the true pleasure of flogging. It reflects well my experience with the world.

Only, don't flog my products, kay?

Filed under: , ,