| |
|
Certification of Software Engineers Litigation of Software-Intensive Projects O-O-Design: ganz einfach oder sehr kompliziert? Professionalism in Software Engineering Reusing the Products of Analysis UML: A Curse or Blessing? (pdf file) Wer verträgt wieviel Abstraktion? Wohin mit den Funktionen im Objektmodell?
|
Experiences in Growing Internal Consultants with Object-oriented SkillsSuzanne RobertsonAbstractSuccessful implementation of new technology is more efficient if there are experienced people available to answer questions. The first time an organisation uses a new technology it makes sense to employ external specialists to provide guidance. To get maximum advantage from investment in external consultants, an organisation should only have to ask them each question once. Rather than continual reliance on external experts, Project Clinics can be used as a mechanism for gathering the answers to questions and communicating those answers throughout the organisation. This paper explains how the Polish State Railways have used Project Clinics to progressively gather knowledge from external consultants, and build a knowledge base along with a team of internal consultants. The internal consultants are able to guide project groups in the application of core object-oriented skills like: data modelling, context modelling, event partitioning, process , data and state correlation, allocation modelling, component reuse and viewpoint modelling. Keywords: Internal Consultants, Project Clinics, Technology Transfer. ContextToday's systems involve a growing variety of products and disciplines and need more and more technological and organisational skills. Whenever an organisation does not possess a required skill, it makes sense to buy the services of an appropriate external consultant. The consultant works with you to answer your questions and help you to make effective use of a product, tool or technique. Next time you have questions, the consultant returns and you go through the same cycle. The questions are answered, you are making progress and everyone is happy. This use of external consultants is an effective investment providing you are using them to answer new questions. If you are continually using external help to solve the same problems it is a sign that the organisation is not learning and you need to develop some mechanism for trapping and transferring knowledge. Consultancy is a product, and like any other product it can be made visible, tangible and transferable. In order to take full advantage of external consultancy, an organisation needs a procedure for capturing and communicating experience. This paper describes how Polish State Railways are building a knowledge base by developing their own team of internal technical consultants.As part of a restructuring effort, Polish State Railways (PKP) are doing a large project. The aim of the project is to build systems to improve quality of service, reduce operational costs and improve financial results of operations. The project, started in 1993, consists of 80 applications to be developed by the year 2000. The central project office is in Warsaw, but the application teams, users and developers, are spread over nine locations from Gdansk in the North to Krakow in the South. The teams are using the Coopers & Lybrand Summit D methodology and a mixture of Systems Engineer and Oracle CASE tools. Data modelling, context modelling, event partitioning, process , data and state correlation, allocation modelling, component reuse and viewpoint modelling are all skills that are used on the project. The challenge was to design a way to transfer experience and good ideas between the project groups. The Concept of Project ClinicsOur courses in core analysis and core design skills provide training in how to think in appropriate abstractions and how to understand and communicate systems knowledge. The developers learn how to build a variety of systems models and how to use those models to analyse, design and build systems. When the developers apply the core skills on their own projects they need a feedback loop which we provide via project clinics. We introduced the project clinic as an alternative to advanced training. Instead of taking additional courses, the project clinic provides on the job training. The aim of a project clinic is to keep a project healthy. Think of a healthy project as one where tools and techniques are being effectively used to assist the project team to build the system. It is also a healthy sign if the same tools and techniques are helping the project manager to estimate the work and manage the project. Hospitals are places where people go when they are sick and need to be cured. On the other hand, clinics exist to keep people healthy. When people go to a clinic they are taking preventive measures to make sure that they stay healthy and are kept aware of developments in health-care techniques. Project clinics do the same thing for software projects. The clinic is designed to make sure that the project stays healthy by identifying and solving problem areas and ensuring that the project continues to make satisfactory progress. The clinic is a mixture of formal lectures, informal discussions and work sessions. The subject of the clinic is driven by the needs of the project. To give you an idea of how varied they can be, here are some examples of the subjects for previous clinics:
During the clinic, the clinician identifies project problems with the team members. He or she demonstrates how to solve the problems, and how to avoid creating new ones. The clinician answers questions from the team members, and explains the best ways for the project to proceed. The clinic is a hands-on workshop using material from the real project. In 1994 we ran two project clinics for the PKP project teams. One clinic reviewed a project data model and answered questions about alternative ways of using the modelling technique. The next clinic was on the subject of defining and controlling inter-project interfaces. Both clinics were effective in meeting their objectives and plans were made to run a series of clinics during 1995. It was then that we considered ways of how to make the clinics most effective. Considering the large number of projects involved, it was clear that the same questions were likely to be raised by different people, and repeating the same work is not an effective use of external consultants. PKP would be gaining more from their investment in the clinics if there was a way of making the experience from each clinic easily communicable to whoever needed it. We needed a way of gathering the answers to clinic questions and a technology transfer mechanism for making that knowledge available when needed. We proposed to solve the problem by using the 1995 clinics as a way of "growing" internal consultants. Training the Internal ConsultantsAt the start of 1995, 14 developers (at least one from each of the nine locations) agreed to do the training to become internal consultants. The training takes the form of: attendance at all of the project clinics, special technical sessions, sessions on how to do technology transfer. By the end of the year the aim is for each internal consultant to be able to run his or her own project clinics. Figure 1 summarises our plan for running the clinics.
Clinic participants are members of the project team for whom the clinic is being run together with the fourteen technical consultants. All clinic participants must have attended core analysis and design skills courses. Important facilities are a quiet room with plenty of writing surfaces: whiteboards, blackboards, flip charts. We start by stating and reviewing the aims of the clinic and explaining the structure that we have designed to address those aims. The project team members raise technical questions and present specifications for review, we work together to answer all the questions and to provide guidance for the project. After the project team's questions have been answered, we have a review session with the technical consultants. We talk about the questions that were asked and how we answered them. We review the technical topics that were discussed and make sure that everyone has the understanding necessary to answer the questions. We also use these sessions to teach technology transfer skills like: how to identify the real question, how to identify a useful abstraction, how to answer questions, effective listening. After the clinic we review all the notes and models built during the clinic and produce written guidelines for the project team. We also package the experience from the clinic so that it can be used by the internal consultants when running future clinics. We organise the material into subject matter related groups called clinic modules. The modules take the form of slides (pictures, summaries, example models) that can be used in clinics and consulting sessions together with a detailed consulting guide. Some clinics produce new clinic modules, some update existing modules. We send copies of the clinic modules to the technical consultants and ask them to review them before the next clinic. We ask them to tell us whether we can make the material more usable for them. We also remind them that, when they are running their own clinics, they will have the responsibility for producing and updating the clinic modules. The timetable for the 1995 project clinics is:
Between the June and September clinics each technical consultant was asked to build up experience by running a project clinic in his or her location. The ResultsWe kept a record of all the questions (a total of 114) that were asked at the first 4 clinics, here they are summarised into high level groupings:
The clinic session on each of the questions involved:
The variety and spread of the questions illustrates how the technical consultants were exposed to a wide range of topics. After the January clinic we built 6 clinic modules which were reviewed by the technical consultants and discussed at the April clinic. At the time of writing, after the September clinic, we have captured the clinic experiences by building the following 14 clinic modules:
Each of these modules contains from 15 to 25 slides and includes a detailed consulting guide. Wherever possible the consulting guide refers to the question and project that prompted the need for that portion of a clinic module. For instance there could be a note that says: "The Wagons Inventory Project, raised this question because there was conflict between different users' requirements." The idea is to remind the consultants of the circumstances of the question in order to help them recall as much as possible about what happened at the original clinic/s. Apart from being an aid to running project clinics, another function of the clinic modules is to act as a communications device between technical consultants. Every time a consultant runs a project clinic he or she is expected to produce material to update and enrich the current library of clinic modules. As we gather more examples from projects, it is likely that module 13, PKP Examples, will be subdivided into smaller, subject matter related groups. The integration of new clinic material will be the responsibility of one of the technical consultants attached to the quality assurance team. After the June project clinic, each of the technical consultants was asked to conduct a project clinic, produce a report and raise any questions about the form or conduct of the clinic. In September the consultants presented their clinic experiences. Each consultant explained his or her plan, showed us the material that he or she had used and told us what had happened and what had been learnt as a result of running the clinic. For example, one consultant planned to run a clinic to explain the data naming conventions and project scoping to 9 project staff. She learnt that her clinic plan was too ambitious and she would have done better to restrict herself to one topic. In the clinic report, the consultant says "Naming conventions did arouse a lively discussion.....Since the discussion went on, I was unable to cover the second topic". Each of the clinic reports provided useful insights and the consultants had a good opportunity to learn from each other. During the last year, the 14 developers have become a strongly cohesive team of technical consultants. They have all learnt new technical skills in parallel with technology transfer skills and most importantly have improved their ability to listen to, ask and answer questions. As one consultant said: "It was good experience, though not an easy one. But it is always most difficult to start". ConclusionsOur experience has taught us that the skill that is most difficult to learn is the ability to think in abstractions, especially the high level abstractions needed for successful object-oriented systems development. When learning a new technology people need tangible, physical characteristics in order to relate the new technology to their world. We have addressed this problem by encouraging the consultants to consciously take multiple viewpoints of each of the problems presented to them. In other words, no viewpoint is more "right" than another, they are just different for different purposes. This is the most difficult single concept to learn. Developing an acceptance of multiple viewpoints builds up the confidence and ability to take the more abstract viewpoints which are necessary to take advantage of concepts like reuse. Development of these abstraction abilities need training in core skills independent of method or tool, plus the opportunity to apply the core skills on a project. The learning curve can be minimised by a feedback loop provided by the internal consultants and the project clinics. To provide a common starting point, all new developers will be trained in core analysis and design skills. The internal consultants will continue to work on projects and will also spend part of their time running project clinics to answer the developers' questions. The training and experience that the consultants have had qualifies them to be able to replace the external consultants in answering many of the common questions raised by project groups in their environment. The consultants will use the growing body of clinic modules as a way of capturing and communicating experience on PKP projects. As part of their continuing training it is important that the consultants continue to meet as a team to review their progress and discuss new clinic module material that they have created. As the project groups become more experienced it is likely that they will raise more advanced questions. The involvement of external consultants should be limited to answering questions that the internal consultants need help with. External consultants should be used as a way of introducing new techniques and tools to the organisation. Once a question has been asked and answered, PKP has the mechanism in place to record and communicate that knowledge. Internal consultants, project clinics and clinic modules provide a means of learning by and reusing experience. ReferencesDeMarco Tom and Tim Lister, Peopleware - Productive Projects and Teams. Dorset House, New York. 1987.
Gause, Donald and Gerald Weinberg, Exploring Requirements - Quality Before Design. Dorset House, New York. 1989.
Jackson Michael, Software Requirements and Specifications , a lexicon of practice, principles and prejudices. Addison Wesley, ACM Press, New York. 1995.
Lipinski Adam, Integrating Users With New Techniques When Overhauling a Management Information System. The First European Conference on Software Methods. London U.K. Presented by Technology Transfer Institute and The Atlantic Systems Guild, 18-20 October, 1994.
Palmer John, Remembering the Client. In Object Magazine, 5(5), September 1995, Page 24.
Robertson James and Suzanne, Complete Systems Analysis: the Workbook, the Textbook, the Answers. Dorset House New York. 1994.
Robertson Suzanne, Visibility: The Key to Quality Improvement. In IEEE Software, Volume 12, Number 4, 1995, Page 95.
|