DevOps Quest: Application Selection
This is the first in a series of six “DevOps Quests” we will undertake together. Why a quest? DevOps is a never-ending journey and we are searching for knowledge to help us along the way, plus quests are fun and everyone can use a little adventure! Great, yeah?
Oh, why six quests? I mentioned I would write about six specific topics in Are You Asking for DevOps or Something Else? so take a look at that if you want to see what the other upcoming quests will be. The first couple quests will lead us where many seem to be drawn when thinking about DevOps (automating application delivery) and this first quest is going to be a simple checklist of things to check to get our journey started – grab your list of applications and let’s go!
Unfortunately, not every application is a good candidate to use while transforming into a DevOps organization, especially when just starting out. Even if the immediate or only goal is the Continuous Integration and Continuous Delivery (CI/CD) aspect [hint: this is the next quest], and even if there is only one application to consider, any effort could be in vain unless certain criteria are met. DevOps activities should not be done just to do them. Which applications will work?
In general, newer applications and those using modern design and implementation tend to transform more readily than the old legacy beasts. That is not to say CI/CD can’t be applied in some measure to any application but going after the easy wins will help build experience and gain momentum. Using some essential criteria to rate application feasibility is the first step to success; those criteria are:
✔ Application Technology
This was already hinted at – choosing an application using a technology conducive to transformation will help a CI/CD implementation attempt succeed. The main benefit of using the technology as a criterion, especially if more than one application candidate exists, is to have a quick method of prioritization.
Think about web, mobile, and serverless applications to help focus in on a selection. Microservice-based design also might provide a great opportunity to use CI/CD successfully. Along with the technology, the current process for delivering that technology should also be considered. It might be beneficial to gain experience using a “simple” web application before tackling something with 13 microservices – or one of those microservices might work as well!
Mainframe application delivery can even be improved – yes, for real! Process improvement is the key for any implementation, but the technology alone should not be the deciding factor. Pick up the applications that make sense and proceed to the next encounter.
✔ Application Activeness
This is a pretty simple box to check (or not): to realize true value from CI/CD, an application needs to be active from a business perspective. If a candidate application is near or at end-of-life, or other business considerations (e.g., new strategic decisions or integration requirements) limit application usage, investing in CI/CD may not be a valuable undertaking.
Business usage is not the only measure of activity to take; check this box, if you dare, and continue down the path.
✔ Change Frequency
Even if an application is being used every day, that does not mean it is being delivered every day. One of the great benefits of CI/CD is the introduction of automation into the delivery process. Automating application delivery that happens every month or week – or every day! – is going to provide more value than a process that runs once per quarter.
Focused on the application, these first three check boxes represent some lower level challenges that are generally easy to overcome (i.e., decide one way or the other). Making it this far is only part of the quest – what about the party travelling together on this adventure?
✔ Team Impetus
What motivates the application team to continue, knowing what dangers lie ahead? Adapting and adopting new strategies to slay the beast is essential to success! If the team is not ready, or not willing, to make necessary changes, then even a well-constructed plan will inevitably fail.
This path leads into the other realms – Metrics, Information, Culture and Leadership – and completing the quests in these realms takes a long time. On the application front, and with full management buy-in (100% essential), the application teams performing CI/CD can act as change agents in the organization.
Does the team want to show measurable benefits, improve the flow of work, and be part of active process improvements? Check this box and charge to the final goal – the treasure.
✔ Business Value
When it all boils down, there is probably no greater reward than being able to deliver meaningful value to customers. If an application does not deliver value in some way, why does it exist? Choose an application that would benefit from improved delivery; not just for the increased speed automation can provide, but for the extra value that can be delivered through more agile and frequent application changes.
Quest complete – nice! Hopefully this little journey helps identify some application that you and your team or organization can use to implement CI/CD and deliver more value to your customers. In general, I think each of the five criteria are weighted equally. Depending on your current capabilities and maturity levels, you could change the weights as needed, then proceed with selecting an application to work with.
Start small! Jumping into CI/CD because you heard it was cool to “automate everything” can really be a wake-up call when you end up automating failure. The technical aspects are easier to work with than the culture and business value because that is the focus of CI/CD, but from a DevOps perspective, the CI/CD is just a part and it is important to not ignore the non-technical parts.
Maybe you are having trouble deciding if an application is a good candidate, or maybe the end of this first quest left you empty-handed and scratching your head. Perhaps the single application you work with already has a great CI/CD pipeline in place and you want to figure out how to improve other aspects. Get in touch with us HERE and let CVP be a partner is this quest. Make sure to check out the next post, DevOps Quest: Continuous Integration and Continuous Delivery, in a few weeks!