Last night, I came across this article talking about the difference between an employee who is passionate about the company and an employee who is passionate about their work. Rarely does a blog entry come along that matches up so exactly with my own ideas.
The best nugget of wisdom comes in the form of the “four-question test” that identifies if an employee is passionate about their work:
- keeps up with trade/professional journals
- knows who the key people in the industry are
- would spend his own money, if necessary, for better tools
- if they were NOT doing this as their job, they would still do something related to it as a hobby
When applied to software developers in particular, I would add “participates in open-source software efforts” to the list as well. This relates closely with the 4th question (concerning hobbies), but goes deeper — it suggests that not only does the individual enjoy what they do, but they want to use their talents for “the greater good”. This also goes back to another test of a “passionate worker” in the original article:
Does not care about upward mobility in the company. Cares about doing fabulous work and possibly the recognition of his peers in the industry. May stive (sic) for professional recognition.
This is the main reason why I chafe so much under the the non-compete agreements and intellectual property constraints that permeate the software industry. All developers should have the right to “own” the software that they develop, as long as it’s done entirely on their own time with their own resources, and doesn’t represent a conflict of interest with their “day job”. Not only should developers be allowed to release their own personal creations as open source, but they should be permitted to sell them.
Before you tag me as some sort of commie, understand that I do think a company that employs software developers has every right to protect their intellectual property. Unfortunately, too many companies do so simply by saying their developers own nothing. Before I took my current job, I interviewed at a “big-name” consulting firm. Their contract agreement said something along the lines of:
The Employee hereby acknowledges that all Inventions are the property of (company), except those explicitly listed in Appendix A.
You’re screwed. If you ever have a unique idea that ends up gaining any decent amount of buzz or generating any decent amount of money, you better damn well better be able to prove that you didn’t think it up before, during, or up to 12 months after your tenure with our company. Otherwise, we’ll sue the shit out of you and take not just your ideas, but your house, your car, and probably your dog.
Needless to say, I wasn’t interested in the job. (Particularly when they offered me a flat salary with no overtime and suggested that the average work week was 70-80 hours. Bear in mind, they would be billing my time to their client on an hourly basis.)
In my opinion, developers should legally own their work, as long as the following conditions are met:
- Absolutely no code would be re-used from company projects.
- Within reason, no concepts that were developed specifically for in-house projects would be re-implemented.
- All of the work on the project occurs on the developer’s own time, outside of the office, and would not be developed using any company hardware or software.
- The software would not be directly related to the company’s industry, and would not compete with any offerings of the company.
Developers who care about software write the best software. If they want to spend hours of their own time improving their skills, why get in their way?