Better lesson: if you have an employee who gets bored and writes cutting edge code in his spare time while still getting his work done, give them something better to do.
I've done work for 2 kinds of people, those who visualized the possibilites once they saw what I could do and those who were threatened once they saw what I could do.
I think he's overstating how serious his "transgression" really was. If anything, knowing that one of your rising stars is so into coding that they'd rather be still coding for fun rather than anything else would make them _more_ valuable.
Not saying that working on side projects on company time / company equipment isn't dumb, but it's certainly not a major offense!
"The implementation (in C) was based on the GADDAG data structure and algorithm explained in a paper by Steven Gordon"
Sounds like he was doing something more akin to research, which could certainly have benefitted the company in future development projects, than some guy simply wasting time with a trivial side project.
I was going to post a similar comment, until I read Gordon's paper, which is entitled (wait for it) "A Faster Scrabble Move Generation Algorithm". In other words, this wasn't a case of Eric finding a cool data structure and then choosing Scrabble as a way to play with it-- if it was research, it was Scrabble research.
This is not to take away from Eric in any way-- props to him for both the coding he's done, and the article. And, it wouldn't surprise me at all to find that his knowledge of DAGs, DAWGs and GADDADs was helpful later on in SourceGear.
But this particular case looks more "recreation" than "research" to me.
I'd say that working on commercial side-projects is unethical.
On the other hand, experimenting with code is exactly the thing you want your developers to be doing in their down time.
When working on commercial software you're subject to deadlines, management decisions, interoperability issues and bugfixes. This limits your creativity. It goes with the territory, so I'm not complaining here, but large parts of this process are Not Fun.
Experiments on the side don't have these issues and allow you to do a little freewheeling. Keeps that whole hacking spirit alive. People without side-projects tend to move into project management, oracle db maintenance or turn into burned-out has-beens after a few years of software development.
It's your job as a developer to always have some just-for-fun apps going where you test out new tools and techniques. How else can you suggest anything useful when the next project starts?
To do otherwise is to always stay status quo on architecture or to pick new technologies at random.
Maybe Tim just had the typical aversion to friction that you often find in management. Perhaps his decision looks like genius in hindsight, but was really just motivated by his distaste for disciplining or firing.
I think there is a difference between aversion to friction and the ability to completely control your emotions, which was apparently Tim's skill.
My boss is similar. We've been through some brutal meetings together, and while I start to get heated, he stays totally cool and positive. I always admire it, but can't always follow his lead.
While others might have been immediately upset at their employee, Tim could step back, remain level-headed, and look at the big picture. In the big picture, he had found an employee who could be really successful.
I don't know how you can assume that. I mean, there are both types of managers, but I'd guess there are far more who are just pansies. Given no other information, I'd be more inclined to choose that than chalk it up to some stunning realization.
I thrive in a busy environment. When there is nothing to do, I start to worry about what other people do (or don't do).
Some of the comments on the article are better than the article itself (his manager, a multi-millionaire is now a 18-wheeler truck driver and a great anecdote about the genius who made the first Ethernet card)
unfortunately, some of us don't have a choice to choose a manager to work for. We might choose the company, but in any decent size company, the manager is choosen for us by other people.
unfortunately, I have to agree with you. But even if you have some say in the matter - How can you really know what type of manager this one will be after a brief interview?
This is called being "promoted away" to do no harm, when firing is not an option for some reason. This time he had blind luck; the project could have been scrapped, as most actually end up. Everybody and their dog was implementing a browser in those days but never saw daylight (ISP sw depts 4 sure).
Daniel