Dimagi has always been a proud proponent of open source software (OSS), and open sourced code is our default approach for new software systems that we create as an organization.
“Open source” is not, however, a monolithic concept. Django and Ubuntu, for example, are both built as OSS, but with very different implications into their working model and priorities. Misalignment about the expectations of what OSS implies about a piece of software is a common source of problems for adopters and contributors. We rely heavily on partnerships and collaboration in pursuit of social impact, so we strive to be as clear as possible about the specifics of our approach and its implications for working with Dimagi and adopting our tools.
Dimagi’s overarching mission is to have a positive social impact globally, and we have three primary motivations for adopting an open source software model in pursuit of that mission.
First, we want to build world class software in traditionally underserved markets and we believe that an open source methodology generally produces the highest quality software code for diverse stakeholders with broad goals and limited resources. Beyond our code, working in the open also enables drastically better technical ecosystem collaboration. This improves the overall quality of not just our software but the ecosystems in which it’s used or relied upon, since collaborators have equal visibility into the structure and function of our systems.
Second, we do not want to be the bottleneck for positive impact being created from the foundations of our efforts. There will always be more good work to do in the world than we can prioritize with our limited time and resources. Other organizations being able to adopt or adapt our code and software without dependencies on Dimagi’s consent or existence increases the impact that we can create. We maintain a commitment to organizations adopting our software: that they can maintain the value of the time and resources they have invested in using our tools even if our paths diverge.
Finally, working in the open supports our pursuit towards building a better market for impact technology. We are strong proponents of evidence based investment and clear theories of change for the role of technology in social impact. Providing radical transparency about our own technology for scrutiny is a way to establish an equal footing for our adopters in their ability to understand the scope, capabilities, and relative value of our software.
It is very common in the field of impact technology for projects to follow a distributed community model, which relies on broadly diffusing responsibilities for maintenance and investment across organizations and individuals. Dimagi’s main open source projects do not generally adopt this model. We expect to be the primary developer and maintainer for the core software tools that we build and we engineer them primarily for our own model of service delivery, often a multi-tenant Software-as-a-Service cloud sold by our team. We do welcome (and benefit from) contributions from the larger OSS community, but they are not the focus of our expected development lifecycle. We have limited resources to guide new external developers to successful contributions into our large enterprise systems.
On the commercial side, it’s common for organizations to adopt OSS methodology for discrete and isolated sub-components (like Angular or Bootstrap) which they then incorporate into their closed services. Our approach, in contrast, is to apply our open source methodology across the board for our commercial offerings including our operations, deployment automation, and our team’s maintenance tooling. We strive to ensure that it’s possible for another organization to readily replicate our offering through our open source artifacts, but also expect that they will also be replicating the team’s practice and approach for managing the software rather than adapting it as a component of their larger offering.
This is an intentional tradeoff towards the goal of responsibly building technology targeting ambitious, global scale impact with limited resources. We see the encoded model of maintenance and deployment as a core part of the value of what we build. In our model it wouldn’t be a responsible use of our limited resources to facilitate the wide variety of potential ways that our tech can be used and deployed, and don’t encourage organizations to adopt our technology value proposition in part. But all the same, we release our code under permissive open licenses because there’s nothing in the world we like more than to be proven wrong.
Our goal in producing this outline is to communicate how we see open source from the lens of our most prominent projects, because that approach isn’t commonly encountered, but it isn’t universal to our work. Dimagi’s team has many touchpoints with open source software, from participating as contributors to other OSS tools like Ansible or Django to establishing new community modeled open source tools where that’s appropriate.