There are a lot of articles already that talk about Continuous Integration practices and how to implement CI as a process. As a developer, all of these things sound great, but I've often heard folks tell me it's hard to get internal buy-in on the upfront cost of changing workflow/process that is already “working”.
Continuous Integration (CI) is a development process where team members are integrating their work frequently, often multiple times a day. Continuous Integration also requires some level of testing, preferably automated testing, to verify build process success.
For decision makers, it is common—and natural—to follow a “Why fix it if it’s not broken?” philosophy. The idea of a workflow overhaul might sound time intensive and resource expensive, with minimal benefit to the end result.
For developers, it is difficult to ignore the areas of your dev workflow that could be streamlined or optimized to (1) improve efficiency and/or (2) reduce the risk of error. When you’re in the weeds each day, these opportunities can be incredibly apparent.
So, how can stakeholders meet in the middle to ultimately deliver better web projects, faster? How can you broach the subject of Continuous Integration in a way that makes real business sense for your boss?
Let’s break down a few advantages of Continuous Integration to help you with selling others in your organization.
1. Risk Mitigation
Chances are we've all been involved in a "it worked on my local machine" scenario. Since local development environments often differ from where the website will actually run on the internet, there can be a number of things that are different between your local environment and where you push to production. Continuous Integration allows you to mitigate risk not only with testing, but also by enabling production parity.
Quality Assurance (QA) tasks—such as browser testing—can also be automated, mitigating the risk of a bug making it all the way through to the live site.
If you have a robust test suite and all the tests pass, your confidence that you aren't shipping a bug goes way up. If you are transparent with your process and educate the rest of your team and clients, their confidence in you as a development team improves as well.
3. Team Communication
Integration is in the name for a reason! Continuous Integration opens the door for integrating other tools and services your team uses into the development workflow. Create a channel for each project in Slack, and CI can send a message when significant events, such as a deployment, occur. A project stakeholder, like a project manager, will have an easier time if all they need to do is check that channel instead of hunting down a developer to see what's shipped.
4. Reduced Overhead
Development hours are typically billable hours, but what about time spent manually deploying code or files? Automating large parts of your workflow will free up time for billable work, which is something everyone can appreciate.
Automated testing also allows you to fail early, rather than finding bugs in QA or production—or worse, the client finding them. More bugs getting fixed in the same amount of time is a clear win.
New developers on the team can also get up and running faster since they won't need to learn all the steps involved that CI is now responsible for.
5. Consistency of Build Process
Moving parts of the development workflow—such as a build step compiling assets, like Sass to CSS—allows this to happen the same way, every time. I've seen the same Sass compiled to different CSS files because different software versions were installed on different development machines.
Having automated testing and other items run on CI means that nobody ever forgets a step in the process.
So, what do you think? If you told your boss "I'd like to implement a Continuous Integration practice for our development team because it would increase visibility, reduce overhead, improve consistency, inspire confidence and mitigate risk" would they be onboard?
You may also like: