EuroSPI98 
How to Reap the Business Benefit from SPI 
European Software Process Improvement
SPI and People Management
Category Index
Rated Newspaper Supported by EU Project 

Personal Software Process implementation

In a production environment

Stavros K Menegos, MSc
Computer Logic SA, Senior S/W Architect
Dr. Charalampos Avratoglou
Computer Logic SA, S/W R&D Director
 

Chapter 1: Introduction

Findings of the ESSI Process Improvement Experiment (PERSPI) will be presented, in the context of the overall effort of Computer Logic towards Software Process Improvement.

PERSPI is an experiment that aims at improving the way individuals perform their day-to-day activities in the context of software development. More specifically, PERSPI is an attempt to introduce the PSP methodology in an industrial environment, putting emphasis on its gradual employment in a real-life project, rather than on an introduction through formal and long-term training.

The presentation gives an overview of the environment on which the experiment is applied, i.e. Company’s business area and strategy, the objectives of the experiment and the baseline process characteristics. Next the PIE’s structure is given and the findings and lessons-learned are presented. Finally future actions and areas of investigation are discussed.
 

Chapter 2: Project Description

Business & Products

Computer Logic S.A.’s main function is to produce, market, distribute and support business application software products. The produced software products are: Furthermore, the company’s software development department During the last three years the company is dealing explicitly with the improvement of its development process, focusing initially on the software-engineering field, and then, on the organisational - managerial infrastructure of its software development process.

The above efforts where formed to support the business strategy for a development process based on State-of-the art technology, Software Reuse and Process Repeatability.

The PERSPI PIE has been designed to complement the above efforts, addressing the finest instrument of the software development process, the individual developer.
 

The starting scenario

The current mainstream development process is code-named the OMEGA process. The figure SME.1 presents a schema of this structure.

Fig SME.1: Omega Process

In the software-engineering field a comprehensive OMT-based object-oriented methodology is currently used. A set of tools are used including an upper CASE tool, requirements-features-development items tracking database, a version control tool and an effort tracking and measurement tool.

The language is C++ and visual programming tools are used for the user-interface parts. Productivity is greatly enhanced by an in-house developed repository-based, OO-aware, dedicated application framework (the OMEGA framework) which encapsulates the generic application architecture and provides a set of reusable components. The framework also encapsulates a host of standardised quality rules that apply to the user and to the application developer interface.

The Organisational and Process infrastructure has been reorganised according to the CMM model and has been assessed as a level-2 with traces of level-3 process. Additionally the company is ISO-9001 certified for the development, maintenance and support of S/W.

The above top-down approach to process improvement, while promising and essential, seems to have low penetration to the micro-processes of individual developers, while it presents a significant cost for managerial overhead. On the other hand, the size of the development department and the traditional reliance on individual developers for quality and efficiency justify the need of improving the individual developer’s process, and this idea has immediately gained management commitment.
 

PERSPI Objectives

The main objective of PERSPI was to facilitate Computer Logic’s process improvement by applying software process best practices at the individual level.

It was anticipated that the successful introduction of Personal Software Process principles would improve both product quality, development efficiency and productivity by introducing best practices at the finest level of the development process, the individual developer.

It was also expected that this approach would directly involve developers in process improvement and would facilitate the institutionalisation of several improvement efforts done in the past in the software engineering, the quality assurance and the process management fields.

The following were expected at the end of the PERSPI project:

From the business point of view, the driving target was to improve product quality, predictability and development efficiency by enhancing individual developer process skills while reducing the managerial overhead. This improvement approach, at the individual level, is considered most compatible with the company’s size and tradition.

The reference points and desired outcome determining the success of the experiment for the experiment have been set:

The criterion for adoption of PSP at large, was set to be able to demonstrate that the investment per developer could be covered by the productivity gains with-in an approximately six-months period.
 

Chapter 3: PERSPI Experiment – Case study

The project of introducing the PSP in the Omega S/W Development process consisted of four phases. In the first phase a pilot team was assembled and acquired training to the PSP. In the second phase, the PSP process was evaluated in the context of the Computer Logic’s needs and targets and in the context of the S/W development Framework and infrastructure. Upon the modification and customisation of the PSP the new process (modified PSP) was applied and monitored in the S/W development process of certain core projects. In the third phase the results of the PSP were assessed and evaluated according to the improvements in the quality of the delivered S/W, the productivity and the predictability. In the fourth phase the PSP was introduced into the process of MIS Reports of the Omega development life cycle. The process of the development of MIS reports on top of the Omega applications has many common characteristics with the development of S/W code and is of strategic importance for the success of the applications and for the achievement of high degree of customer satisfaction. Thus, an improvement in the quality and productivity of the individuals involved in this process was crucial.
 

Phase 1: PSP Training

In order to be able to apply PSP in our company development process we had to acquire training on the PSP. For this purpose, we selected the advance academic course for PSP given by the Carnegie Mellon University, Distance Education Program. The course is specifically designed for professionals and is given over the Internet. The duration of the course was eight weeks, which in our case was expanded to ten weeks. The course consisted of eight lectures and seven lab projects that had to be submitted every week. One significant advantage we had with this program was that we were allowed to form our class of students that attended this course (Computer Logic’s class). Every week there was a chat session (over the Internet) between the class members and the Professor and his assistant who were assigned to the class. The purpose of this session was to discuss any problems with the PSP, address questions to the professor and in general to exchange ideas and considerations on applying PSP in a production environment.

The next step was to select the developers that would form the PSP class and participate in this distance learning course. We selected five Senior S/W Engineers that were involved in the development of core S/W Omega projects. In this team, the Omega Framework S/W Architect was also included. This role is responsible for the Analysis, Design and Implementation of the key features of the Omega library Framework on top of which all the Omega applications are implemented. All of the engineers had a very good experience in C++ programming language and in the development of high-quality S/W products under strict deadlines. They were also heavily involved in the previous Process Improvement efforts, mainly the CMM Process Improvement Project and the ISO 9000-1 certification. That means, that the necessity for the process improvement in the finest level of the developer was realised and very well understood by the whole team.

The participation in the PSP class required a significant amount of time and effort for the successful completion of the course. The estimated time was twenty hours per week per developer but the actual effort averaged to twenty-five hours. However, the training took place during a very demanding period, which did not allow for proper buffering of the developers from their projects. Thus commitment and self-sacrifice was necessary for the success of the training.

One of the advantages of having the education program in parallel to the work was that even from the first lectures on the PSP the developers applied certain aspects and guidelines in their everyday S/W development practice. This was a promising issue for the success of introduction of the PSP in our production environment.

A very important criterion for the construction of the pilot PSP team was the ability of the team members to train the whole Omega S/W development community to the PSP in the context of the existing practices and needs. For this purpose, we assembled a second team of five S/W Engineers who were recently introduced in the Omega S/W development process. Two members of the first pilot team trained this second team on the PSP. The education program for the second team started four weeks after the commencement of the PSP course. The reasons for which we established this second team were:

The remote training of the team had very good results. The participants managed to complete all the study and the course-works in due time in parallel to their full scheduled product work (Appendix B contains certain indicative results from the PSP training course). This is a critical point because full commitment and understanding of the responsibility the developers undertake is required for the completion of the training. The chat sessions proved very helpful because they gave the opportunity to share ideas between the academic and the professional perspectives of PSP. One problem we did face with the training material is that the programming exercises and the programming environment used in the course did not correspond to the tools and programming environments that are in use in modern production environments. Even though the exercises have the purpose to demonstrate PSP principles they could have been more complex and realistic. These thoughts and suggestions have been shared with the PSP course staff and they plan to modify the structure of the lab work projects.

As far as it concerns the training of the second team, this was a more difficult task to complete. The main problem was that the commitment of the participants to this effort was not as high as necessary. The result was that only two of the five developers actually completed the course. The second problem was that the instructors (two developers from the pilot team) did not have the available time to thoroughly examine the submitted lab work. However, as explained in the previous paragraphs this training effort gave us better insight on the possible implications we would meet when introducing PSP in junior members of the Omega development process. Actually we reached to the conclusion that the PSP training should be combined with the education – training of the new comers in Omega processes and Infrastructure. Another interesting conclusion is that having the PSP training performed by external institutes through distant learning is a better motivation for the participants for they are individually awarded.
 

Phase 2: PSP Evaluation – Modification

The next phase in the PERSPI experiment was to evaluate the PSP in the context of the Omega Development Framework and Process. For this purpose a committee was assembled that consisted of the five members of the pilot team, one member from the second team and the R&D Director who is responsible for the Omega Development process. The task of the committee was to thoroughly examine the pros and cons of the PSP and how the PSP will be modified and introduced into two kernel projects of the Computer Logic.

The main characteristic of the Omega S/W development process is the ability to quickly address the diverse needs of the enterprises and to develop competitive products for a wide range of business domains. The development process is assisted and supported to large extent by our custom developed library framework on top of which applications are developed.

The PSP as a means for improving predictability, productivity and quality is very promising. However, introducing and integrating the PSP as described in theory our development process and framework has certain advantages and disadvantages. The cons and pros are summarised as following:

Cons

Pros Having discussed and considered the aforementioned issues concerning PSP the next step was to modify the PSP in order to be easily applied in two kernel projects of the Omega development process. The pilot projects that have been selected for the application of PSP were: This project was selected because the framework is the foundation of all the Omega applications. The on-time delivery of high-quality Omega versions is crucial for the success of all the projects. Furthermore, all the guidelines, reviews and checklists that apply for the Omega framework are also applicable to all the applications for the development follows similar patterns and it is based on classes and constructs of the Omega. After all this was the reason for which Omega development platform was designed and implemented. The next step was to modify PSP to address our needs. The modified PSP was designed by taking into account the pros and cons of the PSP as well as the capabilities of the existing Development methodology and tools. The requirements of the modified PSP were as following: The modified PSP is based on PSP version 1.1 as designed by Watts Humphrey [1] and in the Carnegie Mellon PSP lecture notes [2]. The majority of the scripts and the template forms were introduced in our PSP without any modifications. However, we did eliminate the entries that had to do with Base LOCs, Added, Deleted and Modified LOCs, Object LOCs and Reuse LOCs. We gave the modified PSP the alias of CL_PSP1. For this first version we introduced the Object’s classification as described in Appendix A: Table SME.1. With this categorisation and with the estimation of the number of objects in the project it is possible to provide estimation for the size and the effort for the project using the PSP PROBE method.
 

Phase 3: Applying CL_PSP1

The modified PSP, CL_PSP1 was applied in the Omega Development library framework and in the Omega Finance business module. In order to facilitate the tracking of CL_PSP1 data we extended the structure and the functionality of three main utilities used in the Omega Development Process. These are: This system is responsible for tracking all the development (Analysis, Design, Implementation and Testing) issues that are related to a specific project per developer. The information stored per issue was extended to accommodate the following CL_PSP1 data: This system is responsible for tracking the effort spent by each individual on every day activities that are related to projects or other responsibilities. For the developers involved in the pilot projects (Omega Library and Omega Finance) a new activity has been added called PSP, in order to be able to measure the overhead imposed by the introduction of PSP. This system is responsible for tracking down the Requirements (Analysis and Design) for every project undertaken. This system has been modified in order to accommodate the following CL_PSP1 data (for the Categories of objects used in the CL_PSP1 refer to Table SME.1): The next step was to train all the developers (four S/W Engineers) involved in these projects on the CL_PSP1. The training was based on the curriculum of the PSP1.1 course that the pilot has attended. This first effort of training Omega developers in CL_PSP1 gave us a better insight of the anticipated problems we would face when introducing PSP in all the Omega development projects. The main problem we faced was to convince the developers for the necessity of using PSP. They considered PSP as an effort of the top-level management to pinpoint the way they should work rather than a means to improve their-selves. This form of resistance and scepticism was expected but it was overcome by having the two pilot teams organise a free discussion session in which they explained and shared their impressions and results from the PSP course.
 

Phase 4: Introducing PSP in MIS Reports

The Reports and Management Information Systems components development process has many common characteristics with the S/W – code development process. The Omega development infrastructure has focused on the improvement of the S/W process. However, the Reporting and Information Processing subsystems (OLAP, Data Drilling, Data Warehouse) on top of the Omega applications have become very important for the overall success of the products being delivered and for achieving high degree of customer satisfaction (Total Solutions).

The productivity of the MIS Reports development process was poor and the quality of the delivered systems was rather low. In order to improve this process we performed two combined actions. The first one was to improve the technological infrastructure (Omega Development platform) and to provide the Report developers with a powerful platform that encapsulates the difficulties of Report writing and facilitates this process. The second action was to experimentally introduce CL_PSPR1 into the Report development process.

The CL_PSPR1 process is a modified version of CL_PSP1 that has been tailored and customised to address the needs and the individual characteristics of Report development process. This was a rather interesting experiment with very promising results. First of all we had to provide the semantics of the mapping of the S/W Code world to the Report development world. For example the concept of object was mapped to the concept of the Report or Report Element (Cross-tab report, Section Element, Group Element, etc.). The next step was to provide the appropriate categorisation of Report Elements and their estimated effort based on the data we gathered from the Report Development process. The categorisation of Report Elements is described in Appendix A: Table SME.2.

Furthermore, we introduced the following Defect Type standard for the defect categorisation in the Report Development process as described in Table SME.3.

The action of compilation was mapped to the action of Preview – Run of the Report. Testing remains the same in principle with the CLP_PSP1 (we used the same Test Templates and test forms as in CL_PSP1) since the semantics of testing is to validate that the delivered item performs correctly according to the specifications. Regarding the reviews and the checklists, CL_PSPR1 has also a Design Review and a Design Checklist while instead of Code review it defines a Report Layout Review (Report Layout checklist) and a Database Processing Review (Database Processing checklist).

The report developers were not formally trained to PSP but only to CL_PSPR1 process and to the significance of the introduced metrics. Since CL_PSPR1 is rather a simple and straightforward process with minimal overhead no significant resistance has been identified. On the contrary, the report developers showed enthusiasm and commitment to fill-in and take advantage of the collected data.
 

Chapter 4: Measured Results and Lessons Learned

The CL_PSP1 was applied in the Omega development Library for a period of four months during which three major versions and three minor versions of the Omega library framework were released. Concerning the Omega Finance project, CL_PSP1 was also applied for the same period of time during which four internal versions (development increments) have been released.

The raw data from enacting CL_PSP1 were processed and interpreted and we reached to the following results:

Concerning the Report Development process the CL_PSPR1 was applied for a period of three months in the development of MIS components for the Omega Accounting business module. The results obtained from the enacted CL_PSPR1 data were quite promising: The results we obtained from applying CL_PSPR1 were very promising and proved that the experiment was successful. The top-level management was convinced about the benefits we would gain from further improvement of CL_PSP_R2 (version 2) and from the introduction of PSP in other development tasks apart from coding.
 

Conclusions

The experiment of introducing PSP in the Omega production environment has shown promising results and it has indicated ways and practices to improve the company’s S/W Development process.

PSP has been proven to be a quite effective approach in improving the development process from CMM Level 3 to Level 4. There is a significant gap between these levels that has mainly to do with measurements (metrics) and discipline. PSP manages to make the developers believe in the importance of certain measurements thus reducing the resistance and the overhead of performing Level 4 activities. Furthermore, the measurements introduced by PSP are at the right granularity level so that statistical processing would facilitate the control of the process.

Through the experiment it became evident that a repeatable process infrastructure (CMM Level 2) substantially supported the use of PSP. In our case, relatively simple modifications to existing processes and tools provided the means to smoothly enact PSP.

PSP Training in parallel with the every day workload and commitments has presented major obstacles to the developers which were overcome with the exceptional commitment from their part. However, this can not be considered as the normal case so top management commitment and proper scheduling of the training period are required.

The measurements collected from the use of CL_PSP1 and CL_PSPR1 were in general less than what has been set as target. However, the improvements are still significant and they are certainly promising. Furthermore, the benefits from the PSP are manifold indicating that the systematic use of PSP will improve the performance and maturity of the Omega development process at large.

In our case the use of PSP is justified and recommended in the development of core, critical or highly reusable components, where the cost of errors and the need for accurate time estimations is very large. At the current state, top management is convinced about the ROI benefits of applying PSP on the above type of development.

The formal PSP training is not performed at the initial Omega training but rather is provided as an incentive to best performing developers so that they can be used in critical developments. However, the PSP concepts and the CL_PSPxx processes have been included in the Omega training curriculum.

Future actions include the refinement of CL_PSP1 and CL_PSPR1 and the training of more developers in PSP. Furthermore, we plan to introduce PSP in more processes and activities of the Omega infrastructure such as the Customer Implementation Services process.

Having PSP introduced into core processes of the Omega our following process improvement efforts will be targeted for the CMM Level 4.
 

Appendix A: CL_PSP1 and CL_PSPR1 tables

 
Object Category
Description Estimated Effort
CLISUD_SIMPLE Simple UI component for the handling of high level domain object 2 – 4 hours
CLISUD_MEDIUM UI component of medium complexity for the handling of high level domain object 4 – 8 hours
CLISUD_COMPLEX UI component for the handling of two or more high level domain objects or objects with complex interaction with the user 8 – 16 hours
CL_EXPLORER UI component for the presentation and management of multi-dimensional information in hierarchical layout 1 – 2 hours per actual level
CL_SCROLLER UI component for the presentation of information in a tabular layout 1 – 4 hours 
CLUI_CUSTOM Custom UI component 2 – 8 hours (depends on the complexity of the controller)
CLDOM_SIMPLE Domain object of zero – low complexity 1 – 2 hours
CLDOM_MEDIUM Domain object medium complexity and medium interaction with other objects. 2 – 8 hours (depends on the number of associations to other objects and on business domain)
CLDOM_COMPLEX Domain object high complexity and heavy interaction with other objects of the system 8 – 32 hours 

Table SME.1: CL_PSP1 Omega Object Categories – Effort Estimation.
 
 

Report Element Category

Description Estimated Effort
CLR_SIMPLE_DBOBJ A report based on low complexity database processing 0,5 – 1 hour
CLR_MEDIUM_DBOBJ A report based on medium complexity database processing 1 – 3 hours
CLR_COMPLEX_DBOBJ A report based on medium complexity database processing (either large number of database objects or complex queries) 3 – 16 hours (depends on the report’s requirements and domain’s complexity)
CLR_SUBREPORT_OBJ A report object that is interfaced to the main report 1 – 2 hours (plus the effort for the sub-report development)
CLR_GRAPH_OBJ A graphics object included in the report 0,5 – 1 hour
CLR_CROSSTAB_OBJ A cross-tab object included in the report 1 – 2 hours
CLR_DESIGN_OBJ All the layout elements that implement the UI of the report 1 – 8 hour (depends on the complexity of the UI requirements of the report)
CLR_GRP_SORT_OBJ Grouping and sorting aspects of a report 1 – 2 hours

Table SME.2: CL_PSPR1 Omega Report Element Categories – Effort Estimation.
 
Defect ID
Defect Description
10
Design object error
20
Design object logical error
30
Database query processing error
40
Database query processing logical error
50
Layout – UI error
60
Report’s logic error
70
Parameter error
80
Omega Interface error
90
Configuration system error

Table SME.3: CL_PSPR1 Defect Types in Report Development Process.
 
Defect ID
Defect Description
10
Documentation
20
Syntax
30
Build, Package
31
Configuration Management
40
Assignment
50
Interface
51
COM – OLE
60
Checking
70
Data
80
Function
90
System
100
Environment

Table SME.4: CL_PSPR1 Defect Types in Omega Development Process.
 

Appendix B: PSP course aggregated results



 

Chart SME.1: Accuracy of the size estimation throughout the course-works. The two lines should be as close as possible increasing thus the predictability of size.


 

Chart SME.2: Similar to SME.1 with the difference that it demonstrates the accuracy of time estimation.

Chart SME.3: The percentage for each type of defect injected in the Coding phase. These data would form the basis for the compilation of the appropriate Code Review Checklists. The PSP 1.1 and CL_PSP1 categorisation of errors is shown in Table SME.4


 

Chart SME.4: The percentage for each type of defect that is removed in the Test phase. These data would guide the construction of the most appropriate Test cases instructions for the testers. The feedback provided to the developer helps him to understand to which type of errors is more vulnerable.

Chart SME.5: The distribution of the defects found in Code Review per defect type. This information along with the data from Chart 4 form the guide lines for the Code Review Checklists.


 

Chart SME.6: Comparison of defects found in Code Review versus Compile phase. We should try to maximise the number of defects found in Code Review and minimise those found in Compile phase.


Chart SME.7: Percentage of defects found in each phase. The ultimate goal of PSP and therefore CL_PSP1 is to minimise the number of defects found in Test because they are more expensive to fix.


Chart SME.8: The percentage of defects removed in each phase. Similarly, PSP’s goal is to remove defects in the early stages of development.
 

References


[1] Watts S. Humphrey, A Discipline for Software Engineering, Addison Wesley.
[2] Carnegie Mellon University, Personal Software Process, lecture notes
[3] Avratoglou Ch., Process Management Improvement for Software Development, ESSI Project: 21551, Final Report, 25 Aug 1997 (http://www.esi.es/VASIE/Reports/All/21551/Report/index.htm)


Partners in EuroSPI

Editors
ISCN LTD, ISCN GesmbH, Schieszstattgasse 4/24, 8010 Graz, and Coordination Office, Florence House, 1 Florence Villas, Bray, Ireland, office@iscn.at, office@iscn.com, office@iscn.ie, Editing Done: 19.7.2002