13.07.2015 Views

Software Process Improvement in Web Time

Software Process Improvement in Web Time

Software Process Improvement in Web Time

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Software</strong> <strong>Process</strong> <strong>Improvement</strong> <strong>in</strong> <strong>Web</strong> <strong>Time</strong> 1Karl E. Wiegers<strong>Process</strong> Impact716-377-5110www.processimpact.comMuch of the software process improvement literature describes how large corporations and governmentcontractors have changed their software development and management processes over a long period oftime. Commercial application developers and <strong>Web</strong> development groups sometimes conclude that processimprovement doesn’t apply to, and isn’t feasible for, their time scales, product types, and cultures.Not so! This article relates the five-month process improvement experience of a team of about 25people do<strong>in</strong>g <strong>Web</strong> development at a major corporation. We tackled areas <strong>in</strong>clud<strong>in</strong>g project management,change control, requirements eng<strong>in</strong>eer<strong>in</strong>g, and quality practices. The tangible and cultural benefits weachieved have the potential to help this group meet its commitments to deliver <strong>Web</strong> applications (“sitelets”)<strong>in</strong> the very public eye: the company’s 41,000-page <strong>Web</strong> site averages more than one million hits per day.The software practice areas the group chose to improve are neither novel nor profound. Indeed, that isa significant message. Even a group that undertakes fast-paced <strong>Web</strong> projects can benefit from theapplication of traditional software process improvement approaches. Like any other project, <strong>Web</strong> projectshave users, requirements, schedules, resources, and quality goals. Superior technical and managementprocesses can yield superior results <strong>in</strong> the world of <strong>Web</strong> time, just as <strong>in</strong> any other software developmentsett<strong>in</strong>g.THE GROUPThe <strong>Web</strong> development group at Eastman Kodak Company began several years ago with just a fewpeople develop<strong>in</strong>g simple sites. They soon experienced rapid growth <strong>in</strong> team size, application size andcomplexity, and the number of new sitelets requested by bus<strong>in</strong>ess units. The group came to <strong>in</strong>clude asoftware architecture team of about a dozen highly experienced and talented developers and a “customerexperience” team with about 10 young, creative visual designers and several human factors specialists.Unfortunately, development and management processes did not evolve <strong>in</strong> parallel with work demands.Practices that worked well for a few people do<strong>in</strong>g small projects were not adequate for the larger teams,more complex projects, and backlog of requests that came about over time. This led to the group’s <strong>in</strong>ternalcommitment to focus some energy on process improvement. Their goals <strong>in</strong>cluded♦♦♦♦manag<strong>in</strong>g the huge <strong>in</strong>flux of new workdevelop<strong>in</strong>g a foundation of common practices to help new team members quickly become effectivema<strong>in</strong>ta<strong>in</strong><strong>in</strong>g the high quality of work while improv<strong>in</strong>g productivityexchang<strong>in</strong>g knowledge effectively among group membersEach project is assigned a multifunctional team, to avoid the expectation that everyone be a fully1This paper was orig<strong>in</strong>ally published <strong>in</strong> IEEE <strong>Software</strong>, July/August 1999 © 1999 IEEE. Personal use of this material ispermitted. However, permission to repr<strong>in</strong>t/republish this material for advertis<strong>in</strong>g or promotional purposes or for creat<strong>in</strong>g newcollective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work <strong>in</strong> other worksmust be obta<strong>in</strong>ed from the IEEE.


proficient generalist. A typical project team might <strong>in</strong>clude a project leader, a technical lead, a design lead, abus<strong>in</strong>ess unit representative, a software developer, a database expert, and a human factors expert. Oneconsequence of this structure is that each team member works on several projects at once, with theaccompany<strong>in</strong>g challenge of sett<strong>in</strong>g priorities and the <strong>in</strong>efficiency caused by frequent task switch<strong>in</strong>g andmany communication <strong>in</strong>terfaces.Some development <strong>in</strong>frastructure and process was already <strong>in</strong> place <strong>in</strong> this group, <strong>in</strong>clud<strong>in</strong>g arecommended <strong>Web</strong> site creation process. However, there was considerable variation <strong>in</strong> the ways different<strong>in</strong>dividuals performed common activities, and many holes rema<strong>in</strong>ed <strong>in</strong> the development, management, andquality practices be<strong>in</strong>g used.OUR APPROACHThe software architecture team was responsible for develop<strong>in</strong>g the software beh<strong>in</strong>d each <strong>Web</strong> sitelet.As their customers’ quantity and quality expectations <strong>in</strong>creased, the software architecture team membersrealized that their current approaches were not adequate to the <strong>in</strong>flux of work. A bra<strong>in</strong>storm<strong>in</strong>g sessionpo<strong>in</strong>ted to several areas for possible action: peer reviews, test<strong>in</strong>g, problem track<strong>in</strong>g, requirements gather<strong>in</strong>g,and project plann<strong>in</strong>g. Additional hot spots soon became clear, <strong>in</strong>clud<strong>in</strong>g shortcom<strong>in</strong>gs <strong>in</strong> the <strong>Web</strong> sitecreation process and the need to prioritize the many <strong>in</strong>com<strong>in</strong>g requests for new work. As an <strong>in</strong>ternal Kodakconsultant, I jo<strong>in</strong>ed the software architecture team as a full-time process improvement leader and workedwith them hands-on for five months to address these and other issues.Team members were honest about acknowledg<strong>in</strong>g their problems, an essential precondition for effectiveprocess improvement. While they had the usual concerns about “process” add<strong>in</strong>g unconstructive overheadto their work, they appreciated the prospect of some <strong>in</strong>creased structure. The structure we eventuallyprovided ranged from more focused post-project review meet<strong>in</strong>gs to templates for document<strong>in</strong>g projectplans and requirements.As with most development groups, many of our problems related to the key process areas found at level2 of the Capability Maturity Model for <strong>Software</strong>. 1 However, we chose not to pursue a pure CMMapproach. We were not concerned about specifically satisfy<strong>in</strong>g the criteria to achieve CMM level 2,although we certa<strong>in</strong>ly wanted to enjoy the level 2 results of predictability and stability. We would have beenfoolish had we not used the CMM as a guide for address<strong>in</strong>g our problem areas; it would have been equally<strong>in</strong>appropriate to apply the CMM dogmatically. 2 While my understand<strong>in</strong>g of the CMM helped direct ouractivities, we never even discussed the CMM dur<strong>in</strong>g the 5 months I worked on this process improvementproject.We focused on a few improvement areas at a time, with two or three group members collaborat<strong>in</strong>g withme <strong>in</strong> a small work<strong>in</strong>g group for each area. We wrote an action plan for each improvement <strong>in</strong>itiative us<strong>in</strong>gthe template illustrated <strong>in</strong> Figure 1. The action plans identified goals for the improvement activity,measures of success, the participants, and up to 10 <strong>in</strong>dividual action items. Every action item identified an<strong>in</strong>dividual as the owner, a target date for completion, deliverables to produce, and resources needed.A simple, focused improvement action plan makes it easy to know what tasks must be executed andprovides a way to track progress. If you need a full-blown project management tool to manage your tacticalaction plans, they are scoped too large.The methods for deliver<strong>in</strong>g process documentation to the group must match the culture. As this was a<strong>Web</strong> development group, publish<strong>in</strong>g the process documents on our group’s <strong>in</strong>tranet was an obvious choice.We published the more complex procedures <strong>in</strong> Adobe Portable Document Format (PDF) so that userscould pr<strong>in</strong>t a complete, formatted copy. The procedures were also broken <strong>in</strong>to hierarchically sensiblecomponents and published <strong>in</strong> HTML format. Templates to help team members create project documents,such as project plans and requirements specifications, were published as Microsoft Word documents.<strong>Software</strong> <strong>Process</strong> <strong>Improvement</strong> <strong>in</strong> <strong>Web</strong> <strong>Time</strong> Page 2


Project: _____________________________ Date: ________Estimated Completion Date for All Activities: ______________Goals:Measures of Success:Scope of Organizational Impact:Staff<strong>in</strong>g and Participants:Name Role <strong>Time</strong> Commitment_______________ ____________________ _________________Track<strong>in</strong>g and Report<strong>in</strong>g <strong>Process</strong>:Dependencies, Risks, and Constra<strong>in</strong>ts:Action Item Number: __ Owner: _____________ Due Date: ________Description of Activity:Deliverable(s):Resources Needed:Figure 1. <strong>Process</strong> improvement action plan template.The specific improvements we undertook <strong>in</strong> each process area are summarized <strong>in</strong> Table 1. While Icannot claim that every improved practice is be<strong>in</strong>g applied religiously by every member of the team onevery project, each technique has been used enough times to demonstrate success and to lay the foundationfor future benefits. Whether the group can susta<strong>in</strong> these improvements <strong>in</strong> the face of cont<strong>in</strong>ued growth andtime pressures will depend on management commitment and the education of new team members.PROJECT MANAGEMENTAs the number and size of our projects <strong>in</strong>creased, we realized we needed improvements <strong>in</strong> our projectmanagement practices. Many small software groups equate a project plan with a work breakdown structureor a schedule of major tasks. To succeed, though, even small, fast-paced projects need more detail <strong>in</strong> theirplans. The trick is to develop plans that are just detailed enough to make sure you have a thoroughunderstand<strong>in</strong>g of your project and thereby the ability to control it.Project plan templateWe began by def<strong>in</strong><strong>in</strong>g a standard template for our project plans. Document templates rem<strong>in</strong>d the authorto th<strong>in</strong>k about aspects of the project that might otherwise be overlooked; they also provide sections <strong>in</strong> whichto capture the myriad bits of <strong>in</strong>formation necessary for effective project execution. We started with IEEEStandard 1058.1, a template for software project management plann<strong>in</strong>g, and adapted it to fit our needs. 3(The current version is IEEE Std 1058-1998. 4 ) Templates should always be tailored to your specificcircumstances.One of the first people to try out the template on a real project came to me one day, somewhatdiscouraged. “I wrote the plan, but I didn’t know what to put <strong>in</strong> many of the sections,” she lamented. Shewas concerned not because the template conta<strong>in</strong>ed a lot of sections that weren’t important to her project,but because the sections were important and she simply did not have the <strong>in</strong>formation. The project plantemplate was well received because it provided a valuable framework for discussions among projectstakeholders and helped elicit the necessary <strong>in</strong>formation.<strong>Software</strong> <strong>Process</strong> <strong>Improvement</strong> <strong>in</strong> <strong>Web</strong> <strong>Time</strong> Page 3


TABLE 1. IMPROVEMENT AREAS PURSUED AND APPROACHES USED<strong>Improvement</strong> AreaApproaches UsedProject managementPost-project reviewsRisk managementChange controlRequirements eng<strong>in</strong>eer<strong>in</strong>gDevelopment life cyclePeer reviewsProject plan templateProject prioritization modelPost-project review process descriptionCollection of lessons learnedRisk documentation templateInformal team risk analysisRisk management action planChange control process descriptionChange control toolOne-day requirements tra<strong>in</strong><strong>in</strong>g classRequirements specification templateWorkshops to elicit use casesDef<strong>in</strong>ed life cycle for <strong>Web</strong> site creation processProcedures, checklists, templates, examples of deliverablesHalf-day peer review tra<strong>in</strong><strong>in</strong>g classPeer review process description and work aidsOne section of the project plan template clarifies the roles and responsibilities of the various projectparticipants. Confusion about such roles emerged as a problem at two post-project reviews. For example,on one project, various participants from the customer experience team thought several different peoplewere the prime po<strong>in</strong>t of contact from the software architecture team. Clarify<strong>in</strong>g roles and responsibilitiesenhanced the group’s culture by help<strong>in</strong>g diverse people collaborate more effectively on thesemultidiscipl<strong>in</strong>ary projects.Prioritiz<strong>in</strong>g projects<strong>Software</strong> process improvement research usually addresses the plann<strong>in</strong>g and track<strong>in</strong>g of large projects.The Kodak <strong>Web</strong> group, along with many software ma<strong>in</strong>tenance groups, faces a different challenge: how todeal with a large number of new project requests. At one po<strong>in</strong>t, our queue conta<strong>in</strong>ed more than 150 requestsfor new or enhanced projects. We decided to develop a project prioritization model by adapt<strong>in</strong>g somepr<strong>in</strong>ciples from Quality Function Deployment. 5 With this model, we hoped to identify the most appropriateprojects to undertake us<strong>in</strong>g the limited resources available, chosen from the many worthy projects that ourcustomers had requested.We identified a dozen factors that <strong>in</strong>dicate how favorable a proposed project would be for us toundertake. The factors <strong>in</strong>clude♦♦immediacy of the needlevel of technology risk<strong>Software</strong> <strong>Process</strong> <strong>Improvement</strong> <strong>in</strong> <strong>Web</strong> <strong>Time</strong> Page 4


♦♦♦♦extent to which the project could exploit our current <strong>Web</strong> development capabilitiesbus<strong>in</strong>ess valuealignment with known demographics of our current <strong>Web</strong> site visitorsdegree of user <strong>in</strong>terface complexityWe assigned a relative weight to each factor; the weights totaled 100. Then we def<strong>in</strong>ed a rat<strong>in</strong>g scalefor each “favorability factor,” whereby each proposed project could receive a score on each factor. Bymultiply<strong>in</strong>g factor score times factor weight and summ<strong>in</strong>g the results, we could generate an overallfavorability score for each candidate project.We calibrated the model us<strong>in</strong>g several completed projects. We adjusted the factors, their weights, andthe rat<strong>in</strong>g scales until the model yielded results consistent with our after-the-fact assessment of howappropriate each of those projects really was. The model had to generate a significant range of scores so wecould dist<strong>in</strong>guish the great project candidates from less desirable ones.Once calibrated, the model did help us get a better handle on the projects that were most appropriatefor us to undertake and helped us manage the large request backlog with confidence that companyresources were be<strong>in</strong>g <strong>in</strong>vested <strong>in</strong> the best way. The model was well received by most of our group’sstakeholders, <strong>in</strong>clud<strong>in</strong>g multiple bus<strong>in</strong>ess units, managers, and practitioners. A model like this could beuseful for any organization confronted by a large number of projects, all of which are important. Identifyyour own success drivers, calibrate the model based on work already completed, and use the output fromthe model as a part—but only a part—of the decision-mak<strong>in</strong>g process.POST-PROJECT REVIEWSThe Kodak <strong>Web</strong> team had previously conducted post-project reviews, but we wanted to make themmore structured. Post-project reviews provide an opportunity to look back at a completed project (or from amid-project checkpo<strong>in</strong>t) and capture the lessons learned. 6 We def<strong>in</strong>ed a post-project review process that<strong>in</strong>cluded a summary of th<strong>in</strong>gs that went well, a frank exploration of th<strong>in</strong>gs that could have gone better, anda list of any experiences that surprised us.Our post-project reviews took the form of facilitated workshops that <strong>in</strong>cluded the project participantsfrom both the software architecture and customer experience teams. The facilitator emphasizedcollaboration, steer<strong>in</strong>g the participants away from any blam<strong>in</strong>g behaviors. The participants reallycontributed constructively to these post-project reviews. From the raw data collected dur<strong>in</strong>g the workshop,we extracted perhaps a dozen lessons learned, which we organized <strong>in</strong>to categories and collected on one ofour process <strong>Web</strong> pages. We tried to write the lessons learned <strong>in</strong> a neutral tone, so the reader couldn’t tell ifwe learned the lesson because the project went extremely well or because we made a mistake. Futureproject managers can review these lessons to rem<strong>in</strong>d them of practices they should <strong>in</strong>corporate <strong>in</strong>to theirplans, and risks they may need to control. The project team also uses the post-project review results todevelop an action plan address<strong>in</strong>g the key issues revealed by the review.The <strong>in</strong>sights ga<strong>in</strong>ed by reflect<strong>in</strong>g on recently completed projects can be of great value <strong>in</strong> a rapidlyevolv<strong>in</strong>g environment like <strong>Web</strong> development. The post-project reviews were well received because allproject participants knew that th<strong>in</strong>gs had not gone perfectly, and they were will<strong>in</strong>g to put their issues on thetable and learn from them. Issues raised dur<strong>in</strong>g the post-project reviews meshed nicely with those generatedby the other process improvement activities.RISK MANAGEMENTAlthough it has been identified as a software <strong>in</strong>dustry best practice, 7 formal risk management is notregularly practiced on many small development projects. We developed ways to manage the tactical risksfac<strong>in</strong>g <strong>in</strong>dividual projects, and also felt it was important to take a look at the strategic risks threaten<strong>in</strong>g thesuccess of the group’s activities as a whole.<strong>Software</strong> <strong>Process</strong> <strong>Improvement</strong> <strong>in</strong> <strong>Web</strong> <strong>Time</strong> Page 5


The software architecture team identified more than 45 strategic risk items. Many of these perta<strong>in</strong>ed tothe security and reliability of the <strong>Web</strong> delivery <strong>in</strong>frastructure, critical for a heavily trafficked site engaged<strong>in</strong> e-commerce. As an example, one risk factor was that there might be security shortcom<strong>in</strong>gs that couldallow users to access off-limits directories on the <strong>Web</strong> server. Several risk factors related to the lead<strong>in</strong>gedge<strong>Web</strong> technologies the group was us<strong>in</strong>g. Others had to do with organizational, bus<strong>in</strong>ess unit, andmanagement issues, <strong>in</strong> part reflect<strong>in</strong>g the grow<strong>in</strong>g pa<strong>in</strong>s of this young development organization.We applied conventional risk management pr<strong>in</strong>ciples, estimat<strong>in</strong>g the probability that each risk couldmaterialize <strong>in</strong>to an actual problem and the impact if it did. This analysis helped us to prioritize theidentified risks. Aga<strong>in</strong>, we wrote an action plan to beg<strong>in</strong> mitigat<strong>in</strong>g risks selected from the top of thepriority list. Unfortunately, monitor<strong>in</strong>g the risk management actions did not float to the top of the busygroup manager’s priority list. To help make risk management succeed, assign a risk officer other than theproject or group manager to coord<strong>in</strong>ate risk management activities, and <strong>in</strong>corporate risk track<strong>in</strong>g <strong>in</strong>to yourrout<strong>in</strong>e project status track<strong>in</strong>g.CHANGE CONTROLSmall software teams often use an <strong>in</strong>formal approach for mak<strong>in</strong>g changes to their products. The personwho has an idea or who found a bug tells the programmer, who makes the change. This method does notscale up well. Change control and problem track<strong>in</strong>g constitute another software <strong>in</strong>dustry best practice. 7Despite the malleability of <strong>Web</strong> site software and data content, discipl<strong>in</strong>e is needed to effectively managechanges to <strong>Web</strong> products. We needed to manage five k<strong>in</strong>ds of changes:♦♦♦♦♦requests for new projectschanges to the requirements for projects currently under developmentproblem reports concern<strong>in</strong>g current systems or the <strong>Web</strong> <strong>in</strong>frastructureenhancements to current systemscontent changes <strong>in</strong> current systemsPractitioners sometimes th<strong>in</strong>k that simply <strong>in</strong>stall<strong>in</strong>g a problem-track<strong>in</strong>g tool constitutes a completechange control system. However, a change control system <strong>in</strong>cludes both a documented process and clearprocedures for the activities to be performed, and tools to automate some of these activities.We collected requirements for the change control system from several stakeholders who would use it orbe affected by it. Request<strong>in</strong>g voice-of-the-customer <strong>in</strong>put is a way to foster buy-<strong>in</strong> to the process changesyou propose. Those affected become part of the solution, rather than be<strong>in</strong>g victims of the improvement<strong>in</strong>itiative. This is particularly important with processes such as change control that redef<strong>in</strong>e the <strong>in</strong>terfacethrough which your customers and other stakeholders <strong>in</strong>teract with the software group.Based on these requirements and on previous experience, we wrote a change control procedure, hadseveral stakeholders review it, and published it on our <strong>in</strong>ternal process <strong>Web</strong> page. The pr<strong>in</strong>cipal <strong>in</strong>itialbenefit was that we established a formal mechanism for collect<strong>in</strong>g and evaluat<strong>in</strong>g the requests for newprojects that came <strong>in</strong> from bus<strong>in</strong>ess units every week. For a few weeks, the two people who managed theresult<strong>in</strong>g project queue also piloted the change control function us<strong>in</strong>g paper forms. Dur<strong>in</strong>g that time, weexplored commercial problem-track<strong>in</strong>g tools that might meet our need for a Unix-based server and <strong>Web</strong>baseduser <strong>in</strong>terface. The feedback from this pilot helped us improve the process before we committed toselect<strong>in</strong>g, <strong>in</strong>stall<strong>in</strong>g, and customiz<strong>in</strong>g a specific tool.The community was receptive to us<strong>in</strong>g this change control process to reduce the chaos of the changebacklog, with its uncerta<strong>in</strong> change request status and unclear decision mak<strong>in</strong>g. Any developmentorganization of any size can apply formal change control <strong>in</strong> this way. One success factor for implement<strong>in</strong>gchange control is to m<strong>in</strong>imize the process overhead of submitt<strong>in</strong>g and evaluat<strong>in</strong>g change requests. Anotheris to make sure the change process, and the people who practice it, are responsive to submitted requests. Ifa process doesn’t work, people will work around it.<strong>Software</strong> <strong>Process</strong> <strong>Improvement</strong> <strong>in</strong> <strong>Web</strong> <strong>Time</strong> Page 6


REQUIREMENTS ENGINEERINGWhile the group had built a series of successful <strong>Web</strong> sites based on <strong>in</strong>formal requirements collectedfrom bus<strong>in</strong>ess units, such a casual approach breaks down with larger and more complex projects. Althoughsome people hold that document<strong>in</strong>g the project requirements imposes excessive process overhead on smallprojects, the costs associated with rework<strong>in</strong>g a software product because of poorly understood requirementscan be substantial. We took several actions to improve our requirements eng<strong>in</strong>eer<strong>in</strong>g processes, specificallyrequirements elicitation and specification. We began by adapt<strong>in</strong>g the IEEE software requirementsspecification template (IEEE Std 830)3 to meet the nature and scale of our projects. For example, we addeda section on <strong>in</strong>ternationalization requirements, an important aspect of many <strong>Web</strong> projects.The entire <strong>Web</strong> development team attended a one-day tra<strong>in</strong><strong>in</strong>g class on requirements development andmanagement. This helped the participants reach a common understand<strong>in</strong>g about requirements concepts andpractices, such as the application of use cases for elicit<strong>in</strong>g requirements, and dialog maps for model<strong>in</strong>g user<strong>in</strong>terfaces.Several project leaders began apply<strong>in</strong>g the use case method. An <strong>in</strong>itial attempt floundered because toomany people attended the workshops that captured and def<strong>in</strong>ed the use cases. When we reduced theworkshop size from 12 people to six, progress accelerated nicely. Two bus<strong>in</strong>ess unit participants stated thatthe use case approach helped them to clarify the scope of their project and to understand the actions aprospective <strong>Web</strong> surfer would be able to perform at their new sitelet. Months later, the <strong>Web</strong> group manager<strong>in</strong>dicated that the <strong>in</strong>creased emphasis on gather<strong>in</strong>g requirements was a major factor <strong>in</strong> the group’ssuccessful completion of several new projects.DEVELOPMENT LIFE CYCLEMillions of people are now amateur <strong>Web</strong> site developers. While a code-and-fix life cycle can work forthe <strong>in</strong>dividual assembl<strong>in</strong>g a few simple pages, build<strong>in</strong>g complex <strong>Web</strong> sites <strong>in</strong>volves an <strong>in</strong>timatecollaboration among programmers, database experts, visual design specialists, and content providers. Awell-def<strong>in</strong>ed but flexible development life cycle can help.Our group’s exist<strong>in</strong>g <strong>Web</strong> site creation process was th<strong>in</strong>ly documented, lacked a support<strong>in</strong>g<strong>in</strong>frastructure, did not relate to how projects really were performed, and was not practiced <strong>in</strong> a consistentway. Several post-project reviews revealed problems that an improved development life cycle process couldsolve. This is another example where traditional software process approaches can benefit a <strong>Web</strong>development team when the scope of the team’s projects exceeds its ability to deliver through <strong>in</strong>formalcollaboration.First, we surveyed the team about the shortcom<strong>in</strong>gs of the current process. Based on the responses,several team members then outl<strong>in</strong>ed a rational sequence of phases through which our projects shouldprogress. For each phase, we allocated activities, identified the major deliverables, and def<strong>in</strong>ed entry andexit criteria. We generated lists of activities and deliverables by comb<strong>in</strong><strong>in</strong>g the contents of the current lifecycle, elements from similar models found with<strong>in</strong> Kodak, and the actual experiences of what people reallydid on their projects.We recognized that some activities bridge two life-cycle phases. <strong>Web</strong> projects <strong>in</strong>clude development ofboth content and the enabl<strong>in</strong>g software. The site design has to take place before the software architecturedesign can be completed. We <strong>in</strong>corporated this time offset <strong>in</strong> allocat<strong>in</strong>g activities and deliverables to eachphase. For example, phase 2 <strong>in</strong>cludes development of user <strong>in</strong>terface navigation design and the prelim<strong>in</strong>arysoftware functional specification. The functional specification is completed and basel<strong>in</strong>ed <strong>in</strong> phase 3, afterthe <strong>in</strong>terface design is completed. Life-cycle models that artificially constra<strong>in</strong> multiple-phase activities to as<strong>in</strong>gle phase do not reflect the way people actually work.We documented the improved <strong>Web</strong> site creation life cycle on our <strong>in</strong>tranet, with descriptions of eachactivity and deliverable. Both the customer experience and software architecture teams responded favorablyto the improved life-cycle process, because it represented a more realistic approach to execut<strong>in</strong>g their<strong>Software</strong> <strong>Process</strong> <strong>Improvement</strong> <strong>in</strong> <strong>Web</strong> <strong>Time</strong> Page 7


projects. We are now support<strong>in</strong>g this framework by develop<strong>in</strong>g procedures and checklists to facilitateperformance of the key activities and by collect<strong>in</strong>g templates and examples of the deliverables.Early experience suggests that project leaders who feel their management-imposed schedule deadl<strong>in</strong>esare unrealistic may be tempted to hide beh<strong>in</strong>d the more extensive documentation demands of this new lifecycleprocess as a justification for not meet<strong>in</strong>g deadl<strong>in</strong>es. Not surpris<strong>in</strong>gly, this approach does not sit wellwith upper managers. We need to evolve the culture to a state <strong>in</strong> which new processes are seen as enablers,not obstacles, and as structures, not straitjackets. This will take time.PEER REVIEWSThe group wished to beg<strong>in</strong> hold<strong>in</strong>g peer reviews and <strong>in</strong>spections of software work products, another<strong>in</strong>dustry best practice, 7 both for the quality benefits of f<strong>in</strong>d<strong>in</strong>g defects early and for the <strong>in</strong>crease <strong>in</strong><strong>in</strong>formation exchange among team members. We began by send<strong>in</strong>g the software architecture team to a halfdayclass on software technical reviews. Two members of the team then worked with me to develop asuitable peer review process, which <strong>in</strong>cluded both formal (<strong>in</strong>spection) and <strong>in</strong>formal review procedures. Wepublished the process documents on our <strong>in</strong>tranet, along with forms for captur<strong>in</strong>g review results andchecklists of common defect types found <strong>in</strong> various work products.Although the team members were receptive, peer reviews were not one of our great successes. Theconsensus was that reviews would not become a regular practice until they were <strong>in</strong>corporated <strong>in</strong>to projectplans and schedules. Therefore, we <strong>in</strong>cluded reviews as key activities to be performed at variouscheckpo<strong>in</strong>ts <strong>in</strong> our new <strong>Web</strong> site creation life cycle.I th<strong>in</strong>k it is quite difficult to establish a culture of technical peer reviews. Ask<strong>in</strong>g someone else to tellyou what’s wrong with your work is a learned behavior, not an <strong>in</strong>st<strong>in</strong>ct. To help make a review programsucceed, tra<strong>in</strong> the whole team, focus your limited review time on high-risk items, and publicly recognizethose team members who rout<strong>in</strong>ely solicit a little help from their friends.WHAT WE LEARNEDFive months after beg<strong>in</strong>n<strong>in</strong>g our process improvement activities, we surveyed the members of thecustomer experience and software architecture teams to gauge their reaction to the program. The responseswere strongly favorable. We could not quantify the results, but the improvement areas of change control,life-cycle def<strong>in</strong>ition, project prioritization, requirements eng<strong>in</strong>eer<strong>in</strong>g, and project plann<strong>in</strong>g were perceived tohave yielded the most benefit. Many respondents mentioned the value of reduc<strong>in</strong>g the chaos level thoughimproved project management and resource plann<strong>in</strong>g. No one <strong>in</strong>dicated that any of the improvement effortswere a waste of time.The respondents agreed that hav<strong>in</strong>g a dedicated process improvement leader on staff was highlybeneficial. Several participants felt our change <strong>in</strong>itiative had proceeded a little too quickly for comfort, eventhough new processes were phased <strong>in</strong> gradually over five months. This po<strong>in</strong>ts to the limits that any group,even one with highly capable and receptive members like this one, has <strong>in</strong> accept<strong>in</strong>g and <strong>in</strong>ternaliz<strong>in</strong>g newways of work<strong>in</strong>g.Several factors converged to make this process improvement activity successful:♦♦♦Accumulated pa<strong>in</strong> from the current state of affairs motivated team members to pursue betterprocesses.Management demonstrated <strong>in</strong>itial commitment by br<strong>in</strong>g<strong>in</strong>g a process improvement leader <strong>in</strong>to thegroup and by clearly stat<strong>in</strong>g expectations about the importance of mak<strong>in</strong>g appropriate changes.The team leaders got <strong>in</strong>volved hands-on <strong>in</strong> the improvement activities.<strong>Software</strong> <strong>Process</strong> <strong>Improvement</strong> <strong>in</strong> <strong>Web</strong> <strong>Time</strong> Page 8


♦♦♦Many practitioners participated <strong>in</strong> devis<strong>in</strong>g, review<strong>in</strong>g, pilot<strong>in</strong>g, and critiqu<strong>in</strong>g suggested newprocedures and document templates.We had access to a corporate repository of software eng<strong>in</strong>eer<strong>in</strong>g “good practices” that <strong>in</strong>cludedsample procedures, templates, and work product examples across the entire range of softwareeng<strong>in</strong>eer<strong>in</strong>g and management practice areas. 8 If you don’t have such resources available, start withthe IEEE <strong>Software</strong> Eng<strong>in</strong>eer<strong>in</strong>g Standards Collection. 3,4 Another useful product is EssentialSETfrom the <strong>Software</strong> Productivity Centre (www.spc.ca), which conta<strong>in</strong>s more than 50 sampledocuments cover<strong>in</strong>g the gamut of software project development and management activities.Perhaps most significantly, practitioners from both the software architecture team and the customerexperience team were will<strong>in</strong>g to try new ways of work<strong>in</strong>g, despite their tremendous workloads andschedule pressures.If I were to undertake a similar enterprise aga<strong>in</strong>, I would engage middle management earlier to providemore “pull” for the improvement <strong>in</strong>itiative. This lack of early engagement did not pose a problem <strong>in</strong> ourcase, but management must cont<strong>in</strong>ue to set strong expectations if the practices we launched are to be<strong>in</strong>stitutionalized <strong>in</strong>to rout<strong>in</strong>e application. This may also help turn action plans <strong>in</strong>to useful actions.One of the leaders of our group succ<strong>in</strong>ctly expressed an ideal attitude toward process improvement.She said, “Our processes give us the ability to select the right projects and complete them on schedule.” Sherecognized that successful software groups of any k<strong>in</strong>d prosper because of <strong>in</strong>telligently chosen processes,not <strong>in</strong> spite of them. Structured software process improvement is a valuable means to improve the resultsfrom project teams work<strong>in</strong>g at the frantic pace of Internet time, as well as for more traditional softwaredevelopment projects. This group’s experience demonstrates that even a team deal<strong>in</strong>g with lead<strong>in</strong>g-edgetechnologies, rapid projects, and heavy bus<strong>in</strong>ess pressures can—<strong>in</strong>deed must—improve the methods it usesto manage and implement software projects.ACKNOWLEDGMENTSNone of the improvement efforts we undertook would have borne fruit without the commitment of the<strong>Web</strong> development group’s leadership team, LuAnne Cenci, Lee Corkran, Alan Dray, and Deborah Patrie.REFERENCES1. <strong>Software</strong> Eng. Inst., The Capability Maturity Model: Guidel<strong>in</strong>es for Improv<strong>in</strong>g the <strong>Software</strong> <strong>Process</strong>,Addison Wesley Longman, Read<strong>in</strong>g, Mass., 1995.2. K. Wiegers, “<strong>Software</strong> <strong>Process</strong> <strong>Improvement</strong>: Ten Traps to Avoid.” <strong>Software</strong> Development, May 1996,pp. 51-58.3. IEEE <strong>Software</strong> Eng. Standards Collection, 1997 ed., IEEE Computer Soc. Press, Los Alamitos, Calif.,1997.4. IEEE <strong>Software</strong> Eng. Standards Collection, 1999 ed., IEEE Computer Soc. Press, Los Alamitos, Calif.,1999.5. W.J. Pardee, To Satisfy & Delight Your Customer, Dorset House, New York, 1996.6. B. Collier, T. DeMarco, and P. Feary, “A Def<strong>in</strong>ed <strong>Process</strong> for Project Postmortem Review,” IEEE<strong>Software</strong>, July 1996, pp. 65-72.7. N. Brown, “Industrial-Strength Management Strategies,” IEEE <strong>Software</strong>, July 1996, pp. 94-103.8. K. Wiegers, “Improve Your <strong>Process</strong> with Onl<strong>in</strong>e ‘Good Practices,’” <strong>Software</strong> Development, Dec. 1998,pp. 45-50.<strong>Software</strong> <strong>Process</strong> <strong>Improvement</strong> <strong>in</strong> <strong>Web</strong> <strong>Time</strong> Page 9

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!