Encouraging opensource contributions through modularity: Lessons learnt from OpenWISP
Among people starting with open source, it is a general misconception that for contributing to existing projects one needs to understand codebase consisting of thousands of lines of code. The size codebase can seem to be daunting at times to a newbie. At first, it might seem logical to have everything at one place from the maintenance perspective, but as the size of the project grows the code can become unmanageable thus making maintenance harder.
There is a popular UNIX Philosophy, "Do one thing, and do it well".
Modular programming is nothing new. Every well-designed software embraces modularity. It is possible to ease the onboarding process for a project by using the same modularity. With a modular design, the newcomers are greeted with a smaller codebase that does not scare them at first sight.
Outline of talk
- Basics of modular software design (1 minutes)
- Advantages of modular design from a software development standpoint (2 minutes)
- Lessons learned from OpenWISP's architecture (14 minutes =2 + 5 + 2 + 2 + 3 )
- Functionalities offered by OpenWISP (2 minutes)
- How these functionalities are split into different modules (5 minutes)
- Exploring different modules of OpenWISP
- Decisions behind going modular (2 minutes)
- Ensuring ease of deployment for users even with different modules (2 minutes)
- Dealing with technical debt introduced by modularity (3 minutes)
- How modularity eases onboarding for newcomers? (3 minutes)
- How new modules can be easily introduced without hurting existing project? (5 minutes = 2 + 3)
- A personal experience from developing the notifications module of OpenWISP. (3 minutes)
- QnA (5 minutes)
- Basic Python
- Basic knowledge about open source
I will be using OpenWISP modules as a reference to show how modular design can help to encourage open source contribution.
Gagan is a final year CSE undergraduate and a regular opensource contributor. He has been selected as a student developer for the 2020 edition of Google Summer of Code. He is a community person who has conducted multiple workshops for college students to help them get started with their opensource journey. He believes that opensource is much more than just code.
"In real open source, you have the right to control your own destiny." - Linus Torvalds.