Lessons from the field: Developing Standards
Developing UML standards is an important first step in achieving consistency and efficiency in an enterprise. Consistent modelling means consistent understanding between the modellers and their audience. Consistent modelling practices also make for easy movement of resources between teams without extended learning curves. Some of the lessons Xpdian has learned in developing standards are:
  
Lesson 1. Decide what standards must be developed.
Different groups within the organization will use different parts of the UML to model a part of the enterprise architecture. The following standards need to be explored (as a minimum) for use in enterprise architecture:
    • Meta models - The meta-models are probably the most important models, and yet the least documented. They describe the structures and rules around the standards and constructs in the models. It prescribes certain rules about how modelling should take place and identifies reusable patterns in both the business and systems environments. Modelling standards developed for the organization should be modelled and tested against a meta-model first before it is deployed as a standard.
    • Business models - These are models that are created by business analysts and focuses on the business operation. They are often on a higher level of abstraction and focus more on what is accomplished in the business. This includes both business and systems activities although systems activities are only modelled as far as it impacts on the business environment. The functioning of the systems are normally described in the analysis models and then mapped to the business models in order to establish trace ability.
    • Analysis models - The analysis models contain systems descriptions as perceived and defined by the primary users of the system. They are normally closely linked to the business models and are modelled using business concepts and terminology.
    • Design models - the design models includes systems models that are specific to the physical implementation of the system. They are described using systems and technology specific terminology and would specify technical components and rules to be implemented.
Depending on the different types of software engineered in the enterprise, different standards may need to be defined for each type. For example: embedded software systems standards will be different to run of the mill transaction processing systems; standards for a COTS based environment will be different from a pure software engineering environment.
The approach for all types of software engineering and system implementation could follow a similar approach to the one described in this case study.
  
Lesson 2. Involve the right people.
The development of your standards can be given a head start by involving people that are passionate about and committed to learning. Adoption of new knowledge in an enterprise depends on people seeking it out, experimenting with it, learning through use, and then expanding that learning trough further research into the UML.
Another consideration is to include into the team people that are well respected in the enterprise and who may act as active change agents. Typically you would be looking for energetic enthusiastic people that are self driven and can grasp concepts quickly. They should typically be influencers, who can convince others of the benefits of the UML standards and the necessity of adopting it.
   
Lesson 3. Develop UML champions.
Successful and widespread adoption of the UML in the enterprise is dependent on having enough champions and mentors to assist the modelling community when they are introduced to the concepts. As with almost anything else, people tend to adopt new technologies more readily when the adoption cycle is relatively painless.
The team of UML champions should be developed from the first day of the UML project, or very soon after. They do not have to have 100% mastery of the UML by the time the modelling community is taught the UML, but they need to know enough to give first line support. Their major role should be to assist the modelling community with simple UML problems, modelling tool problems and generally be a shoulder to cry on.
The UML champions will be, by being the first line support, a good feedback mechanism. Their feedback will enable the project team to understand, what problems are experienced, what skills gaps need to be addressed, how the UML standards may be refined and what pockets of modellers need closer support and assistance.
Second line support may initially be provided by external consultants and over time as their skills develop by the UML champions themselves.
   
Lesson 4. Develop formal standards documents
When implementing the UML, nothing is more important than presenting all modellers with a formal standards document. The purpose of the standards document is twofold:
Firstly, it should serve as a training manual. This means that all of the diagrams and notation should be described well enough as to be self explanatory. It should contain good examples applicable to the industry of the enterprise so that modellers can relate to the examples when being taught the concepts.
Secondly, it must be the guideline according to which modellers can create their own models. It must be comprehensive enough to guide without being too prescriptive.
  
Note. Sometimes you may wish to enforce certain ways of modelling. When designing standards, or parts of standards, designed to constrain, or restrict, it should be because of good business or modelling reasons. Restrictive standards almost always lead to artificial models that restrict implementation.
   
Lesson 5. Develop formal standards training.
Key to the success of an UML implementation is good standards. Good standards are implemented by exhaustive training. Over the shoulder training of the standards are not good enough. Modellers need to be trained formally in a classroom environment, where the quality of education can be consistent and measurable.
Formal training is almost always better received and depending on the level of personal measurement may be worked into the formal resource evaluation metrics.
By having formal courses, new modellers or staff transferred from elsewhere in the enterprise, may be assimilated quickly into the modelling community. Formal courses also form the basis of a solid and predictable education path.
Over and above the initial standards training, refresher courses are necessary to reinforce the UML standards and to update the concepts as it evolves over time. Refresher courses should be run after major reviews of the standards, or at least annually should major revisions not occur.
  
Lesson 6. Develop lots of examples.
Good UML standards form the foundation of UML understanding in the enterprise. To reinforce this foundation the UML forum and the UML champions need to develop plenty of examples outside of the standards as references for more elaborate models.
Examples may include full project modelling life cycles, trace ability between different levels, or dimensions, of models and examples of atypical models that move outside of the UML standards. Atypical models need to be accompanied by descriptions of why it was necessary to deviate from the standards. 
  
Lesson 7. Review the standards constantly
To ensure that the UML standards stay current and appropriate it is imperative that a process of review, assessment and continuous improvement are implemented. A typical UML standards life will begin with a basis that is constantly reviewed and updated. As it matures and start to fit into the needs of the enterprise these review cycles may become less frequent.
The lower frequency of review does not mean that review should stop completely. It is important to keep the UML forum alive and have formal review meetings at least quarterly. Over time as business and its practices change there will be leaps and bounds of evolution. If the forum is removed these changes may not be dealt with in a pro-active manner when they occur.
 
Google
 
Web xpdian.com