Data Strategy for Digital Transformation
It’s 2018 and it seems like everyone has a Digital Transformation or DevOps initiative – or at least something similar in sprit. This isn’t really a surprise is it? Anyone building and delivering software experiences to end users is in a race to stay ahead of competition and respond as quickly as possible to customer feedback. Are you the last bank to support mobile check deposits? Congratulations, you just lost a lot of customers to competition. Are you the last hospital system to have a user-friendly patient portal that makes it easy for patients to log in and see the results of tests? You’re losing customers to better hospital systems that can deliver a richer user experience. Unfortunately, keeping up – or staying ahead – is only getting more challenging as everyone pushes forward with their “Digital Transformation” and “DevOps” initiatives.
As far back as 2016, pundits and analysts have opined about how many companies are underestimating what it takes to achieve the speed and quality promises of a truly modern software engineering process. But it’s 2018, the “year of enterprise DevOps” according to Forrester, but a big stumbling block still remains largely untouched: the data that underlies the applications. Many organizations are going to be sorely disappointed by the outcome of their DevOps investments because they are still forgetting the database.
John Comas, Platform DevOps Manager at NBCUniversal perfectly articulated the oversight when speaking about the challenges in bringing DevOps to his organization – “in retrospect, I wish we had done the database first.” Okay, but what exactly does one need to do to the database?
The primary obstacle is the separate, manual, out-of-band process that database changes need to flow through. Fundamentally, organizations need a solution that enables a unified, transparent path for both application code and database code from development to production. A single unified pipeline minimizes the impact to current development processes while fostering much needed alignment across the organization. With a single pipeline, it’s also much easier to keep database changes synchronized with application code changes, making releases much less of a headache – especially when a new feature (and it’s corresponding database changes) need to be held back or accelerated as part of a release.
Even with a single, unified process, there’s also the hurdle of the actual database deployment process. This is currently a manual, custom process for each environment that simply doesn’t scale. The current database release process has to change, it needs to be a standardized, repeatable, automatable task. The push to production should look identical to the push to lower environments. Invest in a solution that allows you to produce a single immutable artifact that can be predictably and reliably deployed over and over, or continue to spend the extra days and weeks waiting on the database changes to make it safely to production.
Lastly, to get more out of your investments in DevOps and Digital Transformation, bring automation your database changes. As the 2017 State of DevOps report highlights, automation is the key to bringing speed and safety to your software releases. Currently, DBAs spend a lot of time reviewing database change scripts. It’s honestly not a great use of their time. Invest in a solution that allows you to define object-based rules so you can truly eliminate the manual review process. Similarly, invest in a solution that can simulate the impact of database changes in context of the target environment and assess the validity of the result. This eliminates the manual reconciliation process that DBAs and developers get dragged into. By bringing automation to database changes, you can enable developer self-serve and amplify feedback – both of which are essential to a faster and safer process.
Without an agile data strategy that allows database changes to flow in step with application changes, you will see little lift from your DevOps and Digital Transformation initiatives. Instead of diminishing your investment in application release automation solutions, carefully consider the best practices in bringing true DevOps to your database so that you can get even more value out of these investments. Ultimately, bringing new, quality software experiences to your users more quickly isn’t a matter of luck – it’s a matter of strategically investing in the tools and processes to eliminate the bottlenecks holding you back. This is just a friendly reminder that your database may very well be your critical bottleneck if you ignore it.