If you’re reading this article online, it’s likely you’re benefitting from open-source software. Chrome and Firefox are two of the top web browsers in use today. Both are open-source. Consider too, that eighty-percent of the traffic served on the web is delivered by open-source servers and you start to realize that it took some planning. Over many years, contributions from people around the world made this software possible.
Open-source is a community
Though you may not be familiar with licenses like MIT, BSD, GPL3 or Apache, it’s good to know they are there. Some of these software licenses have existed since the 1980s, but the term and ethos around open-source software was made official in 1998, after the release of source code for Netscape (the precursor to the Firefox browser). And while we may think of open-source software like web browsers and servers, there are a host of different projects in the world from desktop publishing and office productivity applications, to software programming languages that can create these applications.
Python is an example of a programming language that was created by one person, Guido van Rossum, to meet a need that went on to be maintained by others worldwide. The language is used widely in data science and programming education because the syntax is clear to follow. The community maintaining the language is also approachable and friendly, which inspired me to begin contributing to their documentation earlier this year.
Python is an example of a programming language that was created by one person that went on to be maintained by others worldwide.
Before contributing to Python, I knew little about the open-source community aside from what I’ve learned by being present on the internet for decades. Because I was new to the community, I spent some time subscribing to useful email lists like docs and core-mentorship, so that I could understand how people work with one another and what needed to be done. After spending some time observing and listening, I looked at the outstanding issues in Python documentation and started a conversation to see where I could help. I would say, that over the couple of months from when I joined the community to finally contributing, I benefitted from the guidance of about a half-dozen people who responded either with guidance about what I could read or gave me useful insights into the work I was completing for contribution.
The best way to respond to the hurdles of contributing to open-source design is to seek a mentor.
People were helpful and gracious with me as I took the time to understand the tools and way people communicate when contributing to Python. Because the codebase for Python was largely being moved over to GitHub, I was also able to offer some of my own insight and familiarity with GitHub which was new to some of the contributors.
Knowing where to start
In order to get more guidance on open-source design for this article I interviewed Garth Braithwaite, a designer and developer on the PhoneGap team at Adobe Systems. He is also one founder of the Open Design Foundation. At Adobe, he works as a front-end developer and prototyper with people mostly in Toronto and San Francisco. Outside work, he also helps write books, create video tutorials and websites. He says these projects are “all mostly excuses to work with friends in different places.”
“Technically speaking, design just doesn’t come with the skill set required to make open and collaborative design workflows all that easy” – Garth Braithwaite, Open Design Foundation
Most of his projects at Adobe have been open-source – Flex, Brackets, Topcoat, PhoneGap – and on his first project he got involved to solve problems and was impressed by the commitment of the community to help others. This attitude is clear when he talks about the Open Design Foundation. He says, “It aims to encourage and educate designers to look for opportunities to collaborate and design in the open – to get over the fears that might hold them back. At the same time, it is trying to educate open source developers on how to improve their own design skills so they aren’t just waiting for designers to show up at their project.”
Braithwaite has spent some time looking at how he can help designers understand how to start contributing to open-source projects. He did research with students in the Facebook Open Academy and found that most of the challenge for designers were either technical or cultural. He explains that, “technically speaking, design just doesn’t come with the skill set required to make open and collaborative design workflows all that easy. Culturally speaking, the design culture has not been focused on collaborating. There are reasonable fears of projects being designed by committee, or of having to deal with an overwhelming amount of criticism.” There is a growing need to help people figure out how to get started and how make the best use of their efforts.
Designing with a community can be challenging
GitHub is a major connector in the open-source community. The site builds its foundation on the free source code management tool, Git which was open-source from the beginning. GitHub encourages developers to share their open-source projects for free by making it easy to build and maintain a community around the software they build. They recently added a guide to help people get started in the open-source community.
GitHub encourages developers to share their open-source projects for free by making it easy to build and maintain a community around the software they build.
When I was contributing to the Python documentation on GitHub, I found that few of the challenges were technical in nature and that more than anything, it took me time to understand where I could seek feedback, how frequently I could expect feedback, and when I could say that I finally contributed to the project. Besides learning who people are and what they were sharing with me, I also had to reconcile their changes that sometimes conflicted with one another. While this is not new in design, the time-delayed nature of working with a team spread across the world made it a challenge. It was a dance for me to move ahead on the feedback I’d already gotten, versus waiting for a thorough design decision made by the group. My experience with the Python community is that they are quite flexible and follow the lead of the contribution if it makes sense to the problem.
Love the open web? Subscribe to our newsletter for more fantastic articles direct to your inbox.
Design-by-committee can feel discouraging to a designer. Many of us are taught that when a design problem has a large community of people where everyone weighs-in, that the end result is weak design. I don’t always find this to be the case. When the community giving feedback and the designer treat one another with respect, this is less of an issue. It certainly was in my case, contributing to Python. Because it didn’t feel there was a hidden agenda as there sometimes are in more stressful corporate climates, I was able to take a suggestion as a suggestion rather than spending time reading into the motivations behind the suggestion. There was no risk in me being fired. Open-source projects are largely volunteer projects that contribute towards a common good. For the most part, the people contributing to open-source projects are not being paid and contribute so that they can give back to the community. Sometimes giving back can generate goodwill, other times, it can wear on you.
“Design-by-committee” isn’t bad on open source teams because it doesn’t feel like there are any hidden agendas like there sometimes are in more stressful, corporate environments.
Mentorship is the key to sustainable collaboration
The best way to respond to the hurdles of contributing to open-source design is to seek a mentor. The Python Software Foundation has a mailing list for new members to ask any respectful question. Mentorship from other contributors to Python helped me answer the question, “How can I help?”
Braithwaite echoes this sentiment. “Mentorship in design and development have been key to my own personal growth. I think it’s a core element of a healthy community.” He continues, “Mostly I’ve done it one on one, as a mentor and mentee. We have a Slack team for the Open Design Foundation if someone is looking for mentorship opportunities, but honestly, it’s a pretty quiet team.” If you are a designer wanting to work in the open, you can get in touch with the Open Design Foundation on GitHub or @designopen.
Creating and maintaining free, open-source software takes time and energy. Although open-source software development have easy-to-find lists of projects online, design is still new in many ways. Generations before ours made sure this software could stay freely available. It will take people like yourself to join the many other people building and maintaining open-source software to make it successful. We depend on open-source software for the tools we use everyday and it’s worthwhile to learn how you can be a part.