Thursday, December 30, 2010

Another programming/real-world intersection

At the moment, the house smells of cedar chest and banana bread, both tell-tale signs that someone was on a domestic roll today. But, rightly, that roll was supposed to stop much sooner than it actually did. That it didn't was largely a matter of not respecting dependencies. That and certain "might as well get it out from underfoot while I'm thinking about it" tendencies that will forever bar me from the "agile"/"lean" programming clubhouse.

For context: In software development (particularly the planning and scheduling parts of it), a "dependency" is pretty much what it sounds like: One bit of work can't proceed before another one is finished. When you're a one-woman band, as I so often am, it's mostly a non-issue--at least in the sense that it's not, technically, wasting time if different tasks take more or less time than expected. I can only do one of them at a time anyway.

Of course, when more than one person is involved, that's where timing becomes crucial to figure out. If Programmer A takes longer than expected to complete a "dependency," Programmer B could be twiddling his thumbs doing busywork until A finishes. Similarly, (albeit less likely), should Programmer A finishes her dependency before B expects it, she could be twiddling her thumbs if no one has her slated to pick up on anything else.

In today's case, constraining factors were the limited daylight (for shoveling) and not paying close enough attention to the clock or watch (for the washer/tryer cycles). I'd add the cat's nap schedule (because he was due for a thorough brushing), except I don't think any scheduling methodology in existence (including my gut instinct) could handle the near-quantum nature of the nap/not-nap duality that is His Doodness. The saving grace was that there was more than plenty of picking and putting and sweeping and dish-washing and random acts of organization. Thus, it was a productive day.

All the same, I'm dismayed that five years of estimating are as (apparently) as much gut instinct for non-programming projects as they are in software development. Except that this time, my gut forgot to remind me to sandbag appropriately.