“That is exactly why I decided to build it”.
Jack is this young and budding developer; I inherit him with the project where Fred suddenly disappears.
He is going around with the right guys in the culture chart, he seems to like lying low, seems to be working abnormal hours and occasionally hides in the meeting rooms and conference rooms in search of silence.
Sometimes he even disappears out of office and works at a local cafeteria.
You can see him working in the strangest of places.
I don't see him in any meetings.
In a very healthy and positive way he does not seem to have a life outside work. He seems to love what he is doing.
Put simply, everything about him tells me he is a builder.
Having said that, there is a little problem --- I don't know what Jack is up to.
The “Project Plan” shows him assigned to “invoicing enhancements”.
He's checking in his code on time, but he's up to something mysterious.
Nah! --- I tell myself --- Changing labels on Data Entry forms; couldn’t be keeping him busy.
But then we’ve been working on firefighting multiple issues and I don’t have a lot of time to check on Jack. He could be underutilized; we could be wasting his talents or he could be genuinely up to something interesting; but I have bigger problems at hand.
The code generator that Multiplitaxion Inc, is planning on buying; for example; is a big problem needing immediate attention.
I spend a few weeks evaluating various products in the market. Nothing seems to fit our requirement. Soon I am struggling with every single commercial code generator out there. I’m working hard and staying late.
That's when I realize that Jack and I are the only two ones usually in office past midnight.
"Labels changes on data entry forms keeping him up?" --- I wonder.
Our initial conversations start with simple interactions - “Hey you want to order something? I'm ordering food.”
Then; we talk; about the project --- and what each one of us thinks will kill the project.
Jack thinks, code migration is going to kill us; customized code generation using templates and custom code, is the only thing that can save us.
"What the… this guy knows about the code generation approach?" - I am thinking to myself.
How could he?
What does “invoicing enhancements” have to do with code generation and the most critical aspects of the project?
Not only does he know about the code generator, he knows that looking for commercial code generators is an approach that is not going to work.
More talking --- now he has my attention.
It is late night. Seriously late.
Jack in on a white board, explaining the design of this customized code generator he has been writing without talking to anyone.
Then he's running me through the code.
Then of course the weirdest thing happens --- he shows a working prototype he wrote in his last three months of spare time; without talking to anyone about it.
Everything seems ordinary till this point. However the chain-of-events take a weird turn.
Here is the creepy part – his prototype does exactly what we need.
Silence; followed by a very short conversation.
The discussion was about Fred, the PM, who decided to disappear after rubbing every single builder the wrong way.
Pops: Why didn't you tell us you had a working prototype?
Jack: I asked him if I should give it a shot and he said I should focus on my current tasks. He said I am incapable of building something this complicated.
Pops: You decided to build it anyway?
Jack: Actually --- that is exactly why I decided to build it.
Pops: When were you planning on showing this to everyone?
Jack: I wasn't. Just wanted to see if I can build it.
Pops: Can you demo this to everyone tomorrow?
Jack: If you think it's good enough; I still think it needs a few days of polishing.
Pops: It's good enough. Seriously. Do you think you can demo it?
Jack: Sure. If you think it will help.
Pops: Thanks. Let's go home now.
Since then every time I witness a “builder-hibernation” in an organization, I feel sorry for the organization.
When your builders hibernate, they don't lose their consistency; neither do they stop building stuff. That is their very nature. The behavior is hardcoded in their geans. They can’t help but build stuff.
When they hibernate, they just stop building stuff ‘for you’.
Why? --- Because they think you don’t care one way or the other.
The next time a junior programmer tells you he has ideas do not ask him to focus on his assignments.
Do not tell him to ‘do his job’.
Shut up. Stop. Listen.
The next time you are stuck between doing something that needs your 'immediate attention'; for example; evaluation of a commercial code generator; or having a conversation to someone who seems like a genuine builder in hibernation, remember; the conversation is much more important.
Do not tell yourself you have other important things to address.
Chances are that the solution to the other important things that you are trying to address is lurching in your very own organization and you aren’t even aware of it.
Have you ever seen a builder being told what he cannot do?
Have you seen him go ahead and do it anyways?
What other stories of relentless stubbornness have you seen from your genuine builders, dear reader?
Note: This article is a part of a Work In Progress Book. To Read connected articles read the Builders At Work category of this blog.