Monday, March 07, 2005

[geek] OOT: Object-Oriented Thinking & Corporate Evolution - The Movie (or, "To Agilify, or Not to Agilify - that is the question:")

Whether 'tis nobler in the mind's eye to suffer The slings and arrows of outrageous agility, Or to take arms against a sea of formalism, And by opposing end them. To iterate: to code; No more; and by coding to say we end The heart-ache, and the thousand natural shocks That programmers are heir to. 'Tis a consumation Devoutly to be wish'd. To pair program, to code; To Code? Perchance to refactor! aye there's the rub...
Okay, so I'll never be mistaken for the Bard... But I finished Object Thinking a while ago, and hadn't really had the time to wrap up my thoughts on it... Much as Hamlet felt torn between offing himself and carpe-ing his diem, no matter how dread, so do I feel torn philisophically. I can hear you now: WTF? Okay, some background (obliquely, gently - no NDA or IP violations now...): our office is slowly and painfully transitioning from a software and consulting services company to being a software company. We're turning consultants into software engineers, and, well, much like watching sausage being made, it ain't purty. We (the company) are used to clients coming to us with A Problem To Be Solved. In order for us to Solve The Problem, we will be paid a certain amount of money provided we can Deal With It in whatever the client's timeframe happens to be. We gear up and go in like something out of The Wild Bunch, guns a-blazin', bits a-twiddlin', specs a-flyin'. Code spews forth like Pekinpah's gouts of cinematic blood, bodies fall, and, at the end, we emerge... uh... well, okay - perhaps The Wild Bunch isn't the best metaphor and I know I certainly don't want to be Ernest Borgnine; but I digress - and you get the idea. But much like the aging outlaws trying to use Civil War-era train robbing tactics against Maxim machine guns, our 'cowboy' tactics won't cut it if we're going to support a product over the long term. We have a certain amount of money invested in this product, we have a certain amount of time to produce some results... and if things pan out, we need to live with those results and be able to support those results for however long it takes. I've been reading a lot of books on XP and other Agile practices because initially it seemed to make a lot of sense: our organization is small, we don't have the resources to sink a lot of time into up-front design work, we have a pretty good team environment - but we're still all cowboys. The Lone Hacker, coding into the night, fueled by coffee or Diet Coke or Jolt! or Mountain Dew, pizza boxes piling up, the commons of our offices becoming more and more dorm-like by the week as we head into crunch times. It's killing us - it might work for consulting (which is debatable, but it isn't an uncommon style for smaller shops), but it ain't gonna cut it for any kind of sustained haul. Enter our research, and my reading of, among other things, Object Thinking. So. Back to the book. I still feel conflicted about it: I like to think I grok it, and I really, really, really liked it - but it's gonna be an extremely hard sell to the rest of our team. Also, I found some of the final chapters hard to get my head around entirely. I'm sure that some of it makes a lot more sense if you're a Smalltalk programmer, but for me... nope. And for some of the other folks I work with? They won't get past the philosophy of the first two-thirds of the book, and if by some miracle or event-horizon anomaly they do, they'll throw it away in disgust when they hit the last chapter... Push comes to shove, I'd give it three Amazon stars. I liked it, I was ready to hear the message. I'm not sure if I've had my moment on the road to Damascus, though. It'll take a bigger revelation than this book to get me to risk being crucified (upside-down or not) by an unruly populace unable or unwilling to listen to a new gospel. I have met the Buddha on the road, and, well... for the time being, I'm going to let him live. I still have way too much to learn before I try to apply this stuff. Which, as far as I've been able to tell, is the archtypal beginning of all internal quests, right? Knowing that you do not know, and all that... We'll see.

0 Comments:

Post a Comment

<< Home