In this article, Yaniv Yehuda examines how Database Change Management (DCM) must be embraced by everyone on board when creating a successful deployment strategy. Learn how deadlines are more easily met and releases become more reliable with this strategy.
Database change management (DCM) plays an integral role in any database-dependent operation. But, more importantly, the organization must support change management as a significant component in its drive for operational excellence.
In the quest for excellence and to become a better enterprise that satisfies both employees and customers, an organization must promote an environment that reflects both teamwork and processing methodology. Wikipedia defines operational excellence as "a philosophy of leadership, teamwork, and problem solving resulting in continuous improvement throughout the organization by focusing on the needs of the customer, empowering employees, and optimizing existing activities in the process."
Process refinement must include specific documented methods that support the quest for excellence, such as:
- Documented workflows and tasks
- Ensuring that professionals are trained with the knowledge to complete the task at hand
- Incorporation of process automation
- Defining the best practices required to achieve the defined goals and reach the highest level of excellence
- Identifying and instilling measuring tools that monitor and ensure that progress is being made toward achieving best practices
SCM, DCM, and the quest for Excellence
In software engineering, the use of software configuration management (SCM) tools has become standard for reaching defined process management goals. Although database development processes are important to process refinement and the quest for operational excellence, SCM systems have not typically included the database in their management process due to the fact that database structure and objects do not behave as traditional software text-based files. The database is not a set of local files that are copied into the SCM vault, but rather exists as a central resource consisting of dependent objects with persistent content that are being accessed by multiple users at the same time.
Thus, although developers are expected to do more with less, meet tighter deadlines, and provide more frequent updates due to business needs while maintaining code quality and compliance, their development tools do not cover the database, a crucial aspect of the business. Because database development processes are every bit as important to successful application deployments and increase in significance as information and database size grow at exponential speeds, the need for a DCM solution has become crucial.
Those who deal in database development understand the need to control what is happening in the development process from end to end. DCM is the control and management of all the database changes implemented in a database project. A complete release-and-deploy DCM solution covers all of an application's tiers without focusing exclusively on the binary code and configuration files. The entire development lifecycle consists of the development, deployment, security, and compliance of the database. A complete DCM solution controls, monitors, and synchronizes each of these functions for the database development and deployment teams.
A good DCM best-practice process for database development must cover those aspects that traditional SCM brings to software in order to avoid untimely and costly database development and deployment errors. These aspects include team collaboration and synchronization and the ability to review history and understand the who, when, what, and why of any changes made. In alliance with the basic requirements for operational excellence, the DCM must include an enforced development methodology and automation of documentation for purposes such as regulation compliance and security.
There are several requirements for true control management—i.e., in order for the DCM to be effective and in line with the organization's operational excellence program. You should implement a true, end-to-end solution that enables the deploy phase to connect to the change history. Every change must be documented, and a process enforcement mechanism should be implemented that does not allow for any object changes to be made outside of the check-in/check-out cycle. In addition, the DCM solution should cover all three database code types: schema structure, business logic, and lookup or reference data.
Benefits of DCM
By implementing DCM in the development process, production uptime is increased and the quality of projects is improved. This is accomplished by ensuring that the changes made are not overridden by other changes and a proper impact analysis is performed. A proper impact analysis includes the ability to understand change origin and behave accordingly. It is not enough to know that there are differences between two database environments; it is imperative to trace the cause and reason behind those differences. The knowledge that target production versions should not be overridden with recent changes because a more important, conflicting change was deployed is critical for safe and error-free deployments. Developing in a controlled and organized method ensures that all changes are monitored and certifies that the production includes all planned changes and production rollbacks are quick and simple. Major risks involved in the development process—including missed deadlines, release reliability, and loss of control—are eliminated by implementing a DCM solution that tracks who does what, when, and why.
Most importantly, the final product is not compromised. Deployed changes are based on true organizational requirements and on accidental timing or technical constraints.
A company included the implementation of a DCM solution in the plan for its operational excellence program. It was particularly important to the organization's development team that they address and improve teamwork and process methodology, as they had found this to be a key bottleneck in the database management lifecycle. They missed deadlines and continuously experienced production delays and overrides. As a result, the process was costly and detrimental to their morale.
They pursued a solution that best integrated with their plan for operational excellence and followed the DCM best practices established above. The documented benefits of the chosen DCM solution were apparent, and the ROI was immediately evident. Deployment time and costs decreased significantly, as did risks and problems in development. Churn rate of the development team was greatly reduced due to the increased teamwork and high morale. Production quality was increased with actual business requirements implemented in the changes. Impact analysis and conflict resolution of the database deployment scripting were available for the first time.
Operational excellence must be a corporation-wide goal that touches each and every aspect of the organization. The process refinement strategy should include development methodologies and monitoring plans for both software and database development. The utilization of a good SCM solution is essential but not sufficient in those organizations where database development is important to successful application deployments. DCM must be included in the overall plan for excellence and should not be overlooked in the deployment strategy.