What open source taught me about management

I was a manager of developers in an organisation for a few years, and during that period I learned a lot. But if I’m honest, I learned far more about being a manager from leading a large open source project for 10 years, because that taught me a lot about what makes developers tick. Of course, I’ve always been a developer myself too, but you often don’t think that clearly about your own motivations.

Open source developers are usually volunteers. They choose to spend their own time contributing to your project – maybe they do it as part of paid work or their own projects too, but even then it takes extra effort to contribute back in a meaningful way, since the quickest and hackiest option usually isn’t the one that will be accepted upstream. These guys are going out of their way to help, even though no-one is cutting them a check in return. Crazy? And not only that, they usually defer to project leaders or core team members, changing their contributions or beefing them up based on their suggestions even though they don’t have to. Curious?

‘Meritocracy’ is a word that’s bandied around a lot, but in open source it’s an accurate description; people only listen to your opinion, or accept your direction, because they want to, and trust you enough to respect your decisions. This is a two-way street; the leader essentially builds this trust not only through leading by example, but also by accepting feedback from others, even when it’s conflicting with their own current stance, with good grace and consideration.

Because there’s no strict ‘hiring’ process as such (it’s more of an ‘onion skin’ sort of approach where developers are given increasingly more power as they soak into the community and contribute more), and geographical locations are irrelevant, you often end up with quite rag-tag band of people in an open source project, each with their own strengths and opinions, arguably a more diverse bunch than you’d find inside a single company. This mixture of experiences, ages, cultures and languages can be a challenge sometimes, but it also brings things to the table that could really only occur when you throw this sort of melting pot together. I learned a vast amount about dealing with people just by being exposed to that variety over the years.

But most of all, I learned that motivating smart, creative people can be done entirely for free – you just have to have the right attitude.

A lot of managers seem to believe that carrot and stick techniques coupled with metrics and monitoring are the best way to ensure employee productivity. You can encourage people with salary and benefits, make sure they work hard by applying metrics on time and task completion, have disciplinary proceedings when those goals aren’t met, and so on. You have none of those in open source, and yet great work gets done anyway – by some metrics, projects can be equivalent of millions of dollars of investment. Why does this work?

Well, as it happens, what pushes the buttons of creative people like developers most of all is the work itself, and the experience of doing it. Sure, we all need money; we need to live somewhere, eat, buy expensive shiny gadgets and so on, but actually, the good developers would be (and indeed are) writing software regardless of whether someone paid them to do it. For most good developers, what really matters once they’re comfortable with their financial situation is:

  1. To work on projects they care about
  2. To learn new and interesting things
  3. To have creative control/influence over their work
  4. To be treated like adults and not micromanaged
  5. To be recognised for their work

Open source projects put a big tick in all of these boxes, and that’s why they can be so successful despite there often being no money involved. As a manager, if you concentrate on these 5 things, you’ll increase your chances of attracting good developers – the salary and benefits have to be reasonable too of course, but those 5 will tip the balance.

Of course, rather than ramble on like this I could have just pointed to Maslow’s Hierarchy of Needs; all managers are familiar with that and use it to guide their management style, right? Right?

  • Philip Smith

    Great post Steve. Your 5 points towards the end I’m certain cross over into all job roles. Ha, of course every manager is familiar with Maslow’s Hierachy of Needs ;-)

  • http://www.balihotelseminyak.com/ Bali Hotels Seminyak

    Open Source project are good, it make people more creative.

  • http://www.kieransenior.co.uk/ Kieran Senior

    Additionally, some people fulfil 1, 2, 3 without working on open source, just doing things from home in their spare time to further their skills and knowledge. Open source definitely shows a variety of qualities in a developer. The good thing about it is that it’s all logged. You can view issues they’ve posted on and their commits, and generally their communication between other people on projects. It’s a searchable way to see how good a developer is.

    I have met developers who are introvert in respects to their work though. Everything they do, they do for the company they work for; for the product they love to work on. Open source doesn’t interest them not because it’s open source, but because they’ve already got a passion for the product they’re developing in their full time job. I’ve always seen things from this side of the fence.

    But as you’ve said in the past – pick an open source project and contribute, and everything from there will improve you as a person and a developer. I wish I had more time to do this, I should’ve done it before I started a family ;)

  • stevestreeting

    Well, the point of this post was really about managers recognising these motivational factors, as illustrated by open source, not that all developers should write open source code.

  • http://www.kieransenior.co.uk/ Kieran Senior

    Indeed, I was sidetracking a latter point. 3, 4 and 5 seem to be non-existent over here in terms of management, unless you know of any companies?

  • stevestreeting

    I don’t know, I haven’t been on the market for many years, and don’t plan to be ;) But I know how I like to run things.

  • dan

    A few more: working on something you would/will use yourself, and, you put in limited time, so that time is precious and you are more productive with that time. DHH talks about this when he created ROR.

  • http://www.kutahotelsbali.com Bali Kuta Hotels

    no more to say, totally agree with you

  • http://www.jacmoe.dk/ Jacob Moen

    Having been involved with open source for more than 10 years, and been lucky to have got a job with a boss who understood how to motivate (based on what you wrote above), this rings a lot of bells. :)
    It would be wise to treat all developers – well: employees in general – as you treat open source developers/participants.

  • Gian

    I can share my experiences about working on something that is not trivial and with different people/developers.
    I’m working for about 3 years on a complex project (an online 3D architectural design software) even with a low income for the tasks asked (designing the software, programming a CAD-like input, a realtime 3d preview, photorealistic rendering integration, import of 3d models, online data communications, etc) just because of the 3 points listed here.
    I am not professionally experienced in 3d graphics programming but i wanted to work on this. The problem is that when no one helps you, share an idea, understand at least a little of the things you are working on it’s quite depressing. I think there must be focus on doing things, a goal to reach and people need to be involved in a soft or harder way in the development cycle even if they don’t program themselves. Maybe real professionals can produce something without any input but common humans need a more comfortable environment to do better or at least good.
    The last year the company has hired a manager and things are even worse because he isn’t even interested a little, high level technically speaking, on the project but he just continuously works inside Excel constructing charts… often i talk about issues a day and the next he asks me things that shows he wasn’t even considering my problems. He hired another person who develops the server side of the software but without inputs from me the project stalls.
    The end of the movie is that i am working to finish developing this software because i want to finish things i started, because somehow it’s something “mine”. Then i’ll quit and do better things. You can spend all your energies working because you like what you do but when people around you are incompetent there’s little to be happy…
    I worked also on two programming projects over the internet many years ago. They were not open source oriented but from hobbyists wanting to creating online games. Also there it was the lack of coordination and people were behaving with a “i’ve this thing to do, take it and make it done” attitude. On complex tasks with low/not payed income i think this is just ingenuity from people who want to make big things with little effort from themselves…

  • stevestreeting

    Sadly, there are a lot of stories like this, the only advice I can give is to not let it destroy your enthusiasm for making things, and that there *are* far better project managers out there. PMs like you describe are most often found in large business consultancies where they can survive on their bullsh*t despite their obvious lack of talent that should have had them fired years ago.