0764) Volume 03 Issue 06, November 2014 Lessons Learned In .

Transcription

International Journal of Computer and Information Technology (ISSN: 2279 – 0764)Volume 03 – Issue 06, November 2014Lessons Learned in Academic Hybrid SoftwareDevelopment Projects – A RetrospectiveRobert F. Roggio*, Dalila CastillaSchool of ComputingUniversity of North FloridaJacksonville, FL USA 32224*Email: broggio {at} unf.eduAbstract— According to some researchers, a hybrid approach canhelp to optimize the software development lifecycle by combiningtwo or more methodologies. The Rational Unified Process (RUP)and Scrum are two methodologies that successfully complementeach other to improve the software development process.However, the literature has shown only few case studies onexactly how organizations are successfully applying this hybridmethodology and the benefits and issues found during theprocess. To help fill this literature gap and to provide a majordevelopment project for a five-person team of first year softwareengineering graduate students at The University of NorthFlorida, the Lobbyist Registration and Tracking System for theCity of Jacksonville (COJ), FL was designed and implementedusing a hybrid approach that integrated RUP and Scrum withinIBM's Collaborative Lifecycle Management (CLM) solution.While it is safe to generalize and assert that it is typical forsoftware development projects to encounter challenges both inthe corporate community as well as in academe, the hybriddevelopment approach using RUP, Scrum, and CLM in anacademic setting presented some unique issues. The purpose ofthis paper is thus to convey the distinctive issues arising from thehybrid approach in an academic setting to provide empiricalevidence of these problems with suggestions as to how they mightbe avoided. The details of the year-long development project arereported in thesis nt;academe’;THE PROBLEMSA. Team Composition and Work SchedulesThe two-semester graduate-level project was undertaken atThe University of North Florida (UNF) as part of the softwareengineering track within the Master of Science in Computerand Information Sciences degree program. The class hadapproximately 18 first-semester students, who were dividedinto three teams of six students. Team 1 developed thelobbyist tracking system. (No special significance wasassigned to team numbers and no one had a problem withbeing called Team 2 or Team 3.)www.ijcit.comTeam 1 consisted of five individuals (one dropped withinthe first week of class). Of the five, two were wellexperienced developers who worked in UNF ITS (InformationTechnology Services), which handles academic andadministrative computing university-wide. Although new tothe graduate program, their skills were quite good and theyhad software development experience within the framework ofthe systems that the university develops and maintains. Theother three individuals were similarly new to a graduate levelprogram, but had no experience in practical softwaredevelopment other than coursework. They also had noexperience in the core technologies selected to develop thesystem.Because of the rigidity of semester scheduling and theneed to develop software quickly and on time, there was littletime for these students to learn classroom best practices ofsoftware engineering while concurrently learning developmentenvironments, complex tools, experience very diverse teamdynamics, and merge all these characteristics into a cogentsuccessful development team environment. Regardless, theytook their roles and supported other projects’ activitiesrequired in order to deliver an application that met the client’sexpectations and requirements.As it turned out, the team worked quite well together anddid not experience problems that oftentimes developmentteams encounter. In retrospect, this was likely attributable tothe maturity of the individuals to pool their differing levels ofexpertise. In particular, the two experienced individuals tookon the bulk of the design and programming efforts, while theother team members provided database design, interfacedesign, undertook documentation of use cases, developed andran test scripts, ensured traceability and similar activities skills that could be obtained essentially from course work.Given this high degree of cooperation, serious schedulingcomplications nevertheless arose – not unique to teamprojects. But these arose from several levels. The class mettwice a week in the evenings from 6-7:15pm.Theexperienced team members worked from 9-5pm and were thusunavailable during the day for development team meetings;the other team members were full time graduate students andwere available during the days, but all had families and1269

International Journal of Computer and Information Technology (ISSN: 2279 – 0764)Volume 03 – Issue 06, November 2014spouses, which made meeting during the evenings other thanclass nights very difficult. Because the class met two times aweek, this only left hours after class, which effectively meantthe team usually remained after class after a long day.Management of the team, that is, the delegation ofresponsibilities was equitably determined, and each teammember played a primary role, such as project manager,primary programmer, quality control individual, tester, anddatabase developer. Each also had a secondary or backuprole. The management and integration of these activitiesduring available times (and all team members could notalways meet at available times), made the coordination ofteam efforts very difficult.Coordinating team member times for meetings is not anunusual problem in development teams in an academicenvironment. But another difficulty arose in trying to meetwith the clients, all of whom were City of Jacksonvilleemployees, who worked daily until 5pm. Students could notmeet as a group during the day in downtown with the clientsand the clients could not easily drive on to campus during theday. All modern development techniques agree on the criticalimportance of essential customer – developer relationships.During the next academic year, the two-course softwareengineering course sequence was scheduled to meet once perweek from 6 - 8:45pm. It was envisioned that this schedulewould leave more available times for team members toorganize their meeting times.B. The Collaborative Life Cycle Management (CLM)SolutionThe CLM is an extremely powerful tool. It covers allelements of the software lifecycle, and the capabilities forkeeping everything together while providing a comprehensivesolution is really outstanding. But it is not easy to learnespecially for students who lack software developmentexperience. Further, learning this solution and effectivelyusing this solution with its vast array of features whileconcurrently learning principles and practices of softwareengineering is daunting even for the most ambitious student.While tutorials are available, the lack of prior experience withthe CLM together with the students learning basic softwaredevelopment principles via the Rational Unified Process(RUP) and digesting the management of the developmentprocess with Scrum [2] proved to be a formidable challenge.Tech support within the School of Computing at UNF oftenwrestled with providing a stable environment for CLM. CLMwas hosted on a UNF computer, which proved to be reasonablyeffective. Yet many of the features inherent in the CLM, suchas burn-down charts, velocity charts, and using the vastfacilities within CLM to manage and track development andtesting had to be eschewed by the development teams in orderto meet the time constraints of iterations and sprints. Dates forthese deliverables together with examinations, presentations,and more, often precluded exploiting some of the real power ofthe CLM.www.ijcit.comC. Client Project Manager (PM)Initially the software engineering professor for this coursesequence met with the lawyer in the Ethics and ComplianceOffice to learn about requirements. Representatives from thisoffice later met with students one time for a serious question /answer period. From this meeting and from additionalmeetings between the professor and the Ethics andCompliance Office, use cases were developed – but by thedevelopment team (not by the client). Development startedonce a reasonably solid set of use cases were developed andapproved by the client for comments. It was not until wellinto the second semester that the COJ established a ProjectManager to oversee what the students were doing from aclient-perspective. Unfortunately, 60'% or more of elapsedproject time had been spent.More effective clientrepresentation was sorely needed. This was not the way toproceed.D. Changing RequirementsPerhaps the once constant in software development ischange. All modern development environments embracechange and certainly the RUP [1] and managing developmentvia Scrum support this reality. While experienced developersknow that change will occur and expect it and react to it, it isalways bit unsettling especially for new developers, who wantrequirements to be firm, complete, and unchanging. But theylearn very quickly. Requirements that are “must haves”suddenly become changed and generally more complicatedand comprehensive. This is frustrating to a student who islooking at the end of a semester dates, exam schedules, andclosure. But for sure, change occurs.As it turned out, most of the “must haves” in the lobbyistapplication remained solid, but the team did experience some“requirements creep.” A number of 'nice to haves' crept in too.These may often seem rather simple, and indeed sometimesthey are. Oftentimes they are not. Despite the experience onthe team, the first stage of the project (about one semester)consisted of five iterations of about two weeks each once theproject got started; the second stage, which was partially basedon the RUP (elaboration) but essentially development (usedConstruction and Transition for recognizing artifacts / workitems) was planned to be five sprints based on Scrum. Threemore sprints were added to implement the ‘nice to haves’ andschedule deployment activities (see Figure 1).E. Version Control and PoliticsUnfortunately, politics and other unforeseen circumstancessometimes occur. This development effort was no exception.When the project was nearing completion and demonstrationshad been provided to the client who applauded the fine workand seemingly everyone was happy, versioning and politicscome to center stage.While universities technologies often seem to lag ascompared to the industrial sectors, the converse seems to betrue when operating or working with state or city1270

International Journal of Computer and Information Technology (ISSN: 2279 – 0764)Volume 03 – Issue 06, November 2014IBM Rational CLM SolutionSprint #8Sprint #7TransitionSprint #5Sprint #4Sprint #3ConstructionSprint #2Sprint #1Iteration #4Iteration #5ElaborationIteration #3Iteration #2Iteration #1Iteration #0InceptionStage II – ScrumSprint #6Stage I – RUPFigure 1. Hybrid Approach Conceptualizationgovernment. There appears to be a major lag in technologiesoften due to the economics of versioning. Such was the casein this development effort. The university was using ASP.NETMVC 4.5 and SQL Server 2008 and had been demonstratingthe project for several months with the quiet assurance thathandover would be uneventful. UNF had developed thesoftware and database with versions to which the COJ had notyet upgraded adopted.II.PROPOSED SOLUTIONSA. Team Composition and Work Schedules1) What we did: Class was scheduled two nights a week: 6– 7:15pm. Some team members worked 9-5; Clients worked9-5; other team members were available only during the days.2) Better ways to go: Schedule the class once a week thusfreeing up more available times within which the team canmeet.Get a firm commitment from the client for pre-establishedmeetings: some on campus; some off campus at client shop.But these must be agreed to ahead of time and these need to betagged, "Can't Miss Meetings."Must have a client available for telephone calls, emails,Skype, or other forms of communication within the day whenquestions arise. Questions need answers in near real-time andcannot often wait for convenience. This requires a majorcommitment from client and developers.B. Collaborative Lifecycle Management Solution.1) What we did: In that the two developers on the teamwere familiar with Team Foundation Server (TFS), TFS wasused. Products were then imported into the CLM. This wasdone in the interest of time and the need to eschew learningCLM. This is not the way to proceed.The use of CLM [3] must be a total buy-in at the beginningof the project and at least one or two must be the master of thissolution. S/he must be able to provide guidance and learn howto use the vast array of capabilities within CLM and advise theteam as to these capabilities.www.ijcit.com2) Better ways to go: The professor instructor is muchmore familiar with CLM for this coming year than he hadbeen in the past. Too, a student not in this course developed athesis wherein he looked very carefully into RationalRequirements Composer (RRC) and how to use the use-caseability within CLM to capture use cases and to trace activitiesfrom that point forward. Team members must use thefacilities within RRC.The professor must insist on using CLM as the frameworkfor the solution. He/she must not allow TFS or any otherlifecycle management solution to become integrated withCLM.Technical support must preload a version of CLM ontolocal servers and obtain a necessary number of licenses so thatthis hurdle need not be addressed once the semester (orquarter) begins. This is essential. The environment must bestable, and both the instructor and technical support mustagree that this is the case at the beginning of the semester.C. Client Project Manager (PM)1) What we did: Because there was no designated projectmanager from the COJ supplied, the development teamessentially developed our own iterations and sprints and backfit the development into the two-semester project. We metwith the client a time or two, but the client was an end userand had very little knowledge of the impact such a systemwould have on the COJ environment once ultimate handovertook place. She was delightful but did not possess softwaredevelopment expertise.2) Better way to go: While this might appear to be obvious,it is not always easy to have a single point of contact from thesystems point of view to be available. But this is definitelyneeded. The PM took the bull by the horns, so to speak, andforced the development team to designate deliverables andultimately handover. Further, she also took on a dominant rolewith the Product Backlog oftentimes realigning priorities forthe development team, which turned out to be excellent and theway things should be.1271

International Journal of Computer and Information Technology (ISSN: 2279 – 0764)Volume 03 – Issue 06, November 2014The customer representative must be able to act for theclient-side and prioritize features cited in the Product Backlogin order for the development to proceed in a customer-orientedprioritized manner. As it turned out, the PM was veryaggressive. And, while the team had a number of conferencecalls, she always provided minutes of the calls and emails of'understanding' which proved to be essential. She wouldcapture the content of the meetings and assert these via email.This proved to be critically important to the team in that wecould no always physically meet with the PM. The conferencecalls coupled with follow up confirmation emails was a goodmove. More meetings and conference calls are great bearers offruit. The more face-to-face meetings that can occur, the morepower the communications and the assurance that thedevelopment team is meeting client expectations and thatthings are proceeding on track.This point of contact is amust, and the authors strongly recommend that this point ofcontact as well as a definite schedule of F2F meetings andscheduled conference calls be established up front.D. Changing Requirements1) What we did: Perhaps due to inexperience and perhapsdue to the length of semesters, and perhaps due toexpectations, the development of iterations and sprints for thetwo stages reasonably encapsulated the two semester spantime. This seemed reasonable. But it did not allow forchange. Because the PM did not become actively engagedfrom the COJ, the team was plodding along feeling reasonablysecure despite the heavy development responsibilities. Oncethe project manager became a major player (and again, this isessential), things changed and formal meetings / conferencecalls and changes were suddenly identified. The team did notallow for change when planning the development effort.Taking the product backlog and the sprint backlogs (assuminglittle changes) allowed the team to plan the workload out suchthat the workload mapped into the semester.2) Better way to go: Plan on two additional sprints.they are not needed, great. But they likely will be needed.IfThe software engineering program at UNF requires asoftware practicum course that is used by various facultymembers for various reasons. It is a catch-all course. Theteam elected to extend the project into the short six-weeksoftware engineering practicum course during the summer.This provided flexibility to accommodate three additionalsprints that the team used. This worked out very well and is analternative to merely planning for two additional sprints - if thetime allows.E. Version Control and Politics1) What we did: So, UNF developed a good project thatwas incompatible with the software on which it was to run atthe City level.www.ijcit.comUndaunted, the development team downgraded thedevelopment to be compatible with an older version of thesoftware only to later learn that this too was insufficient toaccommodate handover, despite all the discussion, preparationof user manuals, and more.2) Better Way to Go: While this might appear to have beenavoidable, the politics and poor communications sometimesexhibited during development did not foreshadow thisdevelopment. So, clearly, compatibility of developmentversions and implementing versions of software between thedevelopers and the clients must be pre-established. Needless tosay, to discover after over two semesters of work that theproduct would not be implemented did not set well with thedevelopers.III. RETROSPECTIVEA. Team Composition and Work SchedulesPlans must be made for solid, reliable communicationsbetween team members and their individual schedules andthose of the client. Dates / conference calls and allmechanisms of communications must be pre-determined aswell as what the focus of these communications is to be.Agenda must be planned; feedback accommodated. Dates setand met.B. Collaborative Lifecycle Management (CLM) SolutionThere is so much power in these approaches, and IBM'sCLM is outstanding. However, that said, it is an imperativethat some expertise be developed by one or more teammembers so that the real collaborative power and greatcapabilities within CLM can be brought to bear. Perhaps alocal professional can come to your class and present some ofthe basic methods on how to use Rational RequirementsComposer, Rational Team Concert, and Rational QualityManager. There are a number of good tutorials, but ourrecommendation is to have a local person with expertise inCLM present some of the basic techniques on accessing thecomponents of CLM. While an application system maycertainly be developed without CLM, application lifecyclemanagement (ALM) tools that encompass a comprehensivenumber of tools, charts, methodologies covering all phases oflifecycle development as well as management and tracking ofthese processes legislates the use of an ALM.Ourrecommendation is the use of IBM's CLM. Our personalexperience can attest to the power of this solution [4].C. Client Project Manager (PM)Be certain to have a single point of contact as a client. ThePM needs to be well

The University of North Florida (UNF) as part of the software engineering track within the Master of Science in Computer and Information Sciences degree program. The class had approximately 18 first-semester students, who were divided into three teams of six