Our Frontend Journey to Open Source
I have always looked enviously to open source projects, organisations and companies willing to share and absorb knowledge that changed the way that software is understood, that is why I was pretty excited when I realised that an Empathy project was going that way.
“Empathy wouldn’t be what it is today without open source projects.”
Angel Maldonado
The motivations to go open source started with this simple fact. This is a strong statement to start with, so opening a project to the world will start balancing the karma and return to the community some of the benefits that Empathy has taken advantage of.
Interface X, the web frontend solution of Empathy search experience, was a perfect project to start with. It’s not coupled with any other major project, it can be evolved on its own and has already been adopted by some of Empathy’s customers.
Of course, there are further motivations beyond the good karma, let’s explore them:
- Transparency: It’s one of Empathy.co’s foundational behaviours and also one of the big goals of open sourcing. Transparency also helps to develop a better product with higher quality standards. The team has already taken tremendous care of the code, but being open and exposed to the world always pushes us to reach new levels.
- Community: One of the biggest goals and challenges of an open source project is to create an interested community who will love the project through stars, criticise the weak points, propose new features, issues and pull requests.
Creating an interested community is not an easy job. Opening your first software project is like posting your first Instagram photo in a new account, nobody knows it’s there. You need a good product and a plan to amplify your voice.
Once the community is created, we’d love it if a contributor group from outside of Empathy arises to help build it, refine it and explore new paths that might not have been in our roadmap. - Adoption and reusing: Our customers can be our best collaborators. The collaboration between the project managing organisation and the customer who squeezes the potential out of it to suit their needs is simply beautiful. Interface X has been developed with Empathy’s vision and customer feedback, as any product should, and now we are making it open source customers can evolve it on their own, becoming proactive collaborators and create a richer product through their many different market requirements.
We found and inspected our why’s, then a bunch of what’s showed up after researching and meeting with the stakeholders. There are many decisions that shape your open source project:
Licensing
The license adopted can drive the project to different ends, and it’s something to think deeply about. It’s a topic to get deep into, and that’s why there will be another post totally dedicated to it here later.
Governance model
The bigger the control you give to the community, the bigger the adoption and the impact. Keeping the control in-house could result in a cold community. On the other hand, giving control could make the project path veer away from the organisation’s vision. Every organisation and project has to find its own balance between creating momentum and being able to draw the project’s roadmap to the desired goal.
Team effort
If the project transitions to a stage where the organisation has the control, but it’s still open to external inputs (issues, pull requests), the team will need members managing the community interactions. This may trigger the need for a new dimension and re-shaping of the development team to be able to cope with internal and external demand. If the organisation starts losing control, letting external collaborators become maintainers, actual owners of the project, it will mean a second phase of team re-shaping. We are thinking about how to shape the team to have members always aware of external inputs and are considering a developer advocate’s role.
Contribution guidelines
An open source project needs to have a clear way to interact with it. Publishing the contributing guidelines tells the community how the organisation expect the interaction of collaborators would be with the project:
- How to send a bug report
- How to suggest a feature
- How to set up the environment, run tests or launch the project
- The type of contribution that the organisation is looking for
- The product vision and roadmap
- Ways to contact the organisation
As soon as a project grows to fulfil internal requirements and becomes open source, the world and developers will arrive at your repo hoping to discover how this beautiful code can be valuable for them. Before this happens, you can see that there are a lot of thoughts to prepare for and lots of decisions to make.
As we end the journey of taking the Interface X product out into the open world, we learned that our focus on building a great product is as strong now as it was before going open source and that we need to explain our project clearly and transparently to engage the community of external developers and companies who will find value for their own projects.
Great code, nice features, and beautiful documentation, that is what we try to bring to the table.
Keep connected.