In several projects of late, I have noted a trend in otherwise rockstar IT departments: They identify an area that they wish to implement or approve and then set out to address it. So, âWe need a new CI tool,â spawns a project to choose and implement a new CI tool, for example.
But there are so many details that these projects are missing from the start that should have been put right into the charter/project kickoff documents.
Letâs start with, âWhat CI tools do we currently have in place?â This is the 2020s. How is it possible we are still starting these projects as if there was no solution in the virtual building already doing the job? We need to start from, âHere are the tools that can do this job that are currently running in our environment.â Only then should we move on to, âHere are other options to consider.â But I will humbly suggest that if there is a single tool that can solve your issues, it should be usedâand if, of all of the tools running in the organization, none of them can solve all of your issues, then a new product should be chosen that can.
The same is true for things like alerting. When I am analyzing a given vendorâs solutions, I ask about how many places they can raise issuesâit is important that a vendor asking you to purchase their product can report and alert to whereever the organization needs it to. So that could mean Jira or ServiceNow, Slack or email, centralized loggingâall of the above and sometimes more (SIEM for security events, for example) need to be supported. But when a given organization is implementing? Choose a reporting method.
The most common is, âWe do Slack, but we also do email. And, of course, we coordinate though issue management like Jira âĶâ Stop. Seriously. This is not about, âOh, they made it easy, so we just implemented every option.â This is about, âWe need to keep track of conversations and resolutions.” If two people are discussing an issue over Slack while a separate team is discussing over email, youâre failing to communicate. Even if there is linkage to ServiceNow or Jira and that is where conversations should happen, we all know that final resolutionâbut not troubleshooting stepsâis what ends up there. So offer one robust and widely available alerting mechanism and let people run with it.
That type of redundancy is all over IT. Organizations that would not implement per-team email solutions (not servers, solutions) will happily allow for per-team DevOps toolchains. Why? What, exactly, is different? The purpose of a mail server is to deliver mail. Choosing which mail vendor/service to run with is based upon how a given product does so and what additional services come with it. How is that different than, âThe purpose of the DevOps toolchain is to deliver applications, and selection is based upon what vendor/product best serves the way our organization does so?â There isnât a difference; we imagine one. We latch on to one feature that we must have to keep our current favorite, and the compromise is that the next team over can keep their tools, too, because they must have some other feature.
Evaluate what the organization as a whole needs, identify tricky bits like must-have features and determine if that really is a requirement. If it is, ask why it isnât a requirement for every project not using that tool.
And keep moving those apps along! You are building and deploying more apps more securely than ever before. Continue to sanitize the build and delivery process, and continue to crank out apps that make the business hum. But donât make it part of your job to support fifteen tools that all do the same job. Streamline and improve. And keep rocking it.

