CS 350, slide set 8ReadingAnnouncements - 1Announcements - 2OutlineA development strategySteps – Planning and scheduleSteps – Conceptual designIdentify major risksProductivity comes from reuse (but from your own code!)Strategy scripts: overviewDevelopment Strategy - stepsPossible development strategy ideas:Development plan - 1Development plan - 2Planned-value exampleTSPi Planning OverviewSTRAT formSize summary (SUMS) formTASK formSample SCHEDULE formForm WEEK – for weekly reportsSUMQ form (Quality plan) -1SUMQ form (Quality plan) -2SUMQ form (Quality plan) -3SUMQ form (Quality plan) -4Plan Summary (SUMP)TSPi Development plan scriptPlan steps - 1Plan steps - 2Example formsConceptual designProductsTracking the workReuse commentsCS 350, slide set 8M. OverstreetOld Dominion UniversitySpring 2005ReadingTSP text, Ch. 4, 5Chapters 11 – 15, depending on your role.Announcements - 1Group meetings in recitationUsed to meet, set group goals, set up project notebookAgenda:Be prepared to described your background to groupBe prepared to state your goals for group projectAnnouncements - 2Code, etc. due tonightForms due Wed.Role prefs. due tonightDue next Mon. night:Team goals (approved by team)•May require e-mail, IM, phone discussionsIndividual goalsRole goalsRemember: let me know quickly if you have trouble contacting any team member!OutlineMore formsDevelopment strategyDevelopment planA development strategyLots of different approaches to software developmentDevelop entire systemDevelop system in small piecesMost prefer cycle (but not always possible):Code a littleTest a littleHave something running early-on•Always be ready to run demo (if feasible)Focus on uncertainty earlyIdentify and resolve risksSteps – Planning and schedulePlan firstBig picture first, then refine detailsCan do top-level planningWe're lucky: we have real deadlines•Hard constraints eliminate possibly confusing choicesReview outline from last slide set.•Be ready to discuss with group on Friday•Feasible•Does it need changing?Steps – Conceptual designMust omit detailsIdentify major piecesWhat are theyHow will they likely interactWhat depends on what?Can some components be completed first and others brought in later(Strategy: make sure you have something for the grader to run, even if some major parts are missing! -- if worst comes to worst)Identify major risksPieces you can't code?How to test?What are problems common to working in teams?Some team members will likely have experienceTry to anticipate so you can mitigateKey components have two developers: coder and tester•Either could step in for the other if necessaryProductivity comes from reuse (but from your own code!)Identify code you already own that might reduce effort in projectPlan reuse libraryDuring design•Look for reuse from this class•Identify new components that have potential for reuse.Strategy scripts: overviewPurpose To guide team through a TSPi development strategy; have preliminary size and time estimatesEntry criteria Everyone's read ch. 4TSPi process discussed in classObjectives discussed in classTeams assigned and roles assignedTeams have agreed on goals for team and their own workGeneral Dev strategy specifies order of tasks (code, test, etc)How to divide work within groupIt may change; keep it up to dateTime estimates provide basis for work allocationExit criteria Complete and documented dev. strategyComplete size & time estimatesComplete configuration management planRisks identified and entered in ITL logConceptual design and completed STRAT formUpdated project notebooksDevelopment Strategy - steps1. Strategy overview2. Establish strategy criteria3. Produce conceptual design4. Select development strategy5. Produce prelim. estimates6. Produce prelim. schedules7. Assess risks8. Document strat.9. Produce config. mgmt planPossible development strategy ideas:Form alliance with another group to exchange test data.No copying of data, but pooling might be ok if planned and discussed with instructorForm alliance with another group to exchange module object codeRule: no exchange of source but look for other ideasIf anything like this is done; identify authors, etc.These will take time; are they worth it?Other ways to reduce work/improve grades?Note: intergroup activities are encouraged but be careful: plan, then check with instructor.Development plan - 1One size does not fit all!Simple tasks only require simple plansFailure costs effect how much planning is appropriateTight schedules effect appropriate planning detailEssence of teamwork in meeting commitmentsNeed to know what you're being asked to commit so you can determine if you can finish by the deadlineNeed to balance work among team membersDevelopment plan - 2Need to track progress preciselyNeed to know that when x% of money has been spent that the project is x% complete(or when x% of schedule has been used up, x% of project is complete)Hence planned value and earned value trackingPlanned value of a task is its percentage of total project effortEarned value of a task is 0 until it is 100% complete (to keep us from deceiving ourselves)Planned-value exampleTask Plan hours Cumulative hoursPlan Value Cumulative Plan ValueLaunch 29.5 29.5 8.0 8.0Planning 27.5 57.0 7.5 15.5System test plan 17.0 74.0 4.6 20.2... ... ... ... ...Documentation 33.0 354.5 9.0 96.7Postmortem 12.2 367.0 3.3 100.0Total 367.0 100.0Remember, these are team numbers, so divide by 5 to get averageindividual numbers!TSPi Planning OverviewConceptualDesignDevelopstrategyEnter dataon SUMSTeamPlanQualityPlanDevelopersmake personalplansTeam memberplansBalanceteamworkloadProduce finalteam planTaskscheduleSUMPSUMQTaskScheduleTaskscheduleSTRATSUMSTaskscheduleSUMQTaskscheduleTaskscheduleTaskscheduleSTRAT formList, item by itemExactly what you plan to implementPage and paragraph reference to Requirements Doc (from NASA)(If the semester were longer) in what phase you plan to implement it. In 350, the planned order of developmentSize summary (SUMS) formFor each software unit, report estimates for:sizebase (if you are modifying existing code, this is the size of it)•deleted (code removed from base, if any)•modified (code modified in base)code addedcode reusednew + modified (this is
View Full Document