In the ever-evolving domain of enterprise open-source software (OSS), our team takes pride in being trusted to maintain a variety of pivotal projects. From enhancing libraries like PyTorch, Node.js, and React Native for seamless cross-platform performance to building and maintaining award-winning tools like Microsoft PowerToys, our collaborative efforts highlight the collective power of open source. As we delve into our top tips for enterprise OSS project maintenance, we draw from over two decades of experience, sharing insights to help both seasoned maintainers and those just starting their open source journey.
Read on to discover how our global team of top software engineering open source advocates navigate the complexities of enterprise OSS, shaping the future of technology with every commit.
1. Meticulous Merges – Understand Every Line of Code
João Reis emphasizes: “Understand every line.” Before integrating changes, it’s crucial to rigorously assess the implications of pull requests. Every merge has a ripple effect – from developers to end-users. In the realm of open-source, hasty merges can be costly. What you gain in time, you may pay for with your reputation and the need for follow-up fixes. Prioritize accuracy over speed, and remember that in the open-source ecosystem, our mistakes are communal, but so are our triumphs.
2. Priority and Expectation Management – Master the Art of Triage
Jaime Bernardo on navigating a bustling project landscape: “Master the Art of Triage.” Managing an enterprise open-source project is a balancing act between client deliverables and the vibrant unpredictability of community contributions.
The phenomenal performance of PowerToys in 2022 — hitting 3rd place for first-time contributor count and 5th for total contributors, as well as being the 2nd fastest-growing open-source project on GitHub — showcases this balance in action. It’s about embracing the unexpected while steadfastly adhering to your project roadmap. “It’s essential to discern what demands immediate action and what aligns with long-term objectives. Each task, whether it’s an anticipated bug fix or a surprising new feature suggested by a first-time contributor, must be weighed and prioritized to foster growth without derailing the project’s course.”
3. Community Engagement – Be the Welcome Sign
João Reis advises: “Be the welcome sign.” Open source is as much about the code as the community. “Extend a hand, be accessible, and foster a nurturing environment. Your guidance today could empower the lead maintainers of tomorrow. Remember, every expert was once a novice.”
4. Cross-Platform Consideration – Think Ecosystems, Not Just Features
João Reis on maintaining a holistic view: “Think ecosystem, not just features.” In a multi-platform world, ensure that solutions are inclusive of diverse environments. “Each merge should be a step towards unity, not divergence, across platforms. The strength of your project lies in its universal operability, not just its individual features.”
5. Pace and Patience – Speed isn’t Everything
Stefan Markovic shares a pragmatic reminder: “Speed isn’t everything. In the open-source world, especially in projects with thousands of contributors like ours, rapid movement isn’t always a sign of healthy progress. It’s important not to rush. True, things can progress slowly, but the best solutions are often those that are given time to mature. Patience is not just a virtue; it’s a necessity for sustainable development.”
Get in contact here to find out how we can support your open source initiatives.
More about our software engineers:
Joao Reis – Lead Software Engineer
One of the first employees at Janea Systems, Joao has worked on maintaining the Windows version of Node.js, including the development and maintenance of the Windows CI system in close collaboration with the open source community. João also worked on several cloud-agnostic projects, giving him deep experience and the ability to work across the board, from embedded to massive web applications.
Jaime Bernardo – Lead Software Engineer
Jaime’s project work for Janea Systems covers many areas, including porting Node.js to Android and iOS, porting react-native modules to Windows, and developing/actively maintaining Microsoft PowerToys to this day, among other projects.
Stefan Markovic – Lead Software Engineer
Stefan’s professional journey began with a local outsourcing company where he specialized in developing and maintaining GNU tools, primarily utilizing the C programming language. After gaining valuable experience there, he transitioned to TomTom, where he worked on developing navigation software systems, with a focus on the routing engine using C++ language. He now works closely with Jaime, actively maintaining the award-winning Microsoft PowerToys project.