Reflections on parallels between parenting and software development
Burping Software and Babies …
I’ve been non-existent in the blogging community for awhile now, consumed by taking care of my second baby, now nearly 4 months old. But as I was sitting up with him the other night, it occurred to me that burps in babies are kind of like bugs in software. So that’s how I’m gonna connect my first blog in a long time with this very consuming activity called parenthood.
Babies need to burp after eating, most of the time. So we sit them up and burp them over and over again, for countless minutes. Sometimes I’m more persistent, bouncing him up and down a bit while burping, even tackling a couple of flights of stairs to break that burp free. Sometimes the burp finds me … sometimes it escapes me. Sometimes, there’s no burp there at all. But how do I know?
Usually, at some point, I declare the baby burp-free and put him back to bed … ah, but only to find that he’s up and screaming an hour later with a burp that I “missed” and if I’m particularly unlucky, he’s barfed all over himself and now I have to change him. This ensures that I’m totally awake and so is he. NOT good, especially in the middle of the night.
Sounds kinda like software, doesn’t it? We build code. We write tests to look for bugs. We jostle our code around, akin to bouncing the baby, looking for bugs. We’re SURE there are bugs there and continually “burp” the code. But at some point, we declare the code “burp-free” (at least for now), and go on to the next thing on the list. And when we’re particularly unlucky, it barfs all over us later. And “middle of the night” for babies equates to “just before release” in software development. Sigh.
Of course, I don’t have a solution other than using all of the tools that nature and technology have given us to get those darned burps (uh, bugs) out of our code. I don’t have a solution to figure out when the baby is done burping either. All I have to say is that after a few more months, the baby will be able to burp on his own. Unfortunately, even a nice suite of automated tests won’t achieve that independence.
Yeah, yeah, I’ll shoot for a more technical blog next time. Hopefully you were a tiny bit entertained by this one.