Monday, January 30, 2006

Mismanaging project(s) (part III)

Subtitled: Time management

There is no time management because a prerequisite to time management is – time. You see, it’s kinda difficult to manage something you have so little of. Just look at this blog. This was supposed to be a daily blog. See anything new for the past week?

But that’s beside the point. The point is your baby needs to learn time management. You need to teach him what daytime is, what lunchtime means and what nighttime brings. This is a serious matter. How serious, you ask? Of the utmost seriousness. Sounds serious, doesn’t it? Well, it is. You see - you and your baby need sleep. Continuous, 6 hour, non of that pre-R.E.M. stuff sleep. It’s a vicious circle. If you or your baby do not get enough sleep, you get cranky (a no-no) or the baby gets cranky (a bigger no-no), then you’ll both get even less sleep during the day. This will result in an even higher level of crankiness, which may potentially result in heightened levels of crankiness in your spouse (the biggest no-no of them all!). If this escalates… We’ll it’s probably best not to go there.

And yet there’s something even more important. After all that crankiness and petulance you’ll take a long look at your baby, you’ll take him into your arms and he’ll reach out with his little hands and grab you by your face and your ear and smile and say “Ga!”. And you’ll forget all the bad stuff that happened during your day, all the crankiness will leave your body, nothing else will matter and everything will be just fine. And you know what that is? That’s daddy management.

Something your baby doesn’t need to be taught.

Monday, January 16, 2006

The Book

There’s always a book (it’s usually quite colorful and has the following keywords in the title or the subtitle: children, happy, wonders, parenting and easy). And the book will have all the answers, and it will tell you what to do if you wish your child to become the president of your country and what to avoid if you do not wish your offspring to off a few of his schoolmates later on. It will be a firm teacher and a loving friend. And will tell you absolute crap and make your life miserable.

There’s no way to organize anything for the first few months. You’ll barely keep up with the daily tasks and activities. Just to show you an example: You’ll get up at 3:00 am (babies think of this as morning), get the baby out of the cradle, fetch some warm water, change the diaper (twice), wake-up mum to feed the baby, make the coffee, change the diaper again and put the baby back to sleep by carrying it around the apartment for a few hours. Around 9:00 am it will smile at you and fall into deep sleep. You’ll enjoy a brief moment of bliss knowing you’re a good daddy. At this moment the book will tell you that responding to your baby crying at 3:00 am was wrong, changing diapers at night will make your baby a violent sex offender, feeding a gremlin after midnight would have been a better idea, mum drinking coffee will cause the baby to stop drinking her milk and that babies must learn to comfort themselves and must not be held in arms for more the 30 minutes.

So I recommend a book that’s more like something a man can use. So pick up a copy of The Baby Owner's Manual at amazon. Your mileage may vary.

Though now I think the section on programming sleep mode needs to be expanded…

Saturday, January 14, 2006

Basic design flaws

Subtitled: Structured error (non)handling

Babies are purely designed classes. They suffer from basic design flaws which must be corrected before they are ready to be let out into the world without supervision. Case in point is the umbilical cord. You know what the umbilical cord is? It’s a classic case of broken encapsulation.

When a baby error occurs it’s caught and wrapped into the most general exception you can imagine and thrown out at you to handle. Not only do babies not even attempt to handle the problems themselves, they even hide any error information that may or may not be known to them. The only message that gets through the communication channel is a loud audio signal designed to wreak havoc on your nervous system.

The stack trace usually returns a simple: “…error at Baby.Sleep(54000);”.

So debugging babies is next to impossible. It’s more akin to voodoo science then debugging. You do A and the baby does B. Great! What you don’t realize is that you doing A has more chance of causing rain then for your baby to do B again. You see, your baby is probably not even reacting to your A. She stopped crying because there was a slight movement in her bowels she’s now investigating. You could be levitating in a lotus position and she wouldn’t flinch.

Also – babies tend to develop much quicker then you can follow. Whatever worked yesterday is old news. Sounds that stopped the crying instantly now only make it worse. How is a developer versed in structure, logic and control expected to deal with this? Well, think of it as working on a team project. Except you and your “team member” don’t communicate and he keeps changing your code without telling you about it. Now that is a familiar situation isn’t it?

Thursday, January 12, 2006

Mismanaging project(s) (part II)

Subtitled: Organization, structure and control

The first thing you must realize is this - you are not developing your baby from scratch. What you are doing is taking over a project nine months into its progress. It was a hostile takeover and mum (though sedated at this point) is not liking it. Naturally, the documentation is lacking and it is up to you to bring the project back on track.

So most of us turn to user manuals, operating instructions and best practices. As soon as you start delving into the available online resource on the subject you'll get the feeling 95% of the people in the biz range from different to nutz.

In short you have a half-baked product with heaps of undocumented features. The only thing you can do is try to figure it out yourself. This means testing. And I have some bad news on the way error handling is implemented in babies.

Wednesday, January 11, 2006

Mismanaging project(s)

Subtitled: Planning

As previously stated, project “having a child” has no planning stage. Well there may have been some informal discussions beforehand and certainly a decision (conscious or not) has been made at some point not to use birth control. But that’s as far as it goes I mean really – have you ever met someone planning their parenthood? Anyone out there estimating costs? Setting deadlines? Estimating resources? I thought not! There are exceptions but then again – too few to mention.

Speaking of resource estimation, this is yet another overlooked planning phase of our mismanaged project. Estimating resources seems just too easy. There’s a mum, usually a dad, a couple of grandparents, an uncle somewhere out there and your next door teenaged girl. She’ll end up under expenses later on – but for now let’s count her in. Well there’s just one thing wrong with it, it has nothing to do with reality!

First of mum will be out of commission for the first week or two. She just went through a last minute solution build and deliver process, you can’t count on her. Grandparents will just make things worse. It’s been ages since they last worked at a project like this. They’re retired remember? And you can forget about the uncle or the babysitter till the project is in the later stage of development. It’s just you - dad

Tuesday, January 10, 2006

Why the late start?

So why the late start? David was born on 7th of November 2005 which theoretically gave me ample time to blog his development so far. That’s what I thought – well up to the second day David left the production line and became an in-house application. Since then I’ve been averaging about 5h sleep time / day (most of it in fragments of 20 mins). So much for theory…

So anyone telling you kids are easy is either lying to you or is at best someone’s uncle (or an aunt). Kids are !easy. And with good reason. Try to look at a child as a software application. Look at it from a viewpoint of a project manager. Do you see what’s wrong with this picture?

First of all there’s no project plan. Kids happen (well, you know what I mean). There’s no planning stage. No parents have sat down and sketched how the baby should turn out. It’s a classic cowboy programming approach. “Let’s have kids!” Well this is the aftermath…

I’m not saying having a child is bad. I’m not saying I don’t enjoy every microsecond of sharing this planet with my son. I’m just saying there’s more to this then you’ve heard. People with kids will rarely let you in on it. It’s preprogrammed in us by evolution. Species without this have since went extinct. See Dodo.