Friday, May 30, 2008

30Day Death March: If They Can't Take a Joke, F**k 'Em

The title? Part one is someone's idea on how to distract programmers from working so as to make it even less likely we will get anything done in thirty days but at least we'll have company. Part two is how we pull it off and is what we used to say about the customer on my summer job in the automobile brake repair shop when we felt our work was a little sketchy. 

I poked around on the feed and can confirm what someone said: I totally killed myself over the years by thinking certain edge features were indispensible. In my head an imagined reviewer was  going batsh*t over something that could be better, like a Consumer's Report automobile editor knocking off two stars from a sport sedan review because their test football linebackers found access to the rear seat problematic. Did you notice it was a sports sedan?! The linebackers can take the frickin bus, OK?!

Even knowing this I did it again this time around (this is version two of something I did in the last century) and I blame Lisp because it made it so damn easy. At first. I failed to notice quickly enough the ensuing death by a thousand cuts for which I thus had signed up. That sentence reminds me of diagramming sentences in the ninth grade when I should have known I would be a social failure when the English teacher and I were doing high fives over the corner cases while the other kids in the class were silently writing me off as... I digress, just watch out for Lisp, it is a two-edged sword.

The crazy thing is that I also know damn well and will tell anyone who asks that this is one of those 80-20 or 90-10 deals, pick yer own damn ratio, OK?: almost all of the value is in the first feature. [kick kick kick]  That was for me, not you. Who are you, anyway?

One caveat: sitting in my cubicle above cloud level one day on one of five floors dedicated to IT drones I was stunned to overhear an intelligent abstract discussion of technology. Someone had a theory. I love a good theory. This one said, Don't ship too soon. The point was and my experience had already confirmed that shipping costs. Period. Suddenly one is working on all sorts of crap that does not move the product forward. Once one ships being live costs. This microISV stuff is about one-person operations so guess who is dealing with the cost/burden of being live? And guess another thing: how completely ineradicable are first impressions? Can I write a survey question guaranteed to elicit unbiased responder input or not?

Oops, what am I? The Anti-30day-Christ? OK, let me finish on a positive note. True story.

"These drawings are wonderful," marvelled aloud the pre-school parent to the children's teacher. "You have a great gift for art instruction."

"No," the teacher demurred. "I just know when to take their drawings away from them."

We few, we happy few Actually Writing Applications have as our mission should we choose to accept to take from ourselves our own applications. 



3 comments:

frgo said...

Kenny said:

We few, we happy few Actually Writing Applications have as our mission should we choose to accept to take from ourselves our own applications.


True. Or: Establish a rock solid requirements engineering with priorities assigned to functionality. But that, of course, would take writing Lisp applications (or, for that matter, any application written in any language) "down" from Software Art to Software Engineering. Hmm - writing to applications to meet the specification / requirements or to meet one's imagination and fascination ... Depends on if you have some damn real need ($$$) for getting some thing done ...

Cheers
Frank

Anonymous said...

I'm taking it Kenny is spending way to long in a cubicle. LISP? for crying out loud? ROFLMAO

Michael Hannemann said...

Someone had a theory. I love a good theory. This one said, Don't ship too soon. The point was and my experience had already confirmed that shipping costs. Period. Suddenly one is working on all sorts of crap that does not move the product forward. Once one ships being live costs. This microISV stuff is about one-person operations so guess who is dealing with the cost/burden of being live? And guess another thing: how completely ineradicable are first impressions?

That's definitely a good point -- once you ship something, you have to support it. And it's entirely likely that you were hoping that income from selling something was going to help pay for the debt you incurred getting to the shipping point. Paying for someone else to do support clearly gets in the way of that.

On the other hand, hopefully support doesn't take up 100% of your time? You should be moving forward still, just more slowly, _and_ you might have useful input from users about what works & what doesn't, which you can use in version 2.

...

Re-reading what I just wrote, I'm reminded of an old maxim: All programmers are optimists.