Here today, gone tomorrow
monica914 060000WAY8 Visits (16613)
Sometimes it feels like almost everything we used to do (and thought was so very important), just doesn’t fit anymore. The times they are a-changin’ everywhere.
For instance, in the past we spent a lot of time reviewing the capabilities of tools before deciding to even kick the tires. The “explore” and “experiment” phases of tool selection could be quite long. We would have a list of prioritized requirements and if the tool didn’t measure up on paper, we wouldn’t look any further. We would spend many months piloting and customizing. Any tool decision was something we would have to live with for many years so it was worth being careful. And that made good sense as we typically invested a lot in the usage and customization of those tools.
Like everything else in today’s world (as my phone updates an app again), things move faster. This year’s CI cool-tool is Travis, making Jenkins so-last-year. And everyone wants to be on the cutting edge. But… we’ve made this big investment in tool X. How can we possible move?
For our teams within Cloud Data Services, we are adopting a philosophy of writing code in a tool-agnostic way. We want to maximize the automation and other code assets that can move to the next tool seamlessly. This means writing command-line driven scripts even when the tool has a nice interface to avoid it. It means focusing on isolating your business logic from the tool’s implementation of running it for you.
Our other technique is that where we have to leverage the tool and write something tool-specific, isolate it through both a naming convention and a directory structure. That way when (not if) we change tools, we can tell easily what the cost will be. That isolated code is what we will have to either rewrite or refactor to work with the next gen tool. The other benefit to this approach is we get to try a lot of tools. We don’t need to be sure the tool will do absolutely everything to get started. This has dramatically unblocked our teams that are bootstrapping their continuous delivery pipelines. No more analysis-paralysis on tool selection. Pick one, get going and if it’s not working, well, try another. We are continuously improving our tool selection, our processes and by keeping the cost of switching tools low, we are able to use the best tool, right now, for the job. So bring on the cool-tools. We’re ready!