Version Control and Baselines
We live and work in a world which is moving at Internet speed and consequently engineering problems and opportunities change at the same speed. It is the engineers challenge to record, analyze, conjure and implement engineering solutions in this timescale. This means that almost before an engineer has described a problem fully it will have changed or the business or engineering context of the problem will have changed. Most times the new direction or the changes will be described and adopted, but other times an engineer will be required to back-track and return to a previous version of the problem, opportunity or solution. Enterprise Architect has sophisticated tools for performing this back-tracking.
Enterprise Architect has two fundamental tools for working with prior versions of modeling content.
- Version Control - Once configured, any change point can be returned to; users check-out model fragments, make changes, and check-in the fragments, thus creating versions - for more information see the Version Control Help topic
- Baselines - Created at milestone or significant points in a model's development; a user creates a Baseline, and then at a future point the evolved model is compared to the Baseline at any level of granularity, and prior content can be restored - for more information, see the Baseline Help topic.
There is an important difference between the two methods, and that is: Baselines must be created intentionally. For example, if a team of engineers creates a model and it is signed off by a product owner, and then work continues onto phase two. If for some reason the team wants to back-track and return to the phase one model, without a Baseline in place this would not be possible. In contrast, once Version Control is configured, the same team could easily return to the phase one milestone so long as they knew the date it was completed.
Baselines are a powerful way to ensure that a team can back-track a model to a milestone or significant point in the model's evolution. They provide a user-driven way of managing change and give the modeling teams a sense of comfort that if they go off-track for some reason or some dimension of the problem, opportunity or solution changes and they need to return to a previous point it can easily be done. It is important to remember that a baseline is simply a snapshot of a package (potentially including sub-packages) in the repository but it must be created intentionally and needs to be created at the point in time that it represents. For more information see the Baseline topic.
Enterprise Architect allows an engineering team to manage changes and revisions to projects by placing individual model Packages, view nodes or root nodes under Version Control. Version Control is configured within Enterprise Architect through any number of third-party source-code control applications that manage access to and store revisions of the controlled Packages. Once the Version Control software has been installed and configured a team can save a history of changes to Packages, view and retrieve prior revisions of work, check out and check in content as it is being worked on and more. This facility allows a team to work collaboratively while providing an isolated way for engineers to work on particular parts of the model. For more information see the Version Control topic.