Congratulations! You’ve hired a fantastic open source developer. You know she’s fantastic because you were able to check out her commits on public projects, you’ve read the mailing list archives to learn how she communicates, and you know before she starts that she’s a passionate self-motivated detail-oriented coder and that she’s not an asshole. She’s clueful and she’s perfect!
Now, what are you going to do with her? If you’re like most employers, you’ll systematically destroy her value to your organization by exploiting her current skills and failing to build future skills.
Does this sound like your organization? She’ll be buried her deep in the organization, and the only time she talks to external people is with customers on callouts. She knew a lot about the open source project you hired her from, but she won’t be incentivized, allocated, or encouraged to work on that project because you want her developing your (proprietary) product and not something that’s free. She is welcome to submit patches, though of course they’re the ones she had to develop during her Real Work. She may get one conference a year if she’s lucky, but that’s the first thing to get cut in “tough times” and if the event is in town then you’ll badge-share so she only goes for part of the event.
On the one hand, this makes sound business sense: we’re all working towards a goal, and activity that doesn’t get us closer to that goal is wasted and so discouraged. I argue, though, that this is short-sighted. It’s short-sighted because you’re pretending that your developers aren’t people, that they are happily free of human needs. The longer you ignore the human inside your coder, the less happy they’ll be.
Yes, humanity. When someone works in a successful open source project, they feed their human needs. Open source developers get to choose what they work on. They get to choose how they solve the problem. They get frequent feedback from her peers and from her users. They build up social standing and reputation in the eyes of people they respect. They are part of a team that experiences frequent wins. They learn new things constantly. These are basic preconditions for a happy human, although there are others.
Very few of these human needs are well-met in the typical organization: someone else chooses your projects, someone else tells you how to do it, you rarely interact with anyone or get praise from someone you respect, and your public reputation goes straight down the toilet as you vanish behind the firewall. The work inside the firewall can, sometimes, rarely, be interesting and humanly-rewarding, but the emphasis is on “rarely”.
This is why some companies give employees 10% or 20% time to work on projects they choose. It keeps their skills up, it keeps them happy, and this means you’re not recruiting to fill their position after they leave within a few years. Others make some or all of their projects open source, because then you’ve got developers who are getting the rewards of open source but from a project that benefits the business.
These approaches acknowledge that clue is a renewable resource: those who harvest without planting are stupidly short-sighted at best and downright evil at worst. What’s your company’s plan for sustainable clue harvesting?