Improving team collaboration has important business advantages. It speeds up the release cycle by making specification changes easier to handle and reduces the time required for integration. It also increases team satisfaction and productivity by enabling teams to focus on developing code instead of dealing with manual documentation, creating code to support deployment processand worse – fixing bugs caused by overridden code or undocumented changes.
When most project managers implement SCM solutions to protect development assets, their main focus is on native code (Java, C#, C++, etc...). However, in database applications, much of the data-driven code is in the database itself.
A complete SCM solution requires all application code, both native and database code, to be under version control. Every change must be documented. This requirement is easy to implement when dealing with text files containing native code. Dealing with database code is much more complex. The challenges in managing database code include:
- Database code is not stored locally intext files
- Database binary files consume a lot of space
- All of the object types in database (tables, procedures, functions, packages, triggers, views, sequences, etc...) require a different syntax for implementing changes
- Lookup data has many formats: XML, strings, dates, numbers, etc..., but also needs to be managed as part of a change request
When using dbMaestro TeamWork, developers and DBAs use a single-step Check-Out & Check-In process for database changes. All that is requires from them is to perform the actual change while TeamWork takes care of everything else:
- Exposes the object status (a change started, is in process, the change had completed) to all relevant parties
- Makes sure no one overrides the change until it is committed
- Documents the change in the repository, while linking it to a business change request
- Saves revisions of relevant tables content changes
- Links custom code required for business logic specifics (if required)
Later, when the need arises to deploy changes to another environment and deal with potential conflicts and code merges, TeamWork handles this task automatically, while saving countless work hours.
 |
|
| Single-Step Check-In |
Without TeamWork, DBAs and developers must follow a manual multi-step procedure that includes:
- Check-Out the object's script in the SCM product
- Make sure it matches the exact revision from the repository, on which the change will be performed
- Change the object in the database
- Generate the object's script from the database
- Perform the Check-In to the SCM repository
- Create deployment code manually
- Save deployment code somewhere (either in a manually managed file directory, or another object in the SCM repository)
 |
|
| Multi step Check-In |
This series of manual steps often causes development or deployment problems, usually at the worst possible time – as Murphy reminds us, because:
- The change process is not enforced, changes can be forgotten and not documented
- Someone else made some changes at the same time and the script saved to the repository did not match the code
- The new developed code uses new values in a lookup table, that are not documented and not revision managed
- New code needs to be created once again to merge conflicts created by another team
- Deployment code that is created manually needs to be debugged and efficiency, object dependencies, logging, commenting etc…, need to be dealt with
The amount of work required to complete these tasks is huge, as you already know.
Let dbMaestro Teamwork automate these tasks for you, and help you focus on the talk at hand: completing required changes as efficiently as possible.
Use TeamWork today to make your database development environment more accurate, more efficient and more secure.