On the Benefits of Planning and Grouping Software Maintenance Requests

10
On the Benefits of Planning and Grouping Software Maintenance Requests Gladston Aparecido Junio, Marcelo Nassau Malta, Humberto de Almeida Mossri, Humberto T. Marques-Neto Department of Computer Science, PUC MINAS Belo Horizonte, Brazil [email protected], {nassau,hmossri,humberto}@pucminas.br Marco Tulio Valente Department of Computer Science, UFMG Belo Horizonte, Brazil [email protected] Abstract—Despite its unquestionable importance, software maintenance usually has a negative image among software developers and even project managers. As a result, it is common to consider maintenance requests as short-term tasks that should be implemented as quick as possible to have a minimal impact for end-users. In order to promote software maintenance to a first-class software development activity, we first define in this paper a lightweighted process – called PASM (Process for Arranging Software Mainte- nance Requests) – for handling maintenance as software projects. Next, we describe an in-depth evaluation of the benefits achieved by the PASM process at a real software development organization. For this purpose, we rely on a set of clustering analysis techniques in order to better understand and compare the requests handled before and after the adoption of the proposed process. Our results indicate that the number of projects created to handle main- tenance requests has increased almost three times after this organization has adopted the PASM process. Furthermore, we also concluded that projects based on the PASM present a better balance between the various software engineering activities. For example, after adopting PASM the developers have dedicated more time to analysis and validation and less time to implementation and codification tasks. Keywords-software maintenance process; software cluster- ing; software economics. I. I NTRODUCTION Maintenance is one of the most important and costly phases in the life-cycle of a software system. For example, there are studies showing that up to 90% of the total resources consumed over the lifetime of a system are allocated to maintenance tasks [1]. Other studies estimate that at least 250 billion lines of source code were under maintenance worldwide at the beginning of the decade [2]. Finally, in the mid-90s, Sutherland has estimated in US$ 70 billion the annual spending that U.S. companies had with software maintenance activities [3]. In recent years, there are no indications that these costs have decreased. In fact, new systems are being developed every day for many domains. The result is a growing base of code that must be continuously maintained and evolved [4]. Despite its unquestionable importance, software main- tenance usually has a negative image among software developers and even project managers [5], [6]. As a result, there is a tendency in not handling maintenance requests as software projects, i.e. projects of software maintenance with well-defined activities such as require- ments specification, design, implementation, testing etc. Instead, it is common to consider software maintenance requests as short-term tasks that should be prioritized and implemented as quick as possible to have a minimal impact in end-users’ activities [7]–[9]. The problems inherent to continuous policies for scheduling maintenance requests have already been pointed out in the literature. For example, Banker and Slaughter have investigated the scale economies achieved when maintenance is handled in batch mode, i.e. when individual requests are packaged and implemented as part of larger projects [7]. According to their models, this strategy can reduce maintenance costs by 36%. The benefits of a periodic maintenance policy – combined with policies to replace a system – have also been reported by Tan and Mookerjee [8]. However, both studies have been solely based on analytical models. Particularly, they have not checked if the results of their models are confirmed when maintaining real-world systems. In fact, to the best of our knowledge, we still lack studies that assess whether the theoretical gains described in the literature are actually observed in real-world software maintenance scenarios. In this paper, we first define a lighthweighted process for handling maintenance requests as software projects. This process – called PASM (Process for Arranging Software Maintenance Requests) – includes three main phases: registering, grouping and processing. We have also applied the proposed process in the IT division of PUC Minas, one of the largest Brazilian universities. Until 2008, this divi- sion – named DATAPUC – has adopted a continuous pol- icy for handling maintenance, with buffering and grouping performed in an ad hoc way. Since 2009, DATAPUC has embraced the proposed process for grouping software maintenance requests. Finally, we describe an in-depth evaluation of the benefits achieved with this adoption. For this purpose, we rely on a set of clustering analysis techniques originally proposed to evaluate the behavior of web application users [10], [11]. Our results indicate that the number of projects created to handle maintenance requests has increased almost three times after DATAPUC has adopted the PASM process (in 2008, 22 software maintenance projects have been delivered by DATAPUC; in 2009, this number increased to 62 projects). More important, the clustering analysis has showed that the PASM-based projects present a better bal-

Transcript of On the Benefits of Planning and Grouping Software Maintenance Requests

On the Benefits of Planning and Grouping Software Maintenance Requests

Gladston Aparecido Junio, Marcelo Nassau Malta,Humberto de Almeida Mossri, Humberto T. Marques-Neto

Department of Computer Science, PUC MINASBelo Horizonte, Brazil

[email protected],{nassau,hmossri,humberto}@pucminas.br

Marco Tulio ValenteDepartment of Computer Science, UFMG

Belo Horizonte, [email protected]

Abstract—Despite its unquestionable importance, softwaremaintenance usually has a negative image among softwaredevelopers and even project managers. As a result, it iscommon to consider maintenance requests as short-termtasks that should be implemented as quick as possible tohave a minimal impact for end-users. In order to promotesoftware maintenance to a first-class software developmentactivity, we first define in this paper a lightweighted process– called PASM (Process for Arranging Software Mainte-nance Requests) – for handling maintenance as softwareprojects. Next, we describe an in-depth evaluation of thebenefits achieved by the PASM process at a real softwaredevelopment organization. For this purpose, we rely ona set of clustering analysis techniques in order to betterunderstand and compare the requests handled before andafter the adoption of the proposed process. Our resultsindicate that the number of projects created to handle main-tenance requests has increased almost three times after thisorganization has adopted the PASM process. Furthermore,we also concluded that projects based on the PASM presenta better balance between the various software engineeringactivities. For example, after adopting PASM the developershave dedicated more time to analysis and validation and lesstime to implementation and codification tasks.

Keywords-software maintenance process; software cluster-ing; software economics.

I. INTRODUCTION

Maintenance is one of the most important and costlyphases in the life-cycle of a software system. For example,there are studies showing that up to 90% of the totalresources consumed over the lifetime of a system areallocated to maintenance tasks [1]. Other studies estimatethat at least 250 billion lines of source code were undermaintenance worldwide at the beginning of the decade [2].Finally, in the mid-90s, Sutherland has estimated in US$70 billion the annual spending that U.S. companies hadwith software maintenance activities [3]. In recent years,there are no indications that these costs have decreased.In fact, new systems are being developed every day formany domains. The result is a growing base of code thatmust be continuously maintained and evolved [4].

Despite its unquestionable importance, software main-tenance usually has a negative image among softwaredevelopers and even project managers [5], [6]. As aresult, there is a tendency in not handling maintenancerequests as software projects, i.e. projects of softwaremaintenance with well-defined activities such as require-

ments specification, design, implementation, testing etc.Instead, it is common to consider software maintenancerequests as short-term tasks that should be prioritizedand implemented as quick as possible to have a minimalimpact in end-users’ activities [7]–[9].

The problems inherent to continuous policies forscheduling maintenance requests have already beenpointed out in the literature. For example, Banker andSlaughter have investigated the scale economies achievedwhen maintenance is handled in batch mode, i.e. whenindividual requests are packaged and implemented aspart of larger projects [7]. According to their models,this strategy can reduce maintenance costs by 36%. Thebenefits of a periodic maintenance policy – combined withpolicies to replace a system – have also been reported byTan and Mookerjee [8]. However, both studies have beensolely based on analytical models. Particularly, they havenot checked if the results of their models are confirmedwhen maintaining real-world systems. In fact, to the bestof our knowledge, we still lack studies that assess whetherthe theoretical gains described in the literature are actuallyobserved in real-world software maintenance scenarios.

In this paper, we first define a lighthweighted process forhandling maintenance requests as software projects. Thisprocess – called PASM (Process for Arranging SoftwareMaintenance Requests) – includes three main phases:registering, grouping and processing. We have also appliedthe proposed process in the IT division of PUC Minas, oneof the largest Brazilian universities. Until 2008, this divi-sion – named DATAPUC – has adopted a continuous pol-icy for handling maintenance, with buffering and groupingperformed in an ad hoc way. Since 2009, DATAPUChas embraced the proposed process for grouping softwaremaintenance requests. Finally, we describe an in-depthevaluation of the benefits achieved with this adoption.For this purpose, we rely on a set of clustering analysistechniques originally proposed to evaluate the behavior ofweb application users [10], [11].

Our results indicate that the number of projects createdto handle maintenance requests has increased almost threetimes after DATAPUC has adopted the PASM process(in 2008, 22 software maintenance projects have beendelivered by DATAPUC; in 2009, this number increased to62 projects). More important, the clustering analysis hasshowed that the PASM-based projects present a better bal-

Figure 1. Process for Arranging Software Maintenance Requests (PASM)

ance between the various software engineering activities(for example, after adopting PASM, the developers havededicated more time to analysis and validation and lesstime to implementation and codification tasks). Finally,we have observed on average a six hour reduction on thequeue time of typical urgent maintenance requests, sincethe process contributes to reduce the chances of incorrectlyhandling a maintenance request as urgent.

The remainder of this paper is organized as describednext. Section II starts by presenting the proposed processfor planning and grouping maintenance requests, includinga presentation of its main objectives and phases. Section IIIevaluates the benefits achieved by the proposed processat a real software development organization. Section IVdiscusses related work. Section V provides concludingstatements and a list of future work.

II. THE PASM PROCESS

PASM is a lightweighted process that advocates thatmaintenance requests should be arranged in projects forthe following reasons: (a) to facilitate planning and controlactivities; (b) to benefit of widely recognized softwareengineering best practices (such as requirements specifi-cation, design, testing etc); and (c) to take advantage ofthe economies of scale that manifest when smaller tasksare batched into larger projects.

As illustrated by Figure 1, the PASM process supportsa periodic maintenance policy with three main phases:Registration, Grouping, and Processing. These phases aredescribed next.

Registration: In this phase, users enter and describe theirmaintenance requests, preferably using an change man-agement system. Basically, the existence of a registrationphase – where requests are simply collected – ensuresthat the PASM process follows a periodic maintenancepolicy. Furthermore, the time frame allocated to this phase

defines the frequency that new releases are periodicallydelivered to end-users. In order to set this time frame, theteam deploying the PASM should consider the inevitableopportunity costs associated to delaying the processing ofthe collected requests. Basically, the higher this time frameimplies the higher the associated opportunity (or wait)costs, considering the amount of requests which can beregistered. On the other hand, smaller intervals can havea negative impact on the economies of scale provided bythe periodic policy.

During the registration phase, end-users and softwaredevelopers can request all categories of maintenance,including corrective, adaptive, perfective, and preventive[12]. Usually, both of them (end-users and software devel-opers) can specify that an entered maintenance request isurgent. For example, urgency can be reported to errors thatprevent the normal system behavior and that must be fixedas soon as possible. As another example, urgency can alsobe requested to a maintenance that due to legal constraintshave to be implemented in a given time frame (e.g. anew tax created by the government). Maintenance requestsclassified as urgent – and having their urgent status ratifiedby a higher-level manager – are not subjected to waitingcosts. Instead, such requests are immediately allocated toa maintenance team.

The output of the registration phase is a list of softwaremaintenance requests placed during a given time frame.

Grouping: In this phase, the collected maintenancerequests are grouped in larger software projects. In orderto propose a software project P comprising maintenancerequests {r1, r2, . . . , rn} two variables should be con-sidered: the project size and the functional similarityamong requests ri. First, the project size and complexity– estimated for example in functional points – should becompatible with the organization’s available productioncapacity – estimated for example in man-hours per month.

Extremely larger projects will imply in waiting times nottolerable by end-users; moreover, larger projects delay theallocation of other projects to the available maintenanceteams. Second, the requests ri grouped in the project Pshould be functionally coherent. For example, they mustrequire modifications in the same modules of the targetsystem or they must require the implementation of newmodules that are strongly-related.

When defining the PASM process, we deliberately de-cided to do not provide a complete and formal algorithmto automate the grouping phase. The main reason is thatthis phase is heavily based on decisions that depend on thesemantics of the requests (e.g. is request ri functionallycoherent with request rj?) or that depend on managementlevel decisions (e.g. can the organization absorb the op-portunity costs due to delaying a maintenance request?).

The output of the grouping phase is a list of groupsof software maintenance requests that – as agreed byproject managers and key-users representing the usersthat required the maintenance – must be implemented asa software development project.

Processing: In this phase, the software maintenanceprojects generated at the previous phase are allocated to asoftware development team. Such projects must follow thenormal software development methodology and practicesdefined by the organization. In other words, the PASMprocess does not define a particular software developmentmethod.

The output of the processing phase is a new releaseof the target system that implements the maintenancesrequested by the end-users.

III. EVALUATION

In this section we evaluate the benefits achieved bythe PASM process at a real software development or-ganization. The Information Technology Department ofPUC Minas – called DATAPUC – is using the processproposed in this paper since November 2008. DATA-PUC is responsible for the acquisition, development andmaintenance of the academic and administrative systemsused by PUC Minas. Currently, it maintains 40 systems,comprising more than four million lines of code in dif-ferent programming languages (Java, Delphi, PHP etc).For this purpose, DATAPUC has 34 software developers(including programmers, testers, project managers etc).Before adopting the PASM process, most maintenancerequests were handled by DATAPUC on demand, in acontinuous way.

DATAPUC has configured the PASM process so thatthe registering and grouping phase take one month. In thefirst ten days of each month, end-users can place softwaremaintenance requests, using DATAPUC’s internal ChangeManagement System. In the remainder twenty days ofthe month the requests are analyzed and evaluated byDATAPUC’s developers and project managers, resultingin a set of software maintenance projects. The cycle isrepeated in the next month.

Table IEVALUATED SOFTWARE MAINTENANCE REQUESTS

Year # of Requests Man-hoursBefore PASM (2008) 1073 3198After PASM (2009) 1015 5820Total 2088 9018

First, in this section we present the data source formedby the real software maintenance requests used for thisevaluation. We also present the methodology used to char-acterize these requests in order to highlight the benefitsachieved by the proposed process.

A. Data Source

In order to evaluate the PASM implementation, we haveanalyzed a set of 2,088 software maintenance requestsprocessed by DATAPUC, comprising 9,011 man-hours.As summarized at Table I, the evaluated requests refer totwo distinct time periods:

• Before PASM: this period includes requests initiatedand completed between February and October 2008,i.e. before DATAPUC decision on starting to usethe proposed process. During this time frame, 1,073software maintenance requests have been processedby DATAPUC.

• After PASM: this period includes requests processedbetween February and October 2009, i.e. after theimplementation of the PASM process. During thistime frame, 1,015 maintenance requests have beenprocessed by DATAPUC.

It is important to mention that the time periods underevaluation include the same sequence of months (Februaryto October). In this way, we guarantee that seasonalactivities in the life of a university – and that maydemand maintenance in the systems under evaluation – areincluded in both periods. As an example of such activities,we can mention the preparation of the university annualbudget or posting the students final grades at the end ofeach academic semester.

In order to evaluate the benefits achieved by the pro-posed process, several data about the maintenance requestsconsidered in our study have been extracted from theChange Management System used by PUC Minas to trackmaintenance activities. For example, we have been able tocollect the following information about each request: reg-istering date (by end-users), description, priority, estimatedwork hours, and accomplished work hours. The ChangeManagement System also provides detailed informationabout the workflow followed by each request, since itsregistration until the deployment of a new release of thesystem under maintenance. For example, it is possible toobtain information about the duration of each activity con-ducted by DATAPUC to handle the software maintenanceand the employees responsible for it.

Figure 2. The SMRMG of Software Maintenance Project.

B. Characterization Methodology

In this section we present the methodology we followedto model the groups of software maintenance requests.This methodology is an adaptation of the characterizationmethodology proposed by Menasce et al. [10], [11] andby Marques-Neto et al. [13] to understand the behavior ofWeb applications users and the behavior of the users ofbroadband Internet services, respectively.

According to this methodology, each software main-tenance request should be modeled as a directed graph,where the nodes represent the states of each request andthe edges represent the transitions between such states.Particular, the states denote the software engineering ac-tivities that must be performed in order to handle amaintenance request. Furthermore, the edges are weightedwith the difference between the end and the start timeof the activities associated to the connected nodes. Thisgraph is semantically rich specially because it allows thevisualization of the various workflows that characterizeeach kind of maintenance request. We named this graph bySMRMG (Software Maintenance Request Model Graph).

For example, Figure 2 presents the SMRMG we haveused to represent a software maintenance project. Whenthe end-user registers a software maintenance project,this request remains in a waiting state (State 1). Afterthe analysis activities have been performed (State 2), therequest can be cancelled (State 5) or it can move to astate where it waits for execution (State 3). The planningactivities associated to the request are associated to State4. After that phase, the request can be cancelled (State 5)or it can enter the implementation phase (State 6). Afterimplementation and in case of failures, the request can besuspended (State 7) or Cancelled (Sate 5). On the otherhand, it moves to the validation phase (State 8). Aftervalidation, the request can return to the planning phase(State 4) or move to deployment (State 10). Finally, thewhole process finishes and the maintenance is considereddeployed (State 11).

To reason about software maintenance requests, we

will rely on the following characteristics (calculated inhours):

• QueueTime: time interval between the registration ofa software maintenance request and its correspondingconclusion or cancellation.

• WaitTime: time interval demanded to start the firstactivity for handling the maintenance request afterits registration in the Change Management System.

• ServiceTime: time interval demanded to handle asoftware maintenance request (including analysis,implementation, validation, deployment etc).

• PlanningTime: time interval demanded to plan andschedule the processing of a software maintenancerequest, including detailing the activities needed toprocess the request, to estimate the effort demandedin its implementation, and to allocate the importantresources.

• AnalysisTime: time interval used in activities ofanalysis of a software maintenance request.

• ImplementaionTime: time interval to implement andto code a software maintenance request.

• ValidationTime: time interval for testing theimplementation of a software maintenance request.

• DeploymentTime: time interval to deploy a softwaremaintenance request and to obtain the final approvalof the involved users.

For such characteristics, the following equations hold:

QueueT ime = WaitT ime+ ServiceT ime

ServiceT ime = PlanningT ime+AnalysisT ime+

ImplementationT ime+

V alidationT ime+

DeploymentT ime

In order to better understand the processing of softwaremaintenance requests at DATAPUC, we have performedthe following tasks:

1) We have generated a SMRMG graph for eachsoftware maintenance request from our data source.

2) For each generated SMRMG we have calculatedthe previous mentioned characteristics, generatinga feature vector for each software maintenancerequest.

3) We have classified the maintenance requests fromour data source according to the following criteria:

time period (i.e. before PASM or after PASM) andtype (urgent maintenances or maintenances handledunder software projects). Therefore, by combiningsuch criteria, we have four maintenance groups.Table II provides detailed information about suchgroups

4) We have applied the k-means clustering algorithmover the feature vectors generated at Step 3.K-means is a widely used clustering algorithm forpartitioning and automatic grouping of unlabeleddatasets [14]. In this paper, we used the k-meansimplementation available in the WEKA tool1.

5) We have evaluated the clusters generated by thek-means for each of the considered maintenancegroups, i.e. (before PASM, urgent maintenance),(before PASM, maintenance projects), (after PASM,urgent maintenance), (after PASM, maintenanceprojects).

Table IIEVALUATED SOFTWARE MAINTENANCE GROUPS

Before PASM (2008) After PASM (2009)Group # Requests Man-Hours # Requests Man-HoursUrgents 1051 2457 953 3089Projects 22 741 62 2730

Since clustering techniques are useful to generate a setof representative elements for a given data source, ourstrategy is to evaluate the benefits and eventual drawbacksderived from the PASM process by comparing the clustersgenerated after and before its adoption. Our claim is thatthis strategy will make the comparison more clear, sincewe can concentrate only on the “most representative”maintenance from the considered data source. The resultsof this comparison are reported on the next subsection.

C. Results

This section reports the results obtained fromclustering the following groups of software maintenancerequests: maintenance projects (Subsection 1) and urgentmaintenances (Subsection 2).

1) Maintenance Projects: Clustering the SMRMGs forthese projects has resulted in two clusters for the periodbefore the PASM adoption and two clusters for the periodafter the adoption of the proposed process by DATAPUC.Table III shows the details of such clusters (in hours).In this table, CV denotes the ratio between the standarddeviation and the respective mean.

An initial observation of the results presented at Ta-ble III reveals a considerable increase in the number ofprojects handled after PASM (62 projects), compared tothe number of projects handled before PASM (22 projects).

1Available at http://www.cs.waikato.ac.nz/ml/weka

Clearly, this results is expected when moving from acontinuous to a periodic policy for handling maintenancerequests. However, the results described in this table alsosupport a detailed analysis on the internals of the projectshandled before and after the PASM adoption.

First, we describe the two clusters generated for theperiod before the PASM adoption:

• Before PASM, Cluster 1: This cluster contains 19software maintenance projects handled betweenFebruary and October 2008. By analyzing the resultsat Table III, we can observe that on average theWaitTime of the requests in this cluster correspondsto 6.6% from their QueueTime (12.16 / 185.00).Furthermore, the ImplementationTime correspondsto 43.2% from the ServiceTime (74.63 / 172.84).Finally, the ValidationTime corresponds to 22.7%from the ServiceTime (39.34 / 172.84). In summary,we can characterize this cluster as the typicalsoftware projects that have emerged at DAPATUCbefore the organization embraced a systematicprocess to group maintenance requests. Generally,such projects have been intuitively proposed by theown developers responsible for the maintenancetasks.

• Before PASM, Cluster 2: This cluster has onlythree maintenance projects that are characterizedby their long ServiceTime (more than 754 hours,against 172.84 hours from Cluster 1). Analyzing thedetails of these three projects, we have discoveredthat two of them are internal projects proposed bythe own developers to improve the internal qualityand the maintainability of the systems under theirresponsibility. Therefore, they can be characterizedas non-typical software projects.

Finally, the results for the 2008 clusters show a highvariability of some characteristics, such as Implementa-tionTime and ValidationTime for Cluster 1 and Analysis-Time and PlanningTime for Cluster 2. This variabilityis expressed on the high values for the CV of thesecharacteristics, which indicates the existence of valuesquite different from the mean time. It points out thatthe software maintenance projects identified before thedeployment of PASM could benefit from a systematicsoftware development process, in order for example toincrease the time of software analysis and design, todecrease the time allocated to implementation, and toreduce the likelihood of project cancellation.

Next, we describe the two clusters presented onTable III generated for the period after the PASMadoption:

• After PASM, Cluster 1: This cluster contains 52software maintenance projects. Therefore, we canrefer to such projects as the typical software projectshandled after the PASM adoption. By analyzing

Table IIICLUSTERS FOR SOFTWARE MAINTENANCE PROJECTS.

Before PASM (2008) After PASM (2009)Cluster 1 Cluster 2 Cluster 1 Cluster 2

Characteristics (19 projects) (3 projects) (52 projects) (10 projects)Mean CV Mean CV Mean CV Mean CV

QueueTime 185.00 0.57 771.87 0.21 245.04 0.66 694.91 0.51WaitTime 12.16 1.01 17.50 0.85 26.85 1.97 11.95 1.11ServiceTime 172.84 0.61 754.37 0.20 218.19 0.68 682.97 0.51AnalysisTime 31.51 1.26 7.48 1.60 48.71 1.05 141.61 1.70PlanningTime 4.98 1.32 4.86 1.65 1.37 2.94 57.35 0.79ImplementationTime 74.63 1.30 348.27 0.73 50.39 0.80 122.56 0.92ValidationTime 39.34 1.28 377.46 0.83 94.19 1.29 249.70 1.10DeploymentTime 21.01 0.85 16.14 0.84 21.04 1.10 104.49 1.38

Figure 3. SMRMG of Software Maintenance Projects for Cluster 1 (2008 and 2009)

the results at Table III, we can observe that forthe projects in this cluster the ImplementationTimecorresponds to 23.1% from the ServiceTime(50.39 / 218.19). Furthermore, the ValidationTimecorresponds to 43.1% from the ServiceTime (94.19 /218.19). Therefore, by constrasting this cluster withthe typical projects before PASM (Cluster 1, BeforePASM) we observe an increase in the time dedicatedto validation (from 22.7% to 43.1%) and a decreasein the time allocated to implementation (from 43.2%to 23.1%). Such results are an indication of thebenefits in terms of software quality achieved by thePASM adoption: developers have dedicated less timeto implementation and more time to validation.

On the other hand, we can observe that onaverage the WaitTime of the requests in this clustercorresponds to 10.9% from their QueueTime (26.85/ 245.04). This represents a small increase regardingthe typical projects before PASM (from 6.6% to10.9%). However, this increment represents the price– in terms of waiting time – end-users must pay

when a organization moves from a continuous to aperiodic policy for handling maintenance requests.

• After PASM, Cluster 2: This cluster includes10 complex projects that demanded almost 695hours of QueueTime. By verifying the details ofsuch requests, we observed that they are projectsproposed to renovate a complete subsystem. It isalso important to mention that the CV mean timevalue for AnalysisTime is the highest among theclusters presented at Table III), which points out thedifficulty of the developers in dealing with long-termand complex projects.

To conclude our analysis, Figure 3 presents theSMRMGs associated to the clusters classified asincluding typical maintenance projects (Cluster 1, beforeand after the PASM). Essentially, such graphs reproducethe SMRMG describing the workflow followed byDATAPUC to handle maintenance requests (Figure 2),but with a probability in the edges. This value denotesthe probability of following the associated transition

Figure 4. SMRMG for Urgent Maintenance Requests

(considering the universe of maintenance requestsrepresented by the cluster). We can observe twodifferences between the presented SMRMGs. First, theprobability to cancel a request was 0.05 before the PASMadoption (transitions from states 2-5 and 6-5). Afteradopting the PASM, this probability has been reduced to0.01. Second, after the PASM adoption, the probabilityto suspend a project has been 0.01 (it was zero beforethe process adoption). However, only one project hasbeen suspended in 2009, after DATAPUC has migrated toour process. Therefore, this single project does not havestatistical significance (we can consider it as an outlier).

2) Urgent Maintenance: We have also clustered theurgent maintenance requests handled before and after thePASM adoption. Our intention was to investigate whetherthe proposed process has had influence in the workflowusually followed to handle such maintenances.

Figure 4 shows the SMRMG we have used to clusterurgent requests. Basically, this SMRMG is similar tothe graph proposed for maintenance projects (showedat Figure 2) with two important differences: (a) we donot have anymore a Under Planning state, since urgentrequests are by nature short-term tasks and planning canbe performed during the analysis phase; (b) there is anew state called Moved to Another Team (State 3) thatdenotes the situation whether a urgent request is assignedto a wrong development team, which is usually discoveredduring the analysis phase. In this case, the request must bereallocated to another team and a new SMRMG is createdto denote its processing by the new team.

Clustering the SMRMGs for urgent maintenancerequests has generated five clusters for each time period:before PASM (clusters showed at Table IV) and afterPASM (clusters showed at Table V). We will start byevaluating the clusters found for the period before thePASM adoption. The two clusters with more requests inthis time interval are the following:

• Before PASM, Cluster 2: This cluster contains 651urgent maintenance requests, with a QueueTimeof 16.79 hours and both ValidationTime andDeploymentTime equal to zero. Therefore, due totheir urgency, such requests have been deployedright after their implementation has finished. We willrefer to this cluster as the typical urgent maintenancerequests.

• Before PASM, Cluster 5: This cluster has 222 urgentmaintenance requests, with a QueueTime superior tothe previous described cluster (25.82 hours). Thisincrease is due to the fact such requests – probablydue to their potential do compromise the correctbehavior of the system – have demanded 10.63 hoursfor ValidationTime. We will refer to this cluster asthe error-prone urgent maintenance requests.

Next, we have reasoned about the clusters generatedfor the period after the PASM adoption. The two clusterswith more requests in this time interval are the following:

• After PASM, Cluster 5: This cluster contains 383urgent maintenance requests, which can be classifiedas typical according to our previous criteria (bothValidationTime and DeploymentTime equal to zero).The QueueTime for the requests in this clusterwas 12.82 hours, therefore almost four hoursless than the typical and urgent requests handledbefore the PASM adoption (Cluster 2, before PASM).

• After PASM, Cluster 2: This cluster has 212 urgentmaintenance requests and the highest QueueTimeamong the clusters found for the period after thePASM adoption (26.51 hours). Basically, this isexplained by the number of hours allocated tovalidation tasks (13.89 hours). Therefore, this clustercan be denoted as including the error-prone andurgent maintenance requests, according to ourprevious definition. Furthermore, we have observeda slightly increase in the WaitTime when comparedto the error-prone and urgent requests clusteredbefore the PASM adoption (from 25.82 hours to26.51 hours).

To summarize, after adopting the PASM process DAT-APUC has achieved on average a six hour reductionon the delivering of typical urgent maintenance requests.Probably, such gain is explained by the fact that the PASMhas introduced in the organization a systematic processto filter urgent maintenances and to buffer maintenancerequests that are not urgent. In other words, the processcontributes to reduce the chances of incorrectly handling amaintenance as urgent. Finally, we have observed a smallincrease on the average time dedicated to more complexand error-prone urgent maintenance requests. However,this increase was due to more time allocated to validationtasks, which can be considered a positive side-effect (since

Table IVCLUSTERS FOR URGENT MAINTENANCE REQUESTS (BEFORE PASM)

Before PASM (2008)Cluster 1 Cluster 2 Cluster 3 Cluster 4 Cluster 5

Characteristics (36 requests) (651 requests) (30 requests) (112 requests) (222 requests)Mean CV Mean CV Mean CV Mean CV Mean CV

QueueTime 31.73 1.98 16.79 3.67 29.42 2.06 16.92 1.03 25.82 2.35WaitTime 2.56 1.72 2.80 1.89 4.08 1.24 2.25 1.76 2.46 1.97ServiceTime 29.16 2.11 13.98 4.38 25.34 2.33 14.67 1.14 23.18 2.61AnalysisTime 1.53 2.71 4.46 9.30 11.79 4.41 2.60 1.88 8.33 6.56ImplementationTime 4.74 1.57 7.02 5.17 12.10 2.73 1.64 2.34 2.28 2.57ValidationTime 7.02 2.57 0.00 0.00 0.00 0.00 0.49 8.30 10.63 2.24DeploymentTime 0.00 0.00 0.00 0.00 0.00 0.00 9.82 1.34 0.00 0.00

Table VCLUSTERS FOR URGENT MAINTENANCE REQUESTS (AFTER PASM)

After PASM (2009)Cluster 1 Cluster 2 Cluster 3 Cluster 4 Cluster 5

Characteristics (201 requests) (212 requests) (96 requests) (61 requests) (383 requests)Mean CV Mean CV Mean CV Mean CV Mean CV

QueueTime 20.87 1.23 26.51 1.73 10.44 1.84 22.15 1.02 12.82 1.95WaitTime 3.28 1.48 3.05 1.69 2.73 1.55 3.27 1.28 3.22 1.72ServiceTime 17.59 1.43 23.46 1.91 7.38 2.54 18.88 1.14 9.60 2.48AnalysisTime 2.54 2.65 3.23 3.79 4.72 2.85 3.07 1.80 2.45 3.66ImplementationTime 4.05 2.41 4.27 4.15 0.98 6.06 3.80 2.12 3.94 3.64ValidationTime 3.98 3.47 13.89 1.51 0.16 9.80 5.81 1.55 0.00 0.00DeploymentTime 6.78 1.30 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

it is well-known that validation activities contribute toincrease the final quality of a software product).

IV. RELATED WORK

Related work can be arranged in two groups: (a) worksproposing models to evaluate and optimize costs ofsoftware maintenance and (b) works proposing processand methods to guide software maintenance.

Cost Models: Banker and Slaughter were among the firstto investigate the benefits provided by the treatment ofmaintenance as software projects [7]. In order to supporttheir claims, they have evaluated 129 software enhance-ment projects from a large financial organization. Theirempirical evaluation has been conducted using a non-parametric method – called Data Envelopment Analysis(DEA) – commonly used to measure productivity. Theyconclude that a cost reduction of up to 36% could havebeen achieved by clustering the evaluated requests intolarger projects. However, they have not conducted subse-quent field experiments in order to confirm such gains.

Tan and Mookerjee have proposed a fairly completemodel to help project managers to set a timetable forhandling maintenance requests [8]. Their model includesnot only decisions about maintenance, but also decisionsabout replacement of a system. Sometimes, the internalquality of a system reaches a level of degradation thatrecommends its completely replacement (to avoid the costsof its maintenance). Thus, the analytical model proposedestimates not only gains due to scale economies butalso gains derived from the complete renovation of a

system. However, their mathematical model has not beenvalidated in real-world software development organiza-tions. In addition, it depends on several parameters suchas cost reduction due to reuse (in dollars/month), costreduction due to the incorporation of new technologies (indollars/month), entropy degree of the system (i.e. systemdegradation due to maintenance) etc. In general, findingreliable values for these parameters is a complex task.

Feng, Mookerjee and Sethi have presented a dynamicprogramming formulation for the software maintenanceproblem [15]. Assuming that maintenance requests arrivein accordance to a Poisson distribution, their model aims tooptimize the long-run total discounted cost of the system(i.e. the waiting cost of each pending maintenance requestsplus maintenance costs). They assume that the waiting costper time unit of each outstanding request is known. It alsoassumed that the cost of maintenance consists of a fixedcost and a correction cost per request. Therefore, theirdynamic programming equations does not consider thatfixed costs can be saved when two or more maintenancerequests are grouped (i.e. that it is possible to achieveeconomies of scale in software maintenance).

The Software Maintenance Project Effort EstimationModel (SMPEEM) uses function points to calculatethe effort required to deliver a set of maintenancerequests [16]. The model is based on three mainfactors: the engineer’s skill (people domain), technicalcharacteristics (product domain) and the maintenanceenvironment (process domain). However, the proposedmodel does not consider the benefits in terms of scale

economies that can be obtained when requests aregrouped in larger software development projects.

Processes and Methods: MANTEMA is a methodol-ogy for managing the software maintenance process. Itproposes a iterative set of activities and tasks to handlemodification requests (MR) [17]. However, MANTEMAdoes not include an explicit activity where MRs arebuffered, evaluated and then grouped in larger projects,i.e. the methodology assumes that MRs are handled ina first-come, first-served basis. MANTOOL is a tool formanaging the software maintenance process according tothe MANTEMA methodology [18].

The Software Maintenance Life Cycle Model (SMLC)recognizes four non-stationary stages in the life of anapplication software system: introduction, growth, matu-ration, and decline [19]. The first three stages are domi-nated by user support, repair, and enhancement requests,respectively. In the last stage, users and project managersstart to plan the replacement of the system. Later, Kunghave proposed a quantitative decision method to detectchanges from a stage to the next one [20]. The goal isto help managers to forecast the demands of maintenance.However, SMLC does not tackle the central goal of thePASM process, i.e. the benefits that can be achieved bygrouping maintenance requests.

Niessink and Van Vliet have investigated the differ-ences between software maintenance and software devel-opment [21]. Their central argument is that maintenanceshould be seen as providing a service, whereas devel-opment is concerned with the construction of products.Consequently, maintenance should be guided by differentprocesses than those normally used during the develop-ment phase. Based on such conclusions, they proposedan IT Service Capability Maturity Model, i.e. a maturitymodel that focuses on services rather than on products.Donzelli have described the challenges faced on the inte-gration of different software development methods whenevolving an aircraft mission system [22]. However, bothworks do not aim to handle maintenance requests under aperiodic policy, as proposed by the PASM process.

By using data from a real project, Donzelli has showedthat different approaches and techniques can be combinedto implement a software maintenance and evolution pro-cess that contributes to reduce maintenance costs [22].However, among the suggested techniques, he does notconsider periodic maintenance policies, as those proposedby the PASM process.

V. CONCLUSIONS

This study has proposed and evaluated a process tosupport the planning and organization of maintenancerequests, named by PASM. The proposed process providesa set of guidelines to support the adoption of a periodicmaintenance policy rather than a continuous policy, com-monly practiced by organizations with in-house mainte-nance teams. Our results derived from deployment PASMat a real-world setting have demonstrated that grouping

software maintenance requests can be performed withoutcompromising the maintenance and evolution of a softwaresystem. Moreover, our results have corroborated the con-clusions of previous studies, which argue that groupingmaintenance requests helps to reduce maintenance costsdue to the gains by scale economies. Moreover, our studyhas showed other benefits provided by the PASM process,such as increase in the time allocated to understand thesoftware maintenance requests and to validate the newrelease of the system under maintenance.

As future work we intend to foster and to evaluate theadoption of the PASM process by other organizationsand to assess the quality of the software released afterthe adoption of the proposed process (for example, usingclassical metrics for object-oriented systems [23], [24]).

ACKNOWLEDGMENT

This research was supported by grants from CNPq andFAPEMIG.

REFERENCES

[1] L. Erlikh, “Leveraging legacy system dollars for e-business,” in IEEE IT Pro, 2000, pp. 17–23.

[2] I. Sommerville, Software Engineering, 7th ed. AddisonWesley, 2004.

[3] J. Sutherland, “Business objects in corporate informationsystems,” ACM Computing Surveys, vol. 27, no. 2, pp. 274–276, 2000.

[4] G. V. Neville-Neil, “The meaning of maintenance,” ACMQueue, vol. 7, no. 7, pp. 20–22, 2009.

[5] B. Boehm, “The economics of software maintenance,” inSoftware Maintenance Workshop, 1983, pp. 9–37.

[6] P. Stachour and D. Collier-Brown, “You don’t knowjack about software maintenance,” Communications ACM,vol. 52, no. 11, pp. 54–58, 2009.

[7] R. D. Banker and S. A. Slaughter, “A field study of scaleeconomies in software maintenance,” Management Science,vol. 43, no. 12, pp. 1709–1725, 1997.

[8] Y. Tan and V. S. Mookerjee, “Comparing uniform and flex-ible policies for software maintenance and replacement,”IEEE Transactions on Software Engineering, vol. 31, no. 3,pp. 238–255, 2005.

[9] R. D. Banker and C. F. Kemerer, “Scale economies in newsoftware development,” IEEE Transactions on SoftwareEngineering, vol. 15, no. 10, pp. 1199–1205, 1989.

[10] D. Menasce and V. Almeida, Scaling for E Business: Tech-nologies, Models, Performance, and Capacity Planning.Prentice Hall, 2000.

[11] D. A. Menasce, V. Almeida, R. C. Fonseca, and M. A.Mendes, “A methodology for workload characterizationof e-commerce sites,” in ACM Conference on ElectronicCommerce, 1999, pp. 119–128.

[12] IEEE, “IEEE standard for software maintenance, IEEEstd 1219-1998,” in IEEE Standards Software Engineering,Volume Two: Process Standards. New York: IEEE Press,1999, vol. 2.

[13] H. Marques-Neto, J. Almeida, L. Rocha, W. Meira,P. Guerra, and V. Almeida, “A characterization of broad-band user behavior and their e-business activities,” SIG-METRICS Performance Evaluation Review, vol. 32, no. 3,pp. 3–13, 2004.

[14] J. Hartigan, Clustering Algorithms. John Wiley and Sons,1975.

[15] Q. Feng, V. S. Mookerjee, and S. P. Sethi, “Optimal policiesfor the sizing and timing of software maintenance projects,”European Journal of Operational Research, vol. 173, no. 3,pp. 1047–1066, 2006.

[16] Y. Ahn, J. Suh, S. Kim, and H. Kim, “The software main-tenance project effort estimation model based on functionpoints,” Journal of Software Maintenance, vol. 15, no. 2,pp. 71–85, 2003.

[17] M. P. Usaola, M. P. Velthuis, and F. R. Gonzalez, “Using aqualitative research method for building a software main-tenance methodology,” Software Practice and Experience,vol. 32, no. 13, pp. 1239–1260, 2002.

[18] ——, “Mantool: a tool for supporting the software main-tenance process,” Journal of Software Maintenance andEvolution: Research and Practice, vol. 13, no. 2, pp. 77–95,2001.

[19] H.-J. Kung and C. Hsu, “Software maintenance life cyclemodel,” in 14th IEEE International Conference on SoftwareMaintenance (ICSM), 1998, pp. 113–121.

[20] H.-J. Kung, “Quantitative method to determine softwaremaintenance life cycle,” in 20th IEEE International Con-ference on Software Maintenance (ICSM), 2004, pp. 232–241.

[21] F. Niessink and H. van Vliet, “Software maintenance froma service perspective,” Journal of Software Maintenanceand Evolution: Research and Practice, vol. 12, no. 2, pp.103–120, 2000.

[22] P. Donzelli, “Tailoring the software maintenance process tobetter support complex systems evolution projects,” Journalof Software Maintenance and Evolution: Research andPractice, vol. 15, no. 1, pp. 27–40, 2003.

[23] S. R. Chidamber and C. F. Kemerer, “A metrics suite forobject oriented design,” IEEE Transactions on SoftwareEngineering, vol. 20, no. 6, pp. 476–493, 1994.

[24] R. K. Bandi, V. K. Vaishnavi, and D. E. Turk, “Predict-ing maintenance performance using object-oriented designcomplexity metrics,” IEEE Transactions on Software Engi-neering, vol. 29, no. 1, pp. 77–87, 2003.