In my opinion, one of the most amazing facts about children is the passion that they can develop for certain things. My son, for instance, recently wanted to pet chickens as we spent time on a farm. Imagine the little man chasing chicken around the place, complaining that they kept running away as soon as he got close. This went on for about two days, until he had learned his lesson. Of course, while at the farm, I had repeatedly told him that the chicken did not want to be petted. As you can imagine, he did not really care about my advice. He just had to gain his own experience.
Children strive for perfection. Their own definition of perfection might be somewhat different from their parent's expectations, though. My daughter, for example, can spend about 10 minutes with dripping honey on a slice of bread (or even better, directly on her plate). I cannot say what shape or pattern of honey distribution she is actually aiming for, but for sure it must be a very meditative task to work on. My daughter will usually not stop before you remove the honeypot, and I will not go into details about the "discussions" that follow the removal of the honeypot. Suffice it to say that it is not guaranteed that she will actually eat the honey.
Probably everybody has witnessed a child being given a new toy. Their eyes light up, and they immediately want to try out the new toy. This "trying out"can last for several hours or days, and might even include reverse engineering the toy, or pushing the boundaries well beyond the toy's specification. In case the toy breaks (which, unfortunately, is not uncommon), one can usually expect a pretty emotional reaction.
In general, children do not posses a sense of time, or timing. In combination with children's incredible desire to do things on their own (dressing, quickly finishing up that puzzle, or wearing shoes, for instance), you quickly run into trouble when you need to make good time. In my case, this usually happens if we have an invitation, or want to reach day care in time, just this one time, for a change. So what is more important: giving children the freedom to learn and explore, or actually getting stuff done?
It turns out that learning is a long and difficult process. Children learn based on their own experiences. Sometimes, explanations do not even seem to be helpful, or needed. When my kids started to walk, for example, not only was I completely unable to explain to them what to do, but any explanation would have been beyond their comprehension. The same holds true for turning around, crawling, or getting up. Have you ever tried to explain to somebody how you actually get up?
To sum it up: children are awesome, and being a father, while being stressful from time to time, is something I would not want to miss. But all of this has nothing to do with development, or does it? I think there are a lot of commonalities, because software developers are just like children. This is, by no means, a devaluation of developers.
Most developers I have met, including myself, are perfectionists. We have an intrinsic motivation to deliver high quality. Quite often, I find that customers(regardless of whether they are internal or external) actually require "less"quality than the developers think is appropriate. While it is important to define SMART quality goals that align with the corporate strategy, developers can quickly be demotivated if they are not allowed to reach the quality goals they have set themselves. This happens in a very implicit process, and it helps to make this process explicit.
Developers also have an intrinsic motivation to learn constantly. This requires time and effort, and many work environments do not give developers enough freedom to do this. This leads to developers trying out "new toys" in business-critical projects, instead of creating a prototype, or playing around with a new technology in a pet project for a while. If developers had more freedom to try out things outside business-critical projects, there would be fewer project risks.
I would now like to invite you to re-read this article. Whether you have children or not, I am sure that you will agree with me that a lot of what I wrote about children also holds true for software developers. I will leave it up to you to reach your own conclusions on how this should affect the way you look at how developers act, interact, and communicate.