Companies are increasingly turning to open source tools and practices for their own internal software development,Linux.com reported last month. Rent the Runway, a fashion and technology startup, is one of many companies that have embraced inner sourcing as a means to faster, more collaborative, and cost-effective development.
Camille Fournier, chief technology officer at Rent the Runway, spoke to us recently about the company’s use of open source practices. Here is the full interview in which she discusses the pros and cons of inner sourcing and the trends that are contributing to adoption of these practices.
How do you define “inner sourcing”?
I define inner sourcing as using open source software development practices on internal code bases. These code bases are open to all in the company, and anyone in the company can contribute work back to them, or fork them as needed. Ideally, they have a team responsible for their stewardship, making sure code submissions get reviewed and applied. They have mailing lists and ticketing systems that are fully open to anyone at the company for discussing changes, asking questions, etc.
How is it different from common enterprise software development?
Most enterprise software development is done by a closed team, for a very specific purpose. Others in the company may be able to see the code, but they are not generally able or encouraged to contribute to the code base. Discussions about the future of the projects, new features, and bug fixes are done over closed internal mailing lists or in-person meetings, and only those involved or using the project can open issues or suggest improvements to the project. It is common that even the source control repositories themselves are not readable by anyone not working on the team maintaining the project.
I’ve worked at big companies where all software was developed this way, including shared libraries. There is nothing more frustrating than finding a bug in a shared library and not being able to help with the fix. This is one of the reasons I am so passionate about internal open source, because I think that if developers want to help you should make it easy for them to do so.
In your experience, what are the advantages of adopting open source methods for internal projects?
Open source methods, when you apply them well, force you to document and formalize your process which can be a very good thing. That documentation is useful to onboarding new people in the company, and it makes it much easier to track what is going on. This is especially useful if you have a workforce that is partially remote.
Encouraging projects that are used by several teams to be run as internal open source projects also provides many cultural benefits to the company. It provides an outlet for people who may not work closely together to interact and learn from each other. It encourages sharing of knowledge and creates new communities that cross team boundaries. It gives people the opportunity to gain exposure outside of their immediate team. I believe that this has a lot of power to improve employee retention.
Can you give an example of how this has helped Rent the Runway, specifically?
Rent the Runway is a startup and as a startup we’ve had plenty of growing pains, especially around onboarding new people and wanting to move fast on new features and ideas. Thinking about our core software as “internal open source” has led to a level of transparency and process improvements (such as code reviews) that both makes the code better but also stops any one person or team from being a bottleneck.
What are some of the challenges you’ve encountered?
Sometimes code that is owned by everyone is owned by no one, and not everyone wants to jump in and fix a bug in a system they don’t know even when the process enables it. It can be hard to assign stewards when you have a small team and a lot of code, because sometimes others mistake the stewards as those that should be making all the changes themselves. So you need to constantly reinforce the open source nature of the work.
One mistake I made early on in implementing this concept at Rent the Runway was that I did not fully embrace the best practices that I had learned from open source software, especially that of code review. I did a survey of the developers and asked them how they felt about the process and for the most part they liked it, except that they really felt that not having mandatory code reviews for all changes was a huge risk. We immediately moved to requiring pull requests for every change and it was a huge improvement in the comfort level both for people making changes in unfamiliar code bases and those who had responsibilities over those changes.
What trends in the way business is done/ enterprises are run are contributing to the adoption of open source methods internally?
I think that the increasing awareness that software development should be highly agile and iterative, rather than quarterly (or yearly!) releases, is a big contributor. Having a process that is closed, especially around shared libraries and services, slows down the whole company.
I also think that most companies have adopted some open source products, and are less afraid of the general concept, which helps them see the benefits internally. Almost everyone runs linux in some form, and it’s impossible to write code in most languages without interacting with some open source libraries, so we all see that open source is here to stay.