Agile development ideas have come a long way over the past few years, from a set of interesting principles with the potential to change the face of software development, management and deployment, to an effective set of tools and methodologies that significantly improve the time and efficiency of controlling software rollouts and versions.
“Today’s DevOps and Continuous Delivery tools really have changed the way corporations control their development operations, making the whole process faster and less error prone,” says Barry de Waal, chief executive: strategy and sales at 9th BIT Consulting. “Yet, while software development has advanced in leaps and bounds, the same can’t be said for database development practices.”
De Waal believes this lack of focus on DevOps for databases is a fundamental weakness in agile methodologies since most enterprise development revolves around information, often critical business information that resides in corporate databases.
“It doesn’t matter how advanced your development practices are, if you ignore the database you are risking the whole process,” adds De Waal.
Highlighting the lack of DevOps for databases, DBmaestro recently conducted a survey titled, Database Deployment & Development Risks. The aim of the survey was to gain insight into the risks associated with various database development practices. While DevOps for databases is well regarded in many enterprises, the survey found many still relied on manual processes for database development, deployment and maintenance.
The survey found, for example, that many companies, while recognising the risks inherent in manual processes for database development, continue to use manual processes and have not made the switch to an automated development cycle. One area in which this was particularly evident was in controlling the source code for databases.
This leaves the company exposed to numerous risks, the primary three being:
* When one developer integrates changes to the system in a particular area, manual processes make it possible, even likely to override new code with older revisions from other development branches. Nearly 90% of the survey respondents recognised this risk, but more than half (53 percent) still use manual integration, which may allow such errors to occur.
* Secondly, there is always the possibility that the database may not be in sync with the company’s version control repository. Curiously, while 90% of the professionals surveyed also said this was a serious risk, 72% admit that their database may not actually be in full sync with their version control repository. This can have a dramatic impact on database integrity.
* The third risk is that developers may introduce changes without first verifying each database object against its version control revision to ensure each one is up to date. The survey shows that, even though most IT professionals are aware that failing to verify database objects with source control is risky, an astounding 53% continue to do so.
That’s not to say that manual processes don’t work. The problem is that, if done correctly, they are time consuming and introduce unwanted interruptions to the development process and schedule. The potential that two or more developers working with the same code can overwrite or undo changes made by others is a risk with potentially disastrous consequences.
“To avoid this type of risk, we advise our enterprise customers to make use of a Database Enforced Source Control solution that covers database lifecycle management (DLM) from development through build and deployment,” says De Waal. “In this way they create the infamous “Single Source of Truth” for database development assets, which in turn allows them to trust their source control and implement the rapid changes today’s development cycles demand.”