International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 33 Application and Evaluation of The Personal Software Process Hamdy K.Elminir#1 , Eman A.Khereba *1 , Mohamed Abu Elsoud#1 , Ibrahim El-Hennawy#2 1 Computer Science department, Mansoura University, 60 El Gomhuria st., Mansoura, Egypt 2 Computer Science department, Zagazig University, Zagazig, Egypt *Corresponding Author: eman.khereba@yahoo.com Abstract— S oftware organizations differ from other manufacturing organizations, since these software organizations depend mainly on individuals and team works rather than machines or raw materials. Enhancing individuals and team works capabilities is the key solution to improve quality and productivity levels. Hence, Individual engineers need a quality improvement technique to improve their performance by bringing discipline to the way they develop software and manage their work to produce quality products within budget and on schedule. This paper will propose a case study showing the application and evaluation of the Personal S oftware Process (PS P), which recommends applying some skills and methods that concerns the individual engineer her/himself, like understating the meaning of work quality, and how to estimate time and effort in order to be able to make the right project plans which contain some estimated data that are close to the actual data. Hence, in our study, PS P will focus on two principles, improving individuals’ productivity, and products and process quality. Index Term— PS P; Personal software process, Productivity, Productivity time, Interruption time, Quality, size estimation accuracy, effort estimation accuracy, process yield, defect density, COQ; Cost of Quality, LOC; Lines of Code I. INT RODUCT ION The success of organizations that produce software-intensive systems depends on well managed software development processes. Implementing disciplined software methods, however, is often challenging. Organizations seem to know what they want their individuals to be doing, but they struggle with how to do it. The Personal Software Process (PSP) was designed to provide both a strategy and a set of operational procedures for using disciplined software process methods at the individual and team levels. Organizations that have implemented the PSP have experienced significant improvements in the quality of their software systems and reduced schedule deviation [1, 2]. The goal of the Personal Software Process (PSP) is to help individual programmers improve their own, individual software development process by using a disciplined and measurable programming skills improvement process. The PSP process steps the individual engineer through a series of small projects during which the engineer collects measurements on defect rates, defect types, and other indicators of engineer productivity and effectiveness in order to better understand and appreciate their strength and weaknesses as an engineer. This paper includes detailed presentations of the analyses conducted on size and effort estimation accuracy, process yield, defect density, and productivity. The paper also includes other observations uncovered during the statistical analysis and study conclusions which contain experiences of and benefits realized by first-time PSP individuals. We hope that by walking through this first-time individuals’ journey of using the PSP, we illustrate how the PSP creates an environment where skilled engineers can apply disciplined methods working on a cohesive and dedicated team. II. RELAT ED W ORK Current research on software development processes intends to define the process elements that constitute good practices, leaving implementation and enactment of the process to organizations. Some of these approaches include CMM [3], CMMI [4], SPICE [5] and Bootstrap [6]. However, these models are very descriptive in the sense that they explain essential attributes that would be expected to characterize an organization at a particular maturity level, but they specify neither how to improve nor the specific means to get into a particular maturity level. But, as dis cussed by the research community, also important is the way processes evolve with the changing needs of the development organization. In addition, projects must adopt the process with some level of detail for the organization. Process modeling techniques are useful in defining the process, especially in the upper levels of maturity models like CMMI. Curtis, Kellner and Over discussed some approaches using process modeling to support process improvement, software project management and Process-centered software engineering environments (PCSEEs) [7]. The Software Process Management System (SPMS) development identified and addressed the need for process models to be reusable, to support multiple views, to recognize process, product and human interactions to sup port process changes during development projects, and to support historical recording of the process over long periods of time [8]. Until shortly after World War II, the quality strategy in most industrial organizations was based almost entirely on testing. Groups typically established special quality departments to find and fix problems after products had been produced. It was not until the 1970s and 1980s that W. Edwards Deming and J.M. Juran convinced U.S. industry to focus on improving the way people did their jobs [9, 10]. In the succeeding years, this focus on working processes has been responsible for major improvements in the quality of automobiles, electronics, or almost any other kind of product. The traditional test-and-fix strategy is now recognized as expensive, time-consuming, and ineffective for engineering and manufacturing work. Even though most industrial organizations have now adopted modern quality principles, the software community has continued to rely on testing as the principal quality 96010-1212 IJBAS-IJENS © December 2009 IJENS IJENS International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 management method. For software, the first major step in the direction pioneered by Deming and Juran was taken by Michael Fagan when in 1976 he introduced software inspections [11, 12]. By using inspections, organizations have substantially improved software quality. Another significant step in software quality improvement was taken with the initial introduction of the Capability Maturity principal focus was on the management system and the support and assistance provided to the development engineers. The CMM has had a substantial positive effect on the performance of software organizations [15]. A further significant step in software quality improvement was taken with the Personal Software Process (PSP) [13]. The PSP extends the improvement process to the people who actually do the work—the practicing engineers. The PSP concentrates on the work practices of the individual engineers. The principle behind the PSP is that to produce quality software systems, every engineer who works on the system must do quality work. The PSP is designed to help software professionals consistently use sound engineering practices. It shows them how to plan and track their work, use a defined and measured process, establish measurable goals, and track performance against these goals. The PSP shows engineers how to manage quality from the beginning of the job, how to analyze the results of each job, and how to use the results to improve the process for the next project. III. PROBLEM DEFINITION A. The problem of improving personal practices Perhaps the most critical issue in improving the state of software practice is getting software engineers to use improved methods. This is a nontrivial problem, particularly because even intelligent people often will not do things that common logic, experience, and even hard evidence suggests that they should. Many software engineers thus do not use known best methods, even when their managers tell them to do so. The reasons for these both explain why process improvement is so difficult and suggests logic for addressing the problem. In summary these reasons are: (1) Once engineers have learned how to develop small programs that work, they have also established some basic personal practices. (2) The more engineers use and reinforce these initial methods, the more ingrained they become and the harder they are to change. (3) Engineers have found that many impressivesounding tools and techniques do not provide their promised benefits. It is therefore hard to convince them that some new methods will help them to do better work. (4) Since no one generally observes the methods software engineers use, no one will know how they work. Thus engineers don't have to change their working methods if they don't want to. B. Solution 34 The problems of improving the personal practices of software engineers were our main goal, so, when we had the opportunity, we started a study of how process improvement principles would apply to individual software work. The purpose of this paper is to provide results on the use of the PSP. The paper starts with an overview of the PSP to provide a context for the results here. This is followed by a detailed discussion and analysis for the PSP first principle, which concerns individuals’ interruptions handling in order to increase their actual working time and decrease their interruptions time, another discussion and analysis is being held in order to cover the second PSP principle which concerns increasing individuals’ productivity, and product and process quality using PSP planning and measurement forms, Development and data collection processes are also included to provide additional context for understanding the results. Next, we summarize the performance after applying two medium sized projects, with two s imilar tasks for each engineer, of a medium size software organization that has practiced the PSP. Then, we conclude our analysis findings and suggest improvements for future work. IV. PERSONAL SOFT WARE PROCESS (PSP) The Personal Software Process (PSP) provides engineers with a disciplined personal framework for doing software work. The PSP process consists of a set of methods, forms, and scripts that show software engineers how to plan, measure, and manage their work. The PSP is designed for use with any programming language or design methodology and it can be used for most aspects of software work, including writing requirements, running tests, defining processes, and repairing defects. When engineers use the PSP, the recommended process goal is to produce zerodefect products on schedule and within planned costs. A. PSP Basics The PSP design is based on the following planning and quality Basics: (1) Every engineer is different; to be most effective, engineers must plan their work and they must base their plans on their own personal data. (2) To consistently improve their performance, engineers must personally use well-defined and measured processes. (3) To produce quality products, engineers must feel personally responsible for the quality of their products. Superior products are not produced by mistake; engineers must strive to do quality work. (4) It costs less to find and fix defects earlier in a process than later. (5) It is more efficient to prevent defects than to find and fix them. (6) The right way is always the fastest and cheapest way to do a job. B. PSP Structure The structure of the PSP process is shown conceptually in Fig. 1 [16]. Starting with a requirements statement, the first step in the PSP process is planning. There is a planning script that guides this work and a plan s ummary for recording the 96010-1212 IJBAS-IJENS © December 2009 IJENS IJENS International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 planning data. While the engineers are following the script to do the work, they record their time and defect data on the time and defect logs. At the end of the job, during the postmortem phase (PM), they summarize the time and defect data from the logs, measure the program or task size, and enter these data in the plan summary form. When done, they deliver the finished product along with the completed plan summary form. 35 A. PSP first principle 1) Handling interruptions: In the PSP, engineers use the time recording log to measure the time spent in each task. In this log, they note the time they started working on a task, the time when they stopped the task, and any interruption time. For example, an interruption would be a phone call, a brief break, or any other type of interruptions. By tracking time precisely, engineers track the effort actually spent on project tasks. Since interruption time is essentially random, ignoring these times would add a large random error into the time data and reduce estimating accuracy. The form used for recording time is called ―Time Recording Log‖. The top of the form is called the header and it has spaces for engineer’s name, department, and the date of header information completion. The columns in the body of the form are for recording the time data. Each time period is entered on one line of the form as follows: Date: the date of doing some activity, like programming or reading. Start: The start time of the activity. Stop: The stop time of the activity. Interruption Time: Any time lost due to interruptions Delta Time: The time spent on main activities, between the start and stop times, without interruptions Activity: A descriptive name for the task. Fig.. 1. PSP process flow C. PSP Objectives The PSP aims to provide software engineers with disciplined methods for improving personal software development processes. The PSP helps software engineers to: Improve their estimating and planning skills. Make commitments they can keep. Manage the quality of their projects. Reduce the number of defects in their work. The goal of the PSP is to help developers produce quality, zero-defect, products on schedule. Low-defect and zero defect products have become the reality for some developers. V. CASE ST UDY To make realistic plans, we had to apply the first principle of the PSP, which focuses on estimating and evaluating individuals’ performance then improving it in order to improve the overall productivity level in the organization. The way to improve the productivity and quality of work is to start by understanding what is currently done inside the software organization. This means that we have to know the tasks that are done, how they are done, and the obtained results. We had to track and understand the way time is currently spent. 2) Handling interruptions implementation and obtained results: Here, we began working with 5 engineers, we refer to them as ―E1‖ a project manager, two developers ―E2‖ and ―E3‖, and two designers ―E4‖ and ―E5‖; where ―E5‖ is an under training designer and this was a suitable opportunity to follow-up, analyze and evaluate her performance in general, in addition to evaluating her work productivity level. Every engineer has been exposed to fill-in this log with all activities of his working day over 4 weeks with five days per every week and working hours are 9 hours per day, then they began recording their start and stop time including their interruptions. We had to gather data of the first week firstly, and analyze them to obtain results about what is currently done, main activities for each individual, and main interruption that affect their work and waste time. After data gathering of the first week, we will have to find the percentage of time spent doing the main activities for every working day and the percentage of interruptions during that day, to show engineers their productivity percentages and what interruptions that affect their work and what are their percentages too, in order to realize what really affects their work and waste their time and also try to eliminate these interruptions as soon as possible. Here, we began to present a brief introduction or training to the individuals about this approach, and we delivered the time recording log to every one of them to begin filling-in every action happens during the working day in a timely manner. 96010-1212 IJBAS-IJENS © December 2009 IJENS IJENS International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 Before starting filling-in the time recording log, we have arranged for a meeting including the five engineers to determine their main working activities and the main interruptions that affects their work to be included in their logs. They determined their common working activities to be like, emails whether for reading or writing or attachments, browsing, reading, and talking about work, in addition to other work specifications that each individual engineer practices. About their common interruptions, they mentioned their interruptions to be like, breakfast, phone calls, prayer, talking with colleagues away from working times, lunch breaks, in addition to other interruptions that concerns each individu al like printing some paper, sudden meetings with clients, helping other colleague, going to the commerce chamber, making a change in a template or a layout design, … etc. They have also determined their common working activities to have a naming convention to differentiate them 36 from interrupting actions, and this naming convention is ―W_ activity name‖ for main working activities and ―I_ Interruption name‖ for interruptions, for example ―W_ Programming‖ and ―W _Browsing‖, represent programming and browsing activities are for favor of work, in contrary with ―I_ Browsing‖ and ―I_ Lunch Break‖, which represent that time is spent in favor of interruption like browsing for entertainment or having a break for lunch. After the end of the first week, we have gathered the five time recording logs for the five engineers, and began to read them carefully in order to analyze each one’s performance; in both directions: estimating total productivity time percentage and total interruption time percentage. Table I shows the time recording logs for E2 during his first week of work after having his first training on how to record in the time recording log. T ABLE I E2’s T ime Recording Log Time Recording Log Engineer E2 Name: Department: Project Development 9-M ay Date: Date 9-M ay 10-M ay S tart S top Interruption Time 9:05 9:17 0:12 9:20 9:29 9:30 9:58 9:59 10:31 10:32 10:47 10:49 13:12 13:09 13:25 13:25 15:26 15:28 16:03 0:35 I_ Lunch Break 16:07 16:30 0:23 I_ Prayer 16:32 16:38 16:39 16:53 16:54 Totals 9:01 18:08 9:20 9:33 0:13 W_ Email 9:34 10:25 0:51 W_ Follow-up Juniors 10:27 13:15 2:48 W_ Programming 13:17 13:38 0:21 I_ Prayer 13:41 13:51 0:10 I_ Browsing 13:52 14:56 14:57 15:05 15:06 16:13 16:14 16:14 16:37 16:36 Delta Time I_ Breakfast 0:09 0:28 9:18 W_ Email I_ Talking 0:32 0:15 W_ Follow-up juniors I_ Phone 2:23 0:16 W_ Programming I_ Prayer 2:01 0:06 0:14 2:23 0:17 Activity W_ Programming W_ Talking I_ Browsing 1:14 6:25 W_ Programming I_ Breakfast 1:04 0:08 W_ Programming I_ Phone 1:07 W_ Programming 0:23 W_ Talking I_ Prayer 0:22 96010-1212 IJBAS-IJENS © December 2009 IJENS IJENS International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 11-M ay 16:37 16:50 17:13 16:49 17:12 17:22 17:23 Totals 17:54 9:32 9:53 9:54 9:58 0:04 W_ Email 9:58 13:10 3:12 W_ Programming 13:11 13:39 13:40 14:07 0:27 I_ Follow-up Juniors 14:08 14:19 0:11 W_ Reading 14:19 14:53 0:34 Programming 14:54 15:33 0:39 W_ Browsing 15:34 16:26 0:52 Programming 16:27 16:35 0:08 Phone 16:36 16:50 0:14 I_ Talking 16:51 17:06 0:15 I_ Other Interruptions 17:07 17:24 0:17 Prayer 17:25 17:42 0:17 I_ Browsing 17:43 18:19 0:36 I_ Lunch Break 18:20 18:42 13-M ay 0:09 1:52 0:31 7:06 0:21 Totals 12-M ay 0:12 0:22 I_ Talking I_ Lunch Break W_ Browsing W_ Reading I_ Breakfast 0:28 W_ Prayer 0:22 2:36 W_ Talking 6:21 9:08 9:15 0:07 9:16 9:18 I_ Breakfast 9:18 9:28 9:29 10:08 0:39 W_ Reading 10:09 12:14 2:05 W_ Programming 12:15 12:31 0:16 I_ Phone 12:32 12:53 0:21 I_ Other Interruptions 12:54 13:38 13:39 14:03 14:05 16:16 2:11 W_ Programming 16:17 17:01 0:44 W_ Follow-up Juniors 17:02 17:42 0:40 I_ Lunch Break 17:43 18:03 0:20 I_ Prayer 18:04 Totals 18:20 9:08 9:26 9:27 9:50 0:23 W_ Email 9:51 10:57 1:06 W_ Follow-up Juniors 10:58 12:58 2:00 W_ Programming 12:59 13:22 0:23 I_ Talking 13:23 13:33 0:10 I_ Prayer 13:34 14:00 0:26 I_ Phone 14:01 14:19 0:18 I_ Browsing 14:20 14:38 0:02 0:10 W_ Email I_ Talking 0:44 0:24 2:18 37 W_ Browsing I_ Prayer 0:16 6:41 0:18 W_ Talking I_ Breakfast 0:18 96010-1212 IJBAS-IJENS © December 2009 IJENS W_ Talking IJENS International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 38 14:39 15:21 0:42 W_ Browsing 15:22 15:57 0:35 W_ Programming 15:59 16:05 16:07 18:22 0:06 I_ Prayer 2:15 Totals 1:41 W_ Programming 7:19 After recording these data during the first week, we have categorized and analyzed it to know exactly the percentage of time spent doing the main work activities and the percentage of interruptions that affects the work. Here, we have used a form called weekly activity summary like this shown in Table II which categorizes the main working activities that the engineers have frequently practiced during their first week and we have recorded them as shown in Table II, III, IV, V, and VI respectively T ABLE II E1’s Weekly Activity Summary for the first week We e k1 E1 Activity W_ Assigning Task 9-Jun W_ Browsing W_ Customer Service W_ Email W_ Followup Seniors work 0:19 0:35 3:02 0:31 10-Jun 0:05 0:24 1:57 11-Jun 0:20 0:33 12-Jun 0:14 W_ Managing Projects Tasks W_ Reading W_ Phone W_ Talking Total Time 1:03 0:16 0:22 6:08 0:16 1:03 0:43 0:24 4:52 0:53 0:26 0:15 0:14 0:17 0:14 4:57 0:56 1:28 0:15 2:11 0:59 0:22 0:18 6:43 0:48 0:16 0:17 0:16 0:24 0:21 2:22 0:58 3:16 7:36 1:45 4:48 1:45 1:13 2:02 1:39 25:02 2.15% 7.26% 16.89% 3.89% 10.67% 3.89% 2.70% 4.52% 3.67% 55.63% Date 13-Jun Totals Productivity Time Pe rce ntage 1:45 T ABLE III E2’s Weekly Activity Summary for the first week Week1 E2 Activity W_ Programming W_ Reading W_ Follow-up Juniors W_ Browsing W_ Email W_ Talking Total Time 0:09 0:06 6:25 Date 9-Jun 5:38 0:32 10-Jun 4:59 0:31 0:51 0:09 0:13 0:23 7:06 11-Jun 4:38 0:11 0:27 0:39 0:04 0:22 6:21 12-Jun 4:16 0:39 0:44 0:44 0:02 0:16 6:41 13-Jun 4:50 1:06 0:42 0:23 0:18 7:19 Totals 24:21:00 1:21:00 3:40:00 2:14:00 0:51:00 1:25:00 33:52:00 Productivity Time Percentage 54.11% 3.00% 8.15% 4.96% 1.89% 3.15% 75.26% 96010-1212 IJBAS-IJENS © December 2009 IJENS IJENS International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 39 T ABLE IV E3’s Weekly Activity Summary for the first week Week1 E3 Activity W_ Programming Date 9-Jun 10-Jun 11-Jun 12-Jun 13-Jun 4:02 3:31 4:19 3:31 3:04 Totals 18:27:00 Productivity Time Percentage 41.00% W_ Follow-up Juniors W_ Reading W_ Browsing 1:11 1:29 0:42 0:31 1:04 0:12 0:18 1:55:00 4:57:00 2:40:00 4.26% 11.00% 5.93% 0:43 1:12 1:07 1:03 W_ Email W_ Talking Total Time 0:19 0:20 0:08 0:06 0:24 1:17:0 0 0:10 0:09 0:31 0:08 5:54:00 6:30:00 5:40:00 6:35:00 5:35:00 0:58:00 30:14:00 2.15% 67.19% 2.85% T ABLE V E4’s Weekly Activity Summary for the first week Week1 E4 Activity W_ Designing W_ Reading W_ Follow-up Juniors W_ Browsing W_ Email W_ Talking Total Time 0:11 0:32 0:05 0:10 5:49 2:38 1:33 0:08 0:14 6:35 0:14 0:19 0:03 0:05 3:44 Date 9-Jun 4:51 10-Jun 1:00 11-Jun 3:03 12-Jun 3:51 0:16 0:21 0:49 0:12 0:23 5:52 13-Jun 3:44 0:18 0:57 1:52 0:27 0:28 Totals 16:29:00 1:36:00 4:21:00 5:05:00 0:55:00 1:20:00 7:46 29:46:0 0 Productivity Time Percentage 36.63% 3.56% 9.67% 11.30% 2.04% 2.96% 66.15% 1:02 T ABLE VI E5’s Weekly Activity Summary for the first week Week1 Activity E5 W_ Designing W_ Reading W_ Browsing W_ Email W_ Talking Total Time 0:09 0:16 3:09 1:33 0:08 0:14 4:12 0:19 0:08 0:29 3:59 Date 9-Jun 2:44 10-Jun 1:15 11-Jun 3:03 12-Jun 2:32 0:16 0:49 0:09 0:23 4:09 13-Jun Totals 1:48 11:22:00 0:18 1:36:00 1:52 4:33:00 0:07 0:41:00 0:17 1:39:00 4:22 19:51:00 Productivity Time Percentage 25.26% 3.56% 10.11% 1.52% 3.67% 44.11% 1:02 After categorizing these main working activities and calculating the total time spent practicing them, we had to know this time percentage out of the total required working hours all over the week, which are 45 hours weekly; 9 hours per day over 5 days for a week, in addition to the percentage of time spent practicing every working activity. 96010-1212 IJBAS-IJENS © December 2009 IJENS IJENS International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 After calculating this percentage, we have reached that the productivity time percentage for E1, E2, E3, E4, and E5 in week1. Then, we had clarified this result using fig.s for further comparisons of weekly productivity results and presentations that will let us; the managers, professors, and the 40 engineers themselves follow-up the organization productivity status every week. Then we had categorized the interruptions that interrupted E1, E2, E3, E4, and E5 during this week, and we had found the result is as shown in Table VII, VIII, IX, X, and XI respectively. T ABLE VII E1’s Weekly work interruptions for the first week Week 1 E1 Interruption I_ Browsing I_ Breakfast I_ Other Interruptions I_ Phone I_ Prayer I_ Talking Total Time 9-Jun 0:49 0:12 0:16 0:24 0:50 0:19 2:50 10-Jun 1:07 0:22 1:47 0:08 0:42 0:03 4:09 11-Jun 2:32 0:09 0:25 0:13 0:44 0:05 4:08 12-Jun 0:28 0:33 0:09 0:13 0:45 0:08 2:16 13-Jun 2:31 0:15 0:57 1:57 0:14 0:45 6:39 Totals Productivity Time Percentage 7:27:00 1:31:00 3:34:00 2:55:00 3:15:00 1:20:00 20:02:00 16.56% 3.37% 7.93% 6.48% 7.22% 2.96% 44.52% Date T ABLE VIII E2’s Weekly work interruptions for the first week Week 1 E2 Interruption I_ Breakfast I_ Browsing Date 9-Jun 0:12 0:14 10-Jun 11-Jun 0:17 0:21 0:10 0:17 12-Jun 13-Jun 0:07 0:18 0:18 Totals Productivity Time Percentage 1:15 2.78% I_ Lunch Break I_ Phone I_ Prayer I_ Talking Total Time 0:35 0:15 0:12 0:28 1:56 0:15 0:22 0:36 0:08 0:08 0:43 0:45 0:12 0:14 1:52 2:36 0:21 0:40 0:16 0:26 0:44 0:16 0:10 0:23 2:18 1:41 0:59 0:36 2:13 1:13 2:40 1:27 10:23:00 2.19% 1.33% 4.93% 2.70% 5.93% 3.22% 23.07% I_ Prayer I_ Talking Total Time I_ Other Interruptions T ABLE IX E3’s Weekly work interruptions for the first week Week 1 E3 Interruption I_ Breakfast I_ Browsing Date 9-Jun 0:04 2:02 0:11 0:47 0:05 3:09 10-Jun 11-Jun 0:12 0:04 0:41 1:05 0:49 0:33 0:31 0:16 0:04 0:43 0:44 0:03 0:09 2:28 3:26 12-Jun 13-Jun 0:16 0:19 0:16 1:10 0:12 0:36 0:41 0:07 0:29 0:42 0:18 0:21 0:17 Totals Productivity Time Percentage 0:55:00 5:14:00 1:01:00 2:32:00 0:56:00 3:14:00 0:55:00 2:18 3:26 14:47:00 2.04% 11.63% 2.26% 5.63% 2.07% 7.19% 2.04% 32.85% I_ Other Interruptions I_ Lunch Break I_ Phone 96010-1212 IJBAS-IJENS © December 2009 IJENS IJENS International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 41 T ABLE X E4’s Weekly work interruptions for t he first week Week 1 E4 Interruption I_ Breakfast I_ Browsing 9-Jun 0:10 0:40 10-Jun 0:19 0:37 11-Jun 0:16 2:03 12-Jun 0:12 0:40 13-Jun 0:14 0:07 0:12 0:22 Totals Productivity Time Percentage 1:11:00 4:07:00 1:11:00 2:16:00 2.63% 9.15% 2.63% 5.04% I_ Other Interruptions I_ Lunch Break I_ Phone I_ Prayer I_ Talking Total Time 0:28 0:32 0:46 0:35 3:11 Date 0:16 0:59 0:42 0:22 2:16 0:31 0:09 0:44 0:33 5:15 0:39 0:33 0:45 0:16 3:05 0:18 0:08 1:21 1:14:00 3:15:00 1:54:00 15:08:00 2.74% 7.22% 4.22% 33.63% T ABLE XI E5’s Weekly work interruptions for the first week Week 1 E5 Interruption I_ Breakfast I_ Browsing I_ Lunch Break I_ Phone I_ Prayer I_ Talking Total Time 9-Jun 0:14 2:40 0:22 0:19 0:33 1:44 5:52 10-Jun 0:22 2:37 0:19 0:06 0:43 0:44 4:51 11-Jun 0:16 2:52 0:29 0:12 0:41 0:32 5:02 12-Jun 0:17 3:02 0:28 0:09 0:36 0:17 4:49 13-Jun 0:15 3:14 0:17 0:10 0:28 0:17 4:41 Totals Productivity Time Percentage 1:24:00 14:25:00 1:55:00 0:56:00 3:01:00 3:34:00 25:15:00 3.11% 32.04% 4.26% 2.07% 6.70% 7.93% 56.11% Date After categorizing the main working activities and interruptions, we have analyzed them to know the percentage of total interruptions time and total productivity time for each engineer during the first week; we had found results as shown in Fig. 2 Fig.. 2. Productivity and Interruption T ime percentage during Week1 for E1, 2, 3, 4, 5 Then, we had calculated the average productivity time percentage and the average interruptions time percentage during the first week for the five engineers and we had found the result shown in Fig. 3 which shows that the average productivity time percentage for the five engineers during the first week is 61.67% percentage, which represents a very low 96010-1212 IJBAS-IJENS © December 2009 IJENS IJENS International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 productivity percentage, in contrary with the average interruption time percentage which reached a 38.04%, which represents a very high interruption percentage, these results 42 indeed shows that there is a big need for productivity improvement. Fig.. 3. Average Productivity T ime Percentage VS. Average Interruption T ime Percentage in Week1 for E1, E2, E3, E4, and E5 After making the previous analysis, we had shown the analysis results to every engineer, and everyone agreed that there is a real need for improving this productiv ity level, and they decided that this need will be their target in the second week. In the second week, every engineer has begun to focus on how to improve the productivity percentage even if they had to stay working after the original working times. They began to do exactly what they had to do in the first week, they filled-in their time recording log with their main working activities and their interruptions until the end of the second week, then we had to gather these time recording logs and do exactly what we had to do in the first week in addition to comparing the second week’s results with the first weeks results for each engineer, and we have got these results shown in Fig. 4 for E1, E2, E3, E4, and E5. Fig.. 4. Productivity and Interruption T ime percentage during Week2 for E1, 2, 3, 4, 5 After calculating the average productivity time percentage and the average interruptions time percentage during the second week for the five engineers and comparing it to the result of the first week, we had found the result shown in Fig. 5 96010-1212 IJBAS-IJENS © December 2009 IJENS IJENS International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 43 Fig.. 5. Average Productivity T ime Percentage VS. Average Interruption T ime Percentage in Week1 and 2 for E1, E2, E3, E4, and E5 This analysis shows that the average productivity time percentage for the five engineers during the second week is 75.67% percentage, which represents a higher percentage than this of the first week by a factor of 14%, on the other side, the average interruption time percentage was nearly close to this of the first week, it was 36.39% and only decreased by a factor of 1.65% which still represents a very high interruption percentage. This analysis also shows that if we added the average productivity time to the average interruptions time of the second week, we will find that the percentage will exceed 100% with a factor of 12.05%, in the same time the average interruptions time was approximately the same as the first week, hence, this means that engineers had stayed at work an extra time that the original working time in order to avoid the low percentage of the average productivity resulted from the previous analysis of the first week and couldn’t get over their interruptions time. Increasing working hours while leaving interruption times constant, is not the aim of or a solution to a working organization which aims to achieve its working cycle in a definite time, so after the analysis of the second week’s results, we have arranged for a meeting with the attendance of the five engineers and the management representative to show them the second week results and to discuss some solutions or suggestions in order to overcome the interruptions problem or at least to eliminate it. During this meeting, every engineer discussed his main interruptions which cause waste of time and how he can overcome them, of course every individual has his own interruptions, but also there are common interruptions that can be eliminated. Engineers thought, suggested and got committed to a policy for them and for the organization which focuses on eliminating interruptions and improving productivity, and consequently improving product quality. The policy that the engineers have stated includes the following: The period of breakfast will be 15 minute maximum in the morning. Lunch breaks will be 30 minutes maximu m per day. Phone calls will be eliminated to be messages or if it is very urgent, then it will be eliminated to 20 minutes maximu m per day. Prayer will be 30 minutes maximum per day for both prayers during the working day. Talking out of work scope, will be at breaks, if urgent then 10 minutes maximu m. Browsing for entertainment is limited to 10 minutes maximu m per day. Concerning the other interruptions like printing a paper, or sudden meeting with a client … etc, their time will be recorded as a normal interruption time, but it will be neglected because as possible as we can, we will try to resume this amount of time after the original working time of the day. Browsing for work will be for an hour all over the working day. Following-up juniors will be eliminated to be one hour distributed into two periods of the day, whether before or after prayer breaks. In the third week, engineers have resumed their work exactly as they have done in the first and the second week, but focusing on their commitment to their suggested policy. The work and the commitment lasted all over the third week, and after the end of this week, we resumed the work that we have done since the last two weeks. After gathering the time recording logs, and making our analysis, we obtained these results that are shown in fig.s 6 for E1, E2, E3, E4, and E5. 96010-1212 IJBAS-IJENS © December 2009 IJENS IJENS International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 44 Fig.. 6. Productivity and Interruption T ime percentage during Week3 for E1, 2, 3, 4, 5 This fig. shows that in the third week E1, E2, E3, and E4 indeed have committed to their suggested policy which has led to an improvement in the percentage of every engineer productivity level and decreased their interruptions level, except for the last engineer E5, who was under work training, seemed to be not active in addition to her low technical performance which led her department manager not to depend on her work too much. After calculating the average productivity time percentage and the average interruptions time percentage during the third week for the five engineers and comparing it to the result of the first week and second week, we had found the result that is shown in Fig. 7 Fig.. 7. Average Productivity T ime Percentage VS. Average Interruption T ime Percentage in Week1, Week2, and Week3 for E1, E2, E3, E4, and E5 This analysis shows that the average productivity time percentage for the five engineers during the third week is 69.24% percentage, which represents a higher percentage than this of the first week by a factor of 6.43% and lower than the this of the second week by a factor of 7.57% but this percentage will be neglected since it was due to staying working at work over the original working hours during the second week, but the result of the third week is acceptable since it was reached within the range of the original working hours of the day, on the other side, the average interruption time percentage was 30.72%, which was lower than this of the 96010-1212 IJBAS-IJENS © December 2009 IJENS IJENS International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 first week by a factor of 7.32% and this of the second week by a factor of 5.67% . 45 we have found the results shown in fig.s 8 for E1, E2, E3, E4, and E5. Applying this approach lasted for the fourth week as it lasted for the previous three weeks, and after the analysis of its data, Fig.. 8. Productivity and Interruption T ime percentage during Week4 for E1, 2, 3, 4, 5 The result of this analysis is very obvious to show that if the individual himself suggested or planned for his needs time and behaved as if he is his manager, he will obtain the best results, and this will become a normal habit if he got used to do this. From the fourth week’s fig.s, we can notice that the after getting committed to a personal suggested policy, productivity percentage has been improved for E1, E2, E3, and E4, and interruption percentage has been decreased. But, E5 proved that she is indeed a burden on the organization, and after showing these results to the management department which have shown an obvious improvement for individuals performance and consequently the work productivity, and on the other side E5 is not active, they asked for a technical evaluation for this engineer from her head manager, and indeed the evaluation has shown that she is technically weak and consequently, her head manager can’t depend on her work, so the management department with her head manager have decided to report her with the end of her relatio nship with the organization after finishing her probation period. After calculating the average productivity time percentage and the average interruptions time percentage during the fourth week for the five engineers and comparing it to the result of the first week, second week, and the third week, we had found the result that is shown in Fig. 9 Fig.. 9. Average Productivity Time Percentage VS. Average Interruption Time Percentage in Week1, Week2, Week3, and Week4 for E1, E2, E 3, E4, and E5 This analysis shows that the average productivity time percentage for the five engineers during the fourth week is 75.14% percentage, which represents a higher percentage than this of the first week by a factor of 13.47% and lower than this of the second week by a factor of 0.53% which can be neglected and higher than this of the third week by a factor of 5.90% , on the other side, the average interruption time percentage was 24.95%, which was lower than this of the first week by a factor of 13.09%% and this of the second week by a factor of 11.44% and this of the third week by a factor of 5.77%. 3) Handling interruptions conclusion: Hence, we can say that form the beginning of the assigned period to the end of this period, the average 96010-1212 IJBAS-IJENS © December 2009 IJENS IJENS International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 productivity time has been increased and improved by a factor of 13.47% percentage and the average interruptions time has been decreased by a factor of 13.09% which represents a very acceptable improvement percentage for productivity. Hence, we can be assured that the first PSP principle has been achieved successfully and with a very acceptable result. B. PSP Second Principle Here, we will focus on implementing the second PSP principle, which concerns increasing individuals’ productivity, and product and process quality using PSP planning and measurement forms. Development and data collection processes are also included to provide additional context for understanding the results. Engineers learn to use the PSP by developing different tasks and they may use any design method or programming language in which they are fluent. Engineers have practiced different programming tasks, on which they had applied what they had learned during the PSP training sessions, to pilot test the PSP on two main similar tasks each for two projects professionally. During the implementation of the second principle, we have decided to show this principle through working on two medium sized projects of a medium size software organization following the PSP process structure shown in Fig. 1. We have also dedicated three engineers of those who had been trained on how to practice PSP to work on these projects; they were E2 (developer), E3 (developer), and E4 (designer), and we have called our projects as PA, and PB for the first and second project respectively. Development time, defects, and task size are measured and recorded on provided forms. A simple plan summary form like shown in Fig. 10 is used to document planned and actual results. While writing the projects lines of code or designing their pages, engineers have gathered process data that are summarized in the project plan summary. With such a short feedback loop, engineers can quickly see the effect of PSP on their own performance. 1) PSP Measurement Framework : 46 Engineers collect three basic measures: size, time, and defects. Size is measured in lines of code (LOC). In practice, engineers use a size measure appropriate to the programming language and environment they are using; for example, number of database objects, number of use cases, number of classes, etc. In order to ensure that size is measured consistently, counting and coding standards are defined and used by each engineer. Derived measures that involve size, such as productivity or defect density, use new and changed LOC, and new and changed Pages. ―New and changed LOC‖ is defined as lines of code that are added or modified, where new and changed pages are those pages that are added or modified; existing LOC is not included in the measure. Time is measured as the direct time spent on each task. It does not include interrupt time. A defect is anything that detracts from the program’s ability to completely and effectively meet the users’ needs. A defect is an objective measure that engineers can identify, describe, and count. Engineers use many other measures that are derived from these three basic measures. Both planned and actual data for all measures are gathered and recorded. Actual data are used to track and predict schedule and quality status. All data are archived to provide a personal historical repository for improving estimation accuracy and product quality. Derived measures include: Size Estimation Accuracy Effort Estimation Accuracy Productivity Defect density Process yield Failure cost of quality (COQ) Appraisal COQ Appraisal/failure COQ ratio 2) PSP Plan summary Task summary data are recorded on the Task Plan Summary form. This form provides a convenient summary of planned and actual values for program size, development time, and defects, and a summary of these same data for all similar tasks completed to date. The Task plan summary is the source for all data used in this study. Table XII shows the four sections of the task plan summary that were used for E2, they were: Program Size, Time in Phase, Defects Injected, and Defects Removed. 96010-1212 IJBAS-IJENS © December 2009 IJENS IJENS International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 47 T ABLE XII E2 T ask Plan Summary – Project PA PS P Task Plan S ummary - Project PA Engineer E2 Date 14-Jun Task Control Panel development Task# 1 Language C# Summary Plan Actual To Date M inutes/LOC 5 4 4 LOC/Hour 12 15 15 Defects/KLOC 24 19.30 19.30 Yield 41.67 54.55 54.55 A/FR 0.17 0.34 0.34 Code Size (LOC) Plan Actual To Date Total New & Changed 500 570 570 M aximum Size 800 M inimum Size 450 Time in Phase (min.) Plan Actual To Date To Date% Planning 312 274 274 12.02 Analysis 332 183 183 8.03 Design 258 312 312 13.68 Code 1053 1218 1218 53.42 Code/Design Review 75 70 70 3.07 Compile 64 12 12 0.53 Test 384 192 192 8.42 Postmortem 22 19 19 0.83 Total Task Time 2500 2280 2280 100.00 M aximum Time 4000 M inimum Time 2250 Defects Injected Plan Actual To Date To Date% To Date% Def./Hour Design 1 1 1 9.09 0.86 Code 11 10 10 90.91 0.49 Total 12 11 11 100.00 Defects Removed Plan Actual To Date To Date% Planning Analysis Code/Design Review Compile Test 96010-1212 IJBAS-IJENS © December 2009 IJENS Def./Hour IJENS International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 48 Planning Analysis Design Code Code/Design Review 5 6 3 27.27 2.57 Compile 2 3 2 18.18 10.00 Test 5 2 6 54.55 1.88 Total 12 11 11 100.00 As shown in Table XII, the summary section holds the rate data used to make the plan. It also provides a place to record the actual rate data after task completion. The top entry in the summary section is Minutes/LOC (minutes per line of code). As shown in Table XII, E2 used his guessing as his historical data from the prior similar tasks to get the rate of 5 Minutes/LOC; he might need to use a different value if the new task seems particularly difficult and likely to take longer than average. The next entry in the summary section is LOC/Hour (lines of code per hour). The LOC/Hour is calculated from Minutes/LOC by dividing 60 by Minutes/LOC. The LOC/Hour rate is commonly used by engineers to analyze development productivity. The program or code size (LOC) section of the project plan summary form contains the estimated and actual data on the task size and likely size ranges. E2 estimated the finished size of the task he planned to develop and entered it under plan in the Total New & Changed row as shown in Table 12. Then he calculated the maximum and minimum size numbers, they are useful for judging the likely time range for a development estimate. The next section of the plan summary table is called Time in Phase because it is used for data on the phases of the software development process. E2 calculated total planned development time by multiplying the planned Minutes/LOC by the planned New & Changed LOC. Also, he multiplied the minimum and maximum sizes by the Minutes/LOC to give the minimum and maximu m times respectively. The time in phase section has a row for each phase of the process. This row holds the planned and actual times for each process phase. The way to do this, E2 has allocated the total development time to the phases in proportion to the way he has spent time on previous such tasks. He calculated these times using ―Minutes‖ for easy calculations. Then, he estimated from his prior knowledge the spent time for each phase including the postmortem phase, in which, E2 completes the plan summary form with actual time, and size data from his Job Recording Log. To calculate the To Date value: for each phase, E2 should enter the sum of actual time and To Date time from the most recent previous tasks, and since there is no previous To Date time for such previous tasks, the TO Date value will be the same actual times. To calculate the To Date% value: for each phase, E2 should enter 100 times the To Date time for that phase divided by the total To Date time. For subsequent projects, however, engineers can use the data from previous tasks, like this task for example, to estimate the time for each phase of the new task or project. This is the reason for the To Date% values in the task or project plan summary form. The To Date and To Date% columns in the plan summary form provide a simple way to calculate the percent distribution of development time by process phase. The To Date column contains the total of all the time spent in each phase for all the completed tasks. The To Date% column holds the percentage distribution of the times in the To Date column. 3) Individual and Process Productivity: Here, we have provided the skills and practices that the engineer needs to improve his prediction, estimation accuracy, and productivity. Size Estimation Accuracy Accurate size estimates are a fundamental building block for realistic project plans. Training in PSP provides individual engineers with an ability to improve their skill in estimating the size of the products they produce. This ability is clearly demonstrated in the results presented here. Measure of Interest Estimated Size - Actual Size / ArgMax (Estimated Size, Actual Size) Effort Estimation Accuracy Use of historical data for deriving effort estimates is common practice in the software industry today. However, estimation at the level of an individual engineer’s workload remains a challenge. The PSP training provides engineers with the ability to make estimates, and to improve the estimating process, at the level of an individual engineer. This ability is clearly demonstrated in the results presented here. Measure of Interest Estimated Minutes - Actual Minutes / ArgMax (Estimated Minutes, Actual Minutes) 96010-1212 IJBAS-IJENS © December 2009 IJENS IJENS International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 Productivity That is, the number of lines of code designed, written, and tested, per hour spent increases between the first and last assignments. Measure of Interest Total New Changed LOCS / (Total Time Spent / 60) 4) Product and Process Productivity results and analysis 49 T ABLE XIV Effort Estimation Accuracy Task1 Task2 E2 0.09 0.05 E3 0.18 0.02 E4 -0.11 0.01 Size Estimation The hypothesis tested in this section of the study is as follows: ―As engineers progress through the PSP training, their size estimates gradually grow closer to the actual size of the program at the end‖ [19]. With the introduction of historical size estimation data that every engineer has used before, and accumulating these values To Date, engineers can progress through the PSP training and can predict closer values to their actual size estimation values like shown in Table XIII & Fig. 10. Estimation Accuracy T ABLE XIII Size estimation accuracy Task1 Task2 E2 E3 0.14 0.02 0.02 0.01 E4 0.18 0.02 Fig.. 11. Effort Estimation Accuracy for E2, E3, and E4 during first PSP T ask and the second one As shown, after analyzing development time data for the first and second PSP assignments for the 3 engineers, their effort estimates grow closer to the actual effort expanded for the entire life cycle of the task. Productivity The hypothesis to be tested in this section is: Fig.. 10. Size Estimation Accuracy for E2, E3, and E4 during first PSP Task and the second one ―As engineers progress through the PSP training, their productivity increases‖ [19] As shown, after analyzing size data for the first and second PSP assignments for the 3 engineers, their size estimates grow closer to the actual size of the task Productivity means how much work could be done in a definite time, by reducing the interruptions time as preceded, engineers can focus their time on their working tasks, and here we will find the result as ―how many lines of code were written per hour‖ shown in Table XV & Fig. 12 Effort Estimation In this section, data are used to test the following hypothesis: ―As engineers progress through the PSP training, their effort estimates grow closer to the actual effort expended for the entire life cycle‖ [19] T ABLE XV Productivity Task1 Task2 E2 15.00 16.22 E3 12.00 12.12 E4 0.50 0.57 With the introduction of historical total development time estimation data that every engineer has used before, and accumulating these values To Date, engineers can progress through the PSP training and can predict closer values to their actual effort estimation values like shown in Table 14 & Fig. 11. 96010-1212 IJBAS-IJENS © December 2009 IJENS IJENS International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 50 5) Product and Process Quality: Here, we have provided the skills and practices that the engineer needs to understand the defects he injects. These skills have equipped him to efficiently find and fix most of his defects and it also provided the data to help prevent these defects in the future. The plan summary included a section concerning the number of defects that were injected during each phase and another section defining the number of defects that were removed during which phase. Fig.. 12. Productivity for E2, E3, and E4 during first PSP T ask and the second one As shown, after analyzing productivity data for the first and second PSP assignments for the 3 engineers, their productivity increases. But before filling-in the plan summary sections concerning the defects, engineers had first to analyze defects. In analyzing defects, it is helpful to divide them into categories [17]. Defects are classified into 10 general types. By categorizing defects into a few types, engineer can quickly see which categories cause the most trouble and focus on their prevention and removal. That, of course, is the key to defect management. Focus on the few defect types that are most troublesome. Once these types are under control, identify the next set and work on them, and so on indefinitely. The defect types used in this paper are shown in Table XVI [17] T ABLE XVI Defect T ype Standard Defect Type S tandard Type Number Type Name Description 10 Documentation comments, messages 20 Syntax spelling, punctuation, typos, instruction formats 30 Build, package change management, library, version control 40 Assignment declaration, duplicate names, scope, limits 50 Interface procedure calls and references, I/O, user formats 60 Checking error messages, inadequate checks 70 Data structure, content 80 Function logic, pointers, loops, recursion, computation, function defects 90 System config.uration, timing, memory 100 Environment design, compile, test, other support system problems The first step in managing defects is to understand them. To do that, every engineer must gather defect data. Then he can understand these mistakes and fig. out how to avoid them. To gather data on defects in the program or the task, every engineer should do the following: Keep a record of every defect he finds in his program or task. Records enough information on each defect so, he can later understand it. Analyzes these data to see what defect types caused the most problems. Devises a way to find and correct these defects. The defect recording log is designed to help gather defect data [18]. The log for E2 is shown in Table XVII T ABLE XVII E2’s Defect Recording Log 96010-1212 IJBAS-IJENS © December 2009 IJENS IJENS International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 51 Defect Recording Log [E2] Project Date 18-Jun Num Type Injected Removed Fix Time 1 20 code Code Review 0:01 missing ; 2 50 code Code Review 0:03 incorrectly formatted call 3 80 design Code Review 0:01 forgot to initialize variable 4 20 code Code Review 0:01 misspelled variable 5 80 code Code Review 0:04 Adding an email for a female user in the newsletters list is inserted and saved as ―M ale‖ 6 80 code Code Review 0:09 Admin can't obtain a search result of registered visitors with e-mail data form 7 20 code Compile 0:01 ; entered as : 8 60 code Compile 0:06 Admin can’t change his old password, always ―Error‖ message appears 9 80 code Compile 0:16 Editing shops sometimes 10 80 code Unit Test 0:18 Editing events data, then saving the edited data doesn’t work properly PA 20-Jun 23-Jun When E2 started to develop his task, he prepared this log, and when he first encountered a defect, he entered its number in the log, the date when it was found, its type according to the defect type standard, the phase in which it was injected and the phase in which it was removed, its fixing time and a brief description of the defect to later reminds him about the error that caused the defect. During the postmortem phase, E2 reviewed the defect log and counted the number of defects injected in each phase. From the Defect Recording Log in Table 17, E2 first counted defect 3 as injected in design so he entered 1 under actual in the design row of his plan summary shown in Table. The other nine defects were all injected in code, so he entered a 9 in the code row. The total is then ten injected defects. Next, he counted the number of defects removed in each phase. E2 counted three defects removed in Code Review, Two in compile, 5 in Test so he entered a 3, 2, and 5 in these rows of the defects removed section. Again, the total is 10. After recording the number of defects injected and removed, E2 completed the To Date and To Date% columns in the same way he filled the same columns with time data. 6) Quality Measures: Description Defect Density: Defect density refers to the defects per new and changed KLOC found in a program [19]. Thus, if a 150 LOC program had 18 defects, the defect dens ity would be 1000*18/150 = 120 defects/KLOC. Defect density is measured for the entire development process and for specific process phases. Since testing only removes a fraction of the defects in a product, doesn’t work when there are more defects that enter a test phase, there will be more remaining after the test phase is completed. Therefore, the number of defects found in a test phase is a good indication of the number that remains in the product after that test phase is completed. Measure of Interest Total Defects / Total New & Changed LOC /1000 Yield: Process yield refers to the percentage of the defects removed before the first compile and unit test[Y]. Since the PSP objective is to produce high quality programs, the suggested guideline for process yield is 70% better [19]. Measure of Interest Pre-compile defects removed / Pre-compile defects injected A/FR: The appraisal to failure ratio (A/FR) measures the quality of the engineering process, using cost-of-quality (COQ) parameters [19]. The A stands for the appraisal quality cost, or the percentage of development time spent in quality appraisal activities. In PSP, the appraisal cost is the time spent in design and code reviews, including the time spent repairing the defects found in those reviews. Measure of Interest Appraisal COQ = 100*(Code Review or Design Review) Time / Total Development Time The F in A/FR stands for the failure quality cost, which is the time spent in failure recovery and repair. The 96010-1212 IJBAS-IJENS © December 2009 IJENS IJENS International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 failure cost is the time spent in compile and unit test, including the time spent finding, fixing, recompiling, and retesting the defects found in compiling and testing. As shown, after analyzing defects data for the first and second PSP assignments for the 3 engineers, there is a significant increase in the defect density values. Measure of Interest 52 Process Yield Failure COQ = 100* (Compile Time + Test Time) / Total Development Time The hypothesis to be addressed in this section is as follows: The A/FR measure provides a useful way to assess quality, both for individual programs and to compare the quality of the development processes used for several programs. It also indicates the degree to which the engineer attempted to find and fix defects early in the development process [19]. As engineers progress through the PSP training, their yield increases significantly. More specifically, the introduction of design review and code review following PSP has a significant impact on the value of engineers’ process yield like shown in Table XIX & Fig.14. Measure of Interest A/F Ratio = Appraisal COQ (A) / Failure COQ (F) 7) Quality results and analysis: Defect Density T ABLE XIX Pre-compile Defect Yield Task1 Task2 E2 54.55 71.43 E3 55.56 62.50 E4 33.33 60.00 The hypotheses to be investigated in this section are as follows: As engineers progress through PSP training, the number of defects injected and therefore removed per thousand lines of code (KLOC) decreases [19] With the introduction of design and code reviews in PSP, the defect densities of programs entering the compile and test phases decrease significantly like shown in Table XVIII& Fig. 13. T ABLE XVIII Defect Density Task1 Task2 E2 19.30 12.01 E3 20.32 18.22 E4 3.46 1.72 Fig.. 14. Pre-compile Defect Yield for E2, E2, and E4 during first PSP T ask and the second one As shown, after analyzing defects removed and injected before the first compile for the first and second PSP assignments for the 3 engineers, there is a significant increase in the process Yield values. A/FR The hypothesis to be addressed in this section is as follows: ―As engineers progress through the PSP training, their A/FR value increases significantly. More specifically, the A/FR values below 1 generally indicate that many defects will be found in test, while values above 1 generally indicate that few if any defects will be found in test, like shown in Table XX& Fig. 15. T ABLE XX A/FR Fig.. 13. Defect Density for E2, E3, and E4 during first PSP T ask and the second one Task1 Task2 E2 0.34 0.68 E3 0.40 0.57 E4 2.65 2.14 96010-1212 IJBAS-IJENS © December 2009 IJENS IJENS International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 53 its value at the end of PSP training (Average for the two PSP assignments for the three engineers) like shown in Table XXI & Fig. 16 T ABLE XXI Summarized results Measure At the start of training At the end of training S ize Estimation Accuracy 0.11 0.02 Effort Estimation Accuracy 0.05 0.03 Productivity 9.17 9.64 Defect Density 14.36 10.65 Process Yield 47.81 64.64 Process Quality cost ratio A/FR 1.13 1.13 Fig.. 15. A/FR for E2, E2, and E4 during first PSP Task and the second one. As shown, after analyzing the appraisal and failure cost of quality for the first and second PSP assignments for the 3 engineers, there is a significant increase in the process A/FR values. 8) PSP approach summary: The results from PSP training were impressive. These results are summarized in Table 21 and are shown in Fig. 16. The first column describes the measure, the second column shows its value at the start of PSP training (First 3 assignments for E2, E3, and E4), and the third column shows Fig.. 16. PSP Summary Measures for the three engineers for two similar tasks Hence, we can say that form the beginning of the assigned period to the end of this period, the second PSP has been achieved with a very acceptable improvement percentage for both productivity and quality. VI. CONCLUSION The objectives of this study were to examine the effect of the Personal Software Process on the performance of software engineers, and to consider whether the observed results could be generalized beyond the study participants. Because the PSP was developed to improve individual performance through the gradual introduction of new practices, the study took a similar approach, examining the change in individual performance as these practices were introduced. Our analyses grouped individual data and then examined the change in individual performance. Using this approach we found that the improvements in four dimensions: size estimation accuracy, effort estimation accuracy, product quality, and process quality, were statistically significant. No statistically significant change in productivity was found, and so we can state that the improvements observed in the other performance dimensions were achieved without any loss of productivity. 96010-1212 IJBAS-IJENS © December 2009 IJENS IJENS International Journal of Basic & Applied Sciences IJBAS-IJENS Vol:09 No:10 In conclusion, the analyses stated here substantiate that trend in personal performance observed during PSP training are significant, and that the observed improvements represent real change in individual performance, not a change in the average performance of the group. Furthermore, we are confident that the observed improvements are due to the PSP and can be generalized. VII. PSP ST AT US AND FUT URE TRENDS While superior technical work will continue to be required, the performance of each individual engineer will be recognized as important. Quality systems require quality parts, and unless every engineer strives to produce quality work, the team cannot do so. Quality management will be an integral part of software engineering training. Engineers will have to learn how to measure the quality of their work and how to use these measures to produce essentially defect free work. The PSP is designed to provide the disciplined practices software professionals will need in the future. While some industrial organizations are introducing these methods, we recommend a broader introduction of these disciplined methods to be started here in Egypt universities. Academic introduction of the PSP is currently supported with courses at both introductory and advanced levels. [10] [11] [12] [13] [14] [15] [16] [17] [18] 54 Deming, W. E. Out of the Crisis. MIT Center for Advanced Engineering Study, Cambridge, MA, 1982. Juran, J. and Gryna, F. Juran's Quality Control Handbook, Fourth Edition. New York: McGraw- Hill Book Company, 1988. Fagan, M. ―Design and Code Inspections to Reduce Errors in Program Development.‖ IBM Systems Journal, 15, 3 (1976) Fagan, M. ―Advances in Software Inspections.‖ IEEE Transactions on Software Engineering, SE-12, 7, (July 1986) Humphrey, W. Managing the Software Process. Reading, MA: Addison-Wesley, 1989. Paulk, M., et al. T he Capability Maturity Model: Guidelines for Improving the Software Process. Reading, MA: Addison Wesley, 1995. Herbsleb, J., Zubrow, D., Goldenson, D., Hayes, W., and Paulk, M. ―Software Quality and the Capability Maturity Model,‖ Communications of the ACM, 40, 6 (June 1997): 30 - 40. Humphrey, W. a Self-Improvement Process for Software Engineers Reading, MA: Addison- Wesle, (March 2005). [16] PSP Training for Everyone Wall, Dan, Proceedings of the T SP Symposium, September 17, 2007, http://www.sei.cmu.edu/tsp/proceedings07.html Seshagiri, G. ―Making Quality Happen: The Managers’ Role, AIS Case Study,‖ Crosstalk (June 2000). Humphrey, Watts S. Self-Improvement Process for Software Engineers, Reading, MA: Addison Wesley, © March 2005, ISBN: 0321305493 Several universities in the U.S., Europe, and Australia now offer the PSP, and several institutions in Asia are considering its introduction. While the PSP is relatively new, the early results are promising. Both industrial use and academic adoption are increasing. Assuming that these trends continue, we recommend that the future should see a closer integration of the (Personal Software Process) PSP, (Team Software Process) TSP, and (Capability Maturity Model) CMM methods and a closer coupling of the PSP academic courses with the broader computer science and software engineering curricula. [1] [2] [3] [4] [5] [6] [7] [8] [9] REFERENCES Ferguson, P.; Leman, G; Perini, P; Renner, S.; & Seshagiri, G. Software Process Improvement Works! (CMU/SEI-99-T R-027, ADA371804). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 1999. <http://www.sei.cmu.edu/publications/documents/99.reports/99tr0 27/99tr027abstract.html>. McAndrews, D. T he T eam Software Process SM: An Overview and Preliminary Results of Using Disciplined Practices (CMU/SEI- 2000-TR-015, ADA387260) Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2000. <http://www.sei.cmu.edu/publications/documents/00.reports/00tr0 15.html>. Software Engineering Institute. Capability Maturity Model for Software (CMM), Version1.1, Carnegie Mellon University, 1993. Software Engineering Institute. Capability Maturity Model Integration (CMMI), Version 1.1, Carnegie Mellon University, 2002. SPICE Project. Software Process Assessment Part 2: A model for process management, Version 1.0, 1998. P. Kuvaja, J. Simila, L. Krzanik, A. Bicego, G. Koch, S. Saukkonen. Software Process Assessment and Improvement: T he BOOT ST RAP Approach. Blackwell Publishers, 1994. B. Curtis, M. I. Kellner, and J. Over. Process Modeling. Communications of the ACM, vol. 35, pp. 75-90, 1992. H. Krasner, J. T irrel, A. Linehan, P. Arnold, and W.H. Ett. Lessons learned from a software process modeling system. Communications of ACM, vol. 35, n.9, pp. 91-100, Sept. 1992. 96010-1212 IJBAS-IJENS © December 2009 IJENS IJENS