Team work is hard. Anybody telling otherwise is doing it wrong, or simply lying. The very own nature of developing software is individual. You and your computer. One keyboard, one mouse, two screens (lucky boy), one developer. You type the code, the computer obeys. Pure power on the tip of your fingers.
Nevertheless, team work is better. No matter how rock-star you are, there are projects you will not complete alone, quality levels you will not achieve on your own, subtleties you will not notice without other point of view. Not on time, not on budget, not in your real world with your limited resources. Where you cannot get alone, there the team may carry you.
No professional developer will put this in doubt.
In that case, why not scaling the team up? Opening your code and building a community around it will allow right that: growing a bigger team that may take your project further.
Of course, since team work is hard, scaling up to openness will bring its own dose of hardness. Moreover, relationships in an open source community are different than those in a tiny and focused team, and ignoring this will result in an epic fail. Here there are some things we learnt (and are still learning) from our open source experience in ownCloud that could help you to succeed in your travel to the open wild.
Contributors will contribute
And they will according to their own view, their own needs, their own agenda. They do not work for you, and will not do, since they have their own thoughts to offer, and their effort will go in that line. Even more, they will do when you don’t have the time. Because, let’s be serious, when do you have the time?
Just breathe and remember: it is all right. The diversity in the contributions will make the project better, will get it to cover needs that are real and maybe you did not notice or did not consider important enough. Put some love in those contributions. Take them seriously. Try to integrate them in your own view, keep your mind as open as your code, and get those pull requests merged.
Open means everybody is in
People contributing your project will have very different backgrounds. Some of them will not be as experienced as you. Some others would beat you with a hand behind their back. As a maintainer, your role will require you are able to identify them and act accordingly.
Do not be harsh with the people that needs to improve, support them. Take your time to explain the things that do not work, invite them to update their code for the better, be always kind and inclusive.
Do not be picky with those that do it fine. You do not need to mark your territory, it is not your territory. Learn from them and be sure they know you are learning.
For all them, honestly praise their dedication, effort and help. Not everyone is willing to put their time in improving the work of others.
Embrace your fails or they will embrace you
You will make mistakes every single day. That’s not different than working in the closet, except for the detail than now everybody can see them. Moreover, everybody can publicly point to them.
Accept that it is something good. There is more learning in a mistake than in one hundred successes, and much more when everybody is watching. Don’t feel too small, remember that all the people in the community fail too, and you will be there to help them to fix it.
A little bit scared? You should not. Fruits of open collaboration are sweet as ripe kiwis. Just check the navigation drawer, grid view, remote thumbnails, uploads view or many other features and details that are available in the ownCloud mobile apps thanks to the care of its volunteer contributors.
It is worth it. And in those moments when you would turn off the whole world Internet just to avoid answering an uncomfortable comment, just remember John’s words: “don’t you let your love turn to hate / right now we’ve gotta keep the faith”.