At Medic Mobile, we aim to build high-quality tools for health workers with a distributed product team (for whom the sun never sets: UTC -9, -5, -3, 0, +3, +5 ¾, +12!). This requires having a smooth workflow and always leaving the code base in a working and stable state for all developers. How do we accomplish this? A development practice called continuous integration.
With continuous integration, code changes trigger the automatic building and testing of the code on a server that mimics the same environment as “live” projects. In this way, we can catch production-specific issues that were missed when testing on the developer’s laptop. Using continuous integration can result in quicker and more stable releases, and a more efficient development cycle.
Developers at Medic can start their day knowing that the code base is stable because of Travis CI, a behind-the-scenes member of our team that provides continuous integration. If a change is going to break the app’s build, developers can spot it before merging it into the master branch, and avoid having to scramble and fix it later. Travis notifies the developer by email, and it can also be integrated with Slack to post in a channel when the build is broken.
As both the number and size of deployments using Medic Mobile increase, our continuous integration needs have grown, too. Deployments have custom forms, workflows, tasks, and dashboards that turn our app into a powerful tool for health workers.