Getting the Most from Open-Source

Open-Source isn’t just a driver of innovation, it’s a way to ensure productivity across projects and make collaboration easier. Here’s how to get the most out of Open-Source projects.

--

By Johannes Werner, Lead Engineer, BCG Digital Ventures

I’ve been passionate about Open Source Software (OSS) since I started programming. The way I see it, OSS is a force for innovation, using collaboration to build software that makes everyone’s lives easier. It embodies the true spirit of software development, making it possible for everyone to work together towards the best possible solution for the benefit of others.

I want to talk about how useful OSS can be when working across multiple projects and give some pointers on making OSS a success.

Open-Source at BCGDV

There are situations where engaging in OSS development isn’t possible. Larger companies don’t want to give away their software to their competition. It’s valuable intellectual property that they want to hold close to their chests. At BCG Digital Ventures, we build ventures with partners who hold these concerns, and protecting their values is important to us.

But OSS also holds the answer to one of the inherent difficulties of building software on behalf of multiple partners at once. It’s possible to both protect our partners’ valuable IP and use OSS where it makes sense.

We encounter similar problems across our ventures. Some issues are unique to a specific project, and our ability to develop solutions to these issues is often the reason our partners want to work with us in the first place. In such cases we’ll keep the software private, building it on a proprietary basis.

But there are general issues that apply to many of the ventures we build, and developing these solutions on an OSS basis enables us to save major headaches that benefit our development teams and save time for our partners. This is particularly relevant for the software we use internally to put together products, and making it Open-Source means that we’re able to share it across projects to build multiple ventures without restriction, continually improving it and adapting it to different ends.

Open-Source to the Rescue

The example that’s the clearest for me to illustrate is building web applications. Each of the ventures we build requires some variation of a web application, so it makes sense for us to develop common ways of building them across ventures.

Vuesion is a project I started for building web apps, now open-source.

We decided to use OSS for frontend collaboration in the form of Vuesion, a project I began before opening it up to OS development. Vuesion removes the need for each of our ventures to start from scratch when it comes to building web applications: We use it to build our design system in collaboration with our design team, which means everyone is getting their information from the same source, and when it comes to handing a project over there are minimal headaches: the code is in Vuesion, ready to deploy.

Because Vuesion is OS, it’s constantly being updated, both by our developers and the wider community, so we all benefit from its use. We can also customize and maintain and adapt it to each project’s individual requirements without relying on a third party to provide us with a solution. The source code is out there, ready to use.

As my colleague Olivia Graham explained in greater detail, here at BCGDV Berlin we’ve started to use this solution from the start of our venture development process. This is a real time-saver, cutting out approximately two months of overhead in forming the relationship between the product, design and engineering teams. It helps us build a common vocabulary between teams, ensures consistent design and makes it easier to optimize our work, as we’re tweaking and making improvements rather than starting from scratch each time or trying to bend a third-party solution to our will.

How to Make Your OSS Project a Success

As useful as it is, OSS doesn’t happen automatically. It requires a dedicated community of developers contributing so that the software keeps improving and doesn’t fall out of date. With this in mind, I want to share some things I’ve learned from working on OSS projects.

  1. Focus on Value
    At the center of every OS project is the value it provides. The strength of the initial idea and the value it offers to the community are the two most important factors in making a project a success. The good news is that you can often tell your project’s value by asking yourself a simple question: Is this useful to me? If the answer is yes, then it’s more than likely it will be useful to others. These people are those you need to get involved in your project and encourage to contribute.
  2. Get Your Project Out Early
    The nature of OSS is collaboration. This distinguishes it from proprietary software development, which needs to be as close to perfect as possible. With OS, it’s better to release a project as early as makes sense in order to get others to contribute, and to receive valuable feedback about code, features and documentation that will be incredibly useful to you in improving your project. Getting buy-in early on increases the likelihood that your project will be the first iteration of its kind.
  3. Get Marketing Right
    We might like to think that simply providing a great project will be enough to make it a success, but a little marketing never hurt. This can be as simple as posting your project in relevant subreddit or to your own Twitter. You might also send your project directly to those with larger social media followings if you think they’ll be interested. Buttons that make it easy to share your project on social media are also a good idea.
  4. Build a Community
    I’ve already touched on how and why community is so important to OSS projects, and is often the reason why they’re a success or failure. Some of the key parts of community building are the same as anything that involves people: be nice, be approachable, be helpful. You should give as much support as you can to new contributors, and trust contributors by adding collaborators and maintainers early. Communication is key.

I believe engaging in OSS development is a good thing for any developer to do. I’m even happier that it can help us here at BCGDV in our day-to-day work, saving us time and helping us build better products — vitally providing us with an efficient way of working with multiple projects at once. I’d encourage any software developer to contribute to OSS projects when they can, and maybe even to launch their own project.

Interested in working with us at BCGDV? Want to find out more? See our current vacancies.

Find us on Twitter @DV_Engineering.

--

--

BCG Digital Ventures - Part of BCG X
BCG Digital Ventures Engineering

BCG Digital Ventures, part of BCG X, builds and scales innovative businesses with the world’s most influential companies.