I see two fundamental problems with how some companies employ engineers in Silicon Valley. I don't know if they exists in the rest of the world because I only work there, I don't live there. You don't learn about these problems from working as an engineer (at a good company). You learn about them through experience (at a "bad" company).
The problems:
- Engineers have been jumping around between companies in Silicon Valley for years. When the industry is booming, engineers jump companies to get raises. When an engineer (similar to a CEO) is not performing well, they jump companies. As an example, I know of several engineers who left a company recently, one of whom had not had a raise for at least four years. I'd have left long before that unless I was doing something that was going to change the world, i.e. make lots of money for my company.
- Because it is impossible to prevent engineers from passing along information they have "learned," it is virtually impossible to keep secret data from moving between companies when engineers switch jobs. (More on "What Engineers Learn" in a future post if I remember to post it.)
How do we handle these problems when we hire other professionals (highly educated or not)?
- When we hire a doctor, we want one who has a great background. We don't have to worry about him/her passing along medical records.
- When we hire a lawyer, we want one who has a great background. We don't have to worry about him/her passing along legal documents.
- When you hire a plumber, you probably wouldn't mind if he reused the cast-offs from your plumbing job. (But you might not want him using cast-offs from his previous jobs on yours.)
These professionals are expected to not pass along your valuable information, old plumbing, or scraps from things you were billed for.
Engineers can't keep from passing along what they know. If you ask them, don't pass along any company secrets, they can do that. When you hire an engineer. Trust that person with your IP. If you don't he/she can't do a good job. If you can't trust them don't hire them.
However, if you ask them to not pass along their knowledge of programming computers, building complex systems, getting everything done correctly, you can't keep them from passing that along.
If you hire an engineer, don't hinder him/her by not answering questions or by keeping skunk-works projects from him/her.So, why is it we don't trust engineers with our corporate secrets, but we are willing to ask them if they have programmed in C / LISP / FORTRAN / Erlang / node.js / etc? Because computer engineers (and software engineers) are not programmers!
Use your engineers correctly. Computer/software engineers design correct/scalable/maintainable systems. They don't write programs if there is no one else (or no budget) available to do it. You don't ask a computer/software engineer what languages they know, you ask him/her what language you should be using.When we hire a good heart surgeon, we don't ask him what kind of scalpel he uses. When we hire a plumber, we might ask him what kind of faucet or pipes he prefers. When we hire a lawyer, we might listen to his advice (if we're smart).
-Todd
No comments:
Post a Comment