Transitioning to the cloud is no small task. It can impose risk for any organization who makes the transition without proper strategy in place. At the same time, it is packed with an even greater amount of business value that an organization can extract when properly transitioned. When things go wrong, they may not be immediately obvious, but usually are very costly. So, when crossing the chasm, the following common pitfalls and tips will serve you well as you embark on your journey.
1. Lacking Automation
Neglecting to automate tasks that could be automated means that teams will be spend additional man hours on repetitive tasks that a computer could easily do for them. This means longer release cycles and lead times which costs your organization money, as well as the unnecessary man hours.
Tip: The term DevOps signifies a culture shift mixed with a set of tooling that incorporates automation and enables closer alignment with business objectives. A cloud migration is an ideal time to encourage a culture of DevOps in your organization. Notice that I said “culture of DevOps”. What I didn’t say was “A DevOps employee” or “A DevOps department”. DevOps is a culture in which every team owns their part in writing scripts for automating tasks. Here’s an incomplete list of tasks that can be automated:
- Infrastructure Creation
- Application/Infrastructure Configuration
2. Ineffective Org/Team Structure
Having an effective organization structure directly pairs with having a DevOps culture. Realizing that this could require significant buy-in from upper-level management and upset your employees, this is no small feat to approach. Nevertheless, this is likely the most important change. An inappropriate structure could cost the organization dearly in man hours as a result of constraint between teams and departments.
Tip: There is a lot of literature (including case studies) on how to structure an organization for maximum performance in conjunction with DevOps. There is not a one-size-fits-all for every organization, but there are a few shared key ideas among all the solutions. If you get the structure right, you will reap rewards.
3. Poor Logging, Monitoring, and Alerting
All three of these concepts are related. Without any one of these, there is a massive blind spot in your applications and infrastructure, and you run the risk of losing customers. Without alerting, you risk significant amounts of downtime. Alerting is your watchtower that can sound the alarm when there is an urgent issue. Without monitoring, you risk missing trends and weaknesses in your application and infrastructure. Monitoring is a great preventative measure. Without logging, your teams will be shooting in the dark when a customer reports a bug. Logging is your team’s window into what the application and infrastructure is doing.
Tip: Implementing logging, monitoring, and alerting is an investment. If you aren’t currently doing all three of these, they are all relatively easy to implement in the cloud and will provide a huge organizational win. As a bonus, this will enable a new set of metrics for measuring the progress, status, and success of your applications.
4. No Tests or Testing Late
Testing late in the project schedule means that a lot of effort will have been spent on a solution that is not viable for the needs of the business and its users. In this case, the cost is wrapped up in man hours and late delivery of an application. To take it a step further, not testing at all means that your users are your testers. This is surely detrimental to your organization as it means that you are realizing all the detriments of testing late as well as losing customers to your competition who might have a more reliable product.
Tip: Test early and often. There is a big movement in the world of testing known as shift left testing in which software communities have realized the value of performing testing as early as possible in the life-cycle of development.
5. Large Scope of Work
Transitioning to the cloud means that you are automatically implementing a new set of tools that are likely unfamiliar to your teams. A cloud migration is not an ideal time to complete technical debt like refactoring, major bug fixes, or implementation of new technology. That goes without saying that it is also not a good time to completely rewrite legacy applications.
Tip: Make your full transition in small, measurable, and incremental steps that minimize your work in progress. A great first step is to transition an application to the cloud with as small a set of changes as possible (or none, if possible). This includes legacy applications; consider the use of Docker where necessary).
6. Not Measuring
Without measuring, there is no way to truly know if your changes in processes, technologies, and teams are getting better or causing additional constraints that hinder success.
Tip: Many tools used for DevOps provide a way to measure something. Collectively, you can measure just about anything you can imagine. Where possible, measure anything and everything. Data is the best tool for understanding organizational performance. Make the most of your organizational efforts with data-backed proof for success.
During your journey to the cloud, the tips in this article should serve as a great way to avoid the common pitfalls that organizations commonly experience early in their endeavors.
If you seek more information or are struggling to implement the changes in this article with success, New Signature has the expertise needed to create organizational success using DevOps and cloud-first software development. We would love to assist you in navigating the many decisions involved in unlocking the full potential of your teams. Connect with us if you would like more information on how we can assist with your transformation.