Intuit’s mission is to power prosperity for small business owners. One way we do that is by taking big leaps to advance technology globally. This year, Intuit has made Open Source a priority. I want to share more information about how Intuit is embracing Open Source and how it is helping us deliver more benefits to our customers, faster than ever.
What Is Open Source?
So what is open source? When a project is labeled ‘open source’, the source code for it is made publicly available. Any developer, anywhere, is free to download it, modify it, and contribute to it. Open-sourcing helps to speed development and empowers all developers to contribute to a code base.
How Is Intuit Participating in Open Source?
At Intuit, teams are organized around specific priorities or products that can at times feel siloed. Developers in one team might not be aware of the work happening across the broader organization, and this could risk inefficiencies and even a duplication of work. Open contribution, also known as “inner source”, counters this problem by making sure that tools, SDKs, and services are available to all developers across the organization.
By exposing tools to developers across Intuit and allowing them to comment and contribute, the outcome is richer and Intuit ultimately gets a better product. According to Zhifan Li, Open Source tech leader at Intuit, “Open Contribution helps organizations innovate as a whole by utilizing commonly available technology, tools, and data. It also helps engineers build and hone their craft and makes the source code easily available to other stakeholders and industry experts to provide feedback. This allows engineers across the organization to understand the design and architecture of a project, contribute to the code and documentation instantly and test to identify potential issues and bugs, resulting in a higher quality product. Open contribution also encourages multiple engineers to review code and share feedback, thus raising the quality of software.”
How Do You Manage Open Source Code?
Open-sourcing is a huge paradigm shift in code ownership. When a project is open-sourced, the primary creator’s responsibility shifts from Code Ownership to Code Stewardship. All contributors and the developer community collectively own the source code and are responsible to maintain the quality of the code.
However, as the number of contributors rises, this opens the gateway for possible conflicts and potential contamination of the codebase. The Code Steward can prevent that by hosting and maintaining a clean audit trail that describes what changes and modifications were made and why. The audit trail should also track the decisions and reasons made by previous Code Stewards. To make sure Code Stewards don’t accumulate “technical debt” and end up with a conflict jungle, it’s best to maintain strict SLAs (service level agreements) for how long pull requests can be left open, as well as maximum time for a first response to pull requests, and a maximum time to leave a pull request open before it is merged.
Tools for the Intuit Developer Community
Every day, the Intuit Developer Group (IDG) works with third-party developers to help them integrate their applications with QuickBooks, Intuit Payments or Intuit Payroll. IDG has published to open source many tools and libraries for this developer community. Developers can modify these tools as needed for their unique applications, or simply use the tools to get a jump start on their app integrations.
The available libraries are primarily in six languages, including Java, .NET, PHP, Python, Ruby, and nodeJS:
- QuickBooks-V3-Java-SDK – https://github.com/intuit/QuickBooks-V3-Java-SDK
- QuickBooks-V3-PHP-SDK – https://github.com/intuit/QuickBooks-V3-PHP-SDK
- QuickBooks-V3-DotNET-SDK- https://github.com/intuit/QuickBooks-V3-DotNET-SDK
- oauth-jsclient – https://github.com/intuit/oauth-jsclient
- oauth-pythonclient – https://github.com/intuit/oauth-pythonclient
- Ruby OAuth 2.0 client for QBO – https://github.com/intuit/oauth-rubyclient
Illustrating the true value of open source, Mariusz Felisiak, a third-party Python/Django developer, created and contributed the Python OAuth Client and SDK that has helped many Python app developers integrate faster with the Intuit APIs. You’ll find this Python OAuth Client here: https://developer.intuit.com/app/developer/qbo/docs/develop/sdks-and-samples-collections/python/python_oauth_client
In addition, IDG engineers have published to open source more than fifty detailed code samples to assist developers during app creation.
Why Contribute to Open Source?
At a recent panel discussion, I was asked why engineers should contribute to open source. The first thing that came to mind is bragging rights — the pride you feel when your work is published and useful to others. But the key reason I encourage engineers to contribute to open source is to master and hone your craft. Open-sourcing your project or contributing to someone else’s makes your work available for feedback. Constant feedback from other developers can help engineers master their skills and improve the quality of their contributions. In due time, this increases visibility in the developer community and helps engineers grow in their careers.
There is a common misconception that one needs to be an expert in coding to contribute to open source. This is definitely not the case. Any project can use help to improve the user experience, make documentation available, or increase code coverage for testing. Finally, we engineers always need help in marketing and promoting our work. If there is an open source tool or library that works wonders for you, talk about it to other developers, spread the love and provide constant feedback. We hope you’ll check out our open source libraries listed above and fork, modify, and begin creating pull requests.
Welcome to the Intuit open source community!