Top ten things ten years of professional software development has taught me
( http://www.taylor.se/reddit.html )
I especially liked #4 and #5:
4. If everything is equally important, then nothing is important
The business likes to say that all the features are as crucial. They are not. Push back and make them commit. It's easier if you don't force them to pick what to do and what not to do. Instead, let them choose what you should do this week. This will let you produce the stuff that brings value first. If all else goes haywire, at least you've done that.
This shares the "do something useful today" feel of agile-ish practices. (ie, always have a ready-to-ship version that's working available in source).
Even more goodness, this neatly gets around the tenancy (and I've never done this) of "we can't do ALL THAT!!" and/or "You're the customer, YOU tell me what order to build this entire thing!" It neatly chunks out prioritization choices in a non-threatening way.
(I'm really strongly resisting the urge to use phrases like "empowers the customer" and "value add". You can thank me later.)
I'd like to think that I could have diffused some tense-ness (is that a word?) in past projects if I'd used this approach.
5. Don't over-think a problem
I can spend whole days designing things in front of the white board. That doesn't mean it will be any better, it just means it will be more complicated. I don't mean to say you shouldn't design at all, just that the implementation will quickly show me stuff I didn't think of anyway, so why try to make it perfect? Like Dave Farley says: "The devil is in the details, but exorcism is in implementation, not theory."
On this last "learning project" I'm doing, I spent several monday lunchtimes with a friend as we hashed out (on a whiteboard) how control should flow, what objects we needed, etc etc. It was a useful exercise. But when the rubber met the road in implementation, much of that went out the window. The code, in a way, became the teacher.
(I like that. Very zen.)
Friday, March 23, 2007
Subscribe to:
Post Comments (Atom)

0 comments:
Post a Comment