Every company is a software company – Satya Nadella
IDC predict that in less than three years, 60% of global GDP will be digitized, and certainly, most businesses report that they plan to invest heavily in transforming the way they deliver technology-based services, aiming to serve more customers and to serve them better and more efficiently.
As a result, your IT department is no longer a ‘back office’ function; it’s central to the way you do business. Organizations are increasingly using data and analytics to understand the customer, and striving to build software based directly on this understanding. They want to use their people, processes and platforms for projects that make it easier to innovate new products, as well as to retain customers. However, unless the database is included in these digital transformation (DX) programmes, they risk failure.
So, when it comes to the database, what needs to transform in the way teams work together, and in the processes and platforms they use, for an organization to truly revolutionize the development and delivery of software-based customer experiences?
What are the key working relationships in your organization, and how effective are they?
As teams become larger in size and increasingly diverse, there is a rising demand for technologists who can communicate clearly and work well with other business disciplines. Full-stack developers are helping cross-functional teams, by contributing a broad perspective on both application and database development, throughout the development process.
But, however quickly a development train can deliver new functionality, it is pointless if software releases cannot be deployed rapidly. In many organizations where the role of full-stack developers has yet to be explored, the traditional specialist database programmers and administrators in the operations team have an important understanding of common bottlenecks in the pipeline, that must be surfaced and resolved in any DX initiative.
IT management need to ensure that everyone understands the role that database professionals play in the business, and then that all technologists are focused as a team on scaling up and speeding up delivery.
What processes and tools do your teams need in order to adopt a leaner development model or to slot into a full DevOps workflow?
As part of many DX programmes, DevOps is increasingly being used to increase the speed of software delivery, by aligning the way that technical teams manage the software development and release cycle. Teams are using DevOps to:
- Standardize practices to raise code quality
- Automate manual tasks to free up time
- Create feedback loops to give visibility of issues earlier
- Use self-service capabilities to speed up workflows
Again, if the database is not included in these standardized, and more efficient, ways of developing and deploying applications, they are likely to become the cause of unexpected delays.
DevOps practices, such as those listed above, must extend to database development, so that the deployment of database functionality, which is often the most complex part of the pipeline, instead becomes rapid, repeatable and painless. Developers must be provided with the tools and resources both to test database objects in isolation and when integrated, before they are released.
Do you fully understand the expected outcome of a platform or architectural change? Are the operations team resourced to manage its consequences?
Many organizations are turning to hosting applications in the Cloud, due to the lessened risks and fewer resources required, when compared with on-premise hosting. For many businesses, the DX programme is heavily focused on the journey to becoming a Cloud-native business.
With Cloud services making it easier to provide more flexible hosting of applications, some of the experimentation that it encourages, can cause subsequent problems for the operations team who must manage and monitor those services. A flexible, modular microservices architecture for example, which supports a development team’s ability to spin up and take down new applications quickly and easily, can create an unmanageable volume of test data, or sensitive production data scattered around, for the operations team to mop up.
Involving the team who manage the database in platform decisions, will allow them to explore the processes and tools that they need in order to scale database services at pace with the development train. This will allow them to protect business-critical data and avoid unnecessary bottlenecks.
Is it possible to safely use the customer data within your database management systems to understand what new services you need, and then to develop and test them reliably?
Digital Transformation is allowing large, well-established businesses to innovate faster and to compete with industry disruptors and startups, who aren’t encumbered by legacy ways of working and complex tech stacks.
It is specifically within this legacy and tech stack however, that established organizations have their advantage: a wealth of data about customer habits, product usage or commercial patterns, and which many are using to create personalized and frictionless applications. The opportunity to deliver services driven by data within the Relational Database Management System, is the revenue opportunity that’s ensuring many enterprises are remaining competitive.
However, we are all very aware that the road to more personalized services is littered with potential risks that could lead to a disastrous breach in customer trust. When personal data is misused for commercial gain, or exposed in an avoidable breach, the long-term reputational and financial consequences can be crippling. IT leaders need to ensure that in their efforts to protect valuable data, there are strict controls in place during the development cycle. The database team have a critical role to play here. Working closely with the information security function, both teams should be centerstage in the productization process, to ensure that during the development pipeline there is clear governance around the data sets being used for development and testing of new applications.
Digital Transformation is definitely a factor in the growth of DevOps as it enables enterprises to innovate faster and to serve more customers. Although they are generally aware of Agile and DevOps, it is apparent that few businesses are giving adequate prominence to the database and data issues, in these more efficient processes.
If you aren’t fully engaging the database teams in the project scoping phases of your DX initiative, then you are likely to face unpleasant surprises at times when it is hard to fix problems.
We have recently written a whitepaper exploring the questions and answers raised in this article in further depth. Visit our website to download your copy of Digital transformation: keeping the database in scope.
Was this article helpful?
Also in Database development
We sometimes receive questions from customers who are moving to use Microsoft's Azure SQL Managed Instances as to how Redgate can help manage backups.
This is a tricky question because Microsoft's ...
Also in Software development
When deploying new versions of a centralized application like a web service, there’s a strategy you can use to direct production traffic to the new version only after it has been successfully de...
Also in Blog
Source controlling database code and automating deployments is a tricky business. To work quickly and maintain control over changes, developers need both productivity tooling to help generate code qui...
Also in DevOps
Quick links for this post
First, I cover examples of organizations who illustrate patterns and anti-patterns for DevOps cultural change:
Example 1: What kind of company is Domino's?