We love open source, and it is taking over the world. In fact, Sumo Logic has contributed code to a number of repositories, many of which are listed on the Open-source at Sumo Logic page. To have a strong and successful following, an open source project needs contributors, purpose, value, users, and great leadership. Contributors are the lifeline of open source projects, and there are loads of open source projects that unfortunately haven’t been touched in years. A great way to keep an open source project alive is to get involved and make contributions to an existing project you’re currently using.
Why should you contribute? Why do firefighters volunteer?
The reasons are actually similar:
- Give back to the community
- Be part of a team
- Fulfill a family tradition
- Passion for the career
Where can you start to contribute? Selenium is one open source project to pay attention to. Personally, as a consumer of Selenium, it can feel good to give back to the project that I use every day, and be part of the team that has one of the hottest open source projects out there today.
By contributing, you can gain exposure and experience. You don’t actually have to code to be a contributor. Let’s start reviewing the different types of roles you can take on as a contributor:
Open-source Project Roles
There are many skills and roles involved in an open source project. You only need to understand a project’s roles to find your place in the project.
|Project Lead or Committee||Provides technical leadership for the project as a whole. The responsibilities include driving the project’s direction, working as a maintainer of code, enforcing standards and quality, and more. This role will be the only one with write access to the repository. They will review all pull requests from existing or new contributors.|
|Developer||Will contribute code by fixing bugs and implementing feature requests, building a formal website or re-design, or contributing logos and/or icons approved by project lead or committee.|
|Verifier||Activities may vary. You may be reproducing bugs, identifying important test coverage, preventing bugs, introducing new testing solutions, or reviewing documentation. (Yes, open source projects need testing.)|
|Support||Provides multiple ways to contribute to an open project. Some of the responsibilities include answering questions on discussion boards or mailing lists, writing and reviewing documentation, developing Get Started tutorial material, corresponding with the community, or creating screencasts on features, or tutorials on how to use the project.|
Getting Involved and Becoming an Open-source Contributor
As technologists, we use our free time to learn new technologies. We can also use our time to contribute to an open source project that we love. Doing so is a great opportunity to work with talented people in the same field. Plus, contributing to open source projects allows you to network far outside your stiletto network of friends and co-workers. In addition, contributing allows you to brand yourself, develop new skills, and gain that valuable experience working on a virtual project.
If you’re contributing to non-code tasks, ask yourself how your contribution will help others. Let’s review some contribution activities:
|Code||As a developer, your first step towards contributing will probably be fixing a bug that has been approved by triage committee. The effort doesn’t have to start with a bug fix, but these types of contributions help the consumers of the project. You can implement a feature request or help build or re-design a formal website (for instance, Selenium). All code to be committed to the project needs to pass the existing unit and functional tests before a pull request is sent.|
|Moderator||Join a discussion board or mailing list to help answer questions about the project, features, review documentation, and more.|
|Tutorials||As a new user, the project may benefit from detailed boot camp tutorials (test automation) — initial setting up of environment, and getting to know and understanding of all the possible features, writing tests, executing tests, or exploration of how to integrate cloud solutions and continuous integration servers.|
|Documentation||You will find that documentation comes in two flavors: outdated and new. The most common problem with any software project is outdated documentation, especially when configuring your environment. Before committing updates or new documentation, ensure that you understand the project style guide.|
|Bug Triage||You can help manage project issues reported. You only need to be familiar with the open source project. As a triager, you will have conversations with the bug reporter and then either close the bug or move it into a bucket. A GitHub project may use labels to organize the bugs, features, documentation, or organize for upcoming releases.|
|Testing||Start by reviewing the existing test coverage. Then determine whether there are any critical tests are missing from the project that would help prevent bugs before merging the pull request. The coder is responsible for writing tests for new code introduced into the project.|
Open-source Projects for Test Automation
As a test automation technologist, some projects looking for all types of contributors include Selenium, Appium, Protractor, and NightwatchJS.
One beneficial element when contributing to an open source project is that you decide what type of tasks to work on and how often you want to contribute. It’s exactly why people contribute to open source projects — It keeps things fun.
One thing that prevents most people from contributing is getting past the fear. It is an amazing feeling to find out that something has been accepted by the public. I always feel rewarded when I see that one of my published blog posts has been tweeted.
If you’re interested in giving back and you’ve never contributed to open source before, I strongly recommend that you give it a go. Find an open source role and set a goal for 2016. You will gain some great experience, exposure, and meet talented technologists along your new journey of open source.
About the Author
Greg Sypolt (@gregsypolt) is a senior engineer at Gannett and co-founder of Quality Element. He is a passionate automation engineer seeking to optimize software development quality, while coaching team members on how to write great automation scripts and helping the testing community become better testers. Greg has spent most of his career working on software quality — concentrating on web browsers, APIs, and mobile. For the past five years, he has focused on the creation and deployment of automated test strategies, frameworks, tools and platforms.