27
Cornell University Computing and Information Science CS 5150 Software Engineering 4. Feasibility Studies William Y. Arms

CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

CornellUniversity ComputingandInformationScience

CS5150SoftwareEngineering4.FeasibilityStudies

WilliamY.Arms

Page 2: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

FeasibilityStudy

Afeasibilitystudyisastudymadebeforecommittingtoaproject. Afeasibilitystudyleadstoadecision: •goahead •donotgoahead •thinkagain Inproductionprojects,thefeasibilitystudyoftenleadstoabudgetrequest. Afeasibilitystudymaybeintheformofaproposal.

Page 3: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

WhyareFeasibilityStudiesDifficult?

Uncertainty •Clientsmaybeunsureofthescopeoftheproject.•Benefitsareusuallyveryhardtoquantify. •Approachisusuallyill-defined.Estimatesofresourcesandtimetableareveryrough.

•Organizationalchangesmaybeneeded. Therefore,feasibilitystudiesrelyheavilyonthejudgmentofexperiencedpeople. Mistakesmadeatthebeginningofaprojectarethemostdifficulttocorrect.

Page 4: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

WhyareFeasibilityStudiesDifficult?

Advocacy •Advocacyisneededtobuildenthusiasmforaproject:toconvinceanorganizationtoundertakeanexpensive,complexprojectwithmanyrisks.

•Enthusiasmisgood,butenthusiastsusuallyemphasizepotentialbenefitsanddownplayrisks.

Peoplecarryingoutthefeasibilitystudyandmakingthedecisionoftenhaveavestedinterestintheprojectgoingahead,e.g.,financialgain,careerdevelopment. CS5150FeasibilityStudy ItispossiblethatyourCS5150feasibilitystudymayrecommendnotgoingaheadwithaproject.

Page 5: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

TheDecisionMaker'sViewpoint

Thefeasibilitystudymakesrecommendations. Seniormember(s)oftheclient’sorganizationdecidewhethertobeginamajorsoftwareproject.Whatinformationdotheyneeded? Client:Whoisthisprojectfor? Scope:Whataretheboundariesoftheproject? Benefits:Whatarethebenefits?Cantheybequantified?Ifthesoftwareisaproduct,whataretheforecastsoflikelysales? Technical:Istheprojectpossible?Isthereatleastonetechnicalwaytocarryouttheproject?Resources:Whataretheestimatesofstaff,time,equipment,etc.? Alternatives:Whataretheoptionsiftheprojectisnotdone?

Page 6: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

WherearetheRisks?CantheybeMinimized?

Technicalrisks•Theremustbeanoutlineplanwitharoughtimetableandstaffallocation. •Theplanmusthaveaverylargemarginforcontingencies.(Projectstypicallyrequiretwicethestaffand/ortimeenvisagedinthefeasibilityplan.)

External •Everysysteminteractswithothers.Aretheotherscommittedtothenecessaryefforts(e.g.,potentialusersandcustomers)?

•Wherearetheexternalpressuresandobstacles?

Page 7: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

OrganizationalFeasibility

Amajorcomputersystemmakesdemandsonanorganization: • Doestheorganizationhavethemanagementexpertise? • Doestheorganizationhavethetechnicalexpertise?Eveniftheworkiscarriedoutbyacontractor,theorganizationneedsexpertisetooverseethework.

• Istheorganizationcommittedtothechangesinpersonnel,workflow,etc.? Example Copyrightdepositsystem:clericalworkflow.

Page 8: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

Example1:U.S.GovernmentAgency(DecisionbeforeFeasibilityStudy)

OutlineDescription AU.S.governmentagency,whichmanageshugenumbersofdocumentsandotherrecords,wishestomovefromapaperbasedapproachtoasystemthatcanmanagedigitaldocuments.

Page 9: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

Example1:Chronology

• AcomputingcenteratUniversitySdevelopedaprototypesystemtodemonstratetechnology.

• FundswereapprovedbyCongressto"procure"amajorcomputersystem. • Anexternalfeasibilitystudywascommissionedtoreportonthetechnical

approachtobefollowedandtheresultsoftheUniversitySprototype(technicalfeasibility).

Problems Thedecisiontogoaheadwasmadeandthebudgetwasapprovedbeforethefeasibilitystudywasbegun.

Thefeasibilitystudylookedatonlythetechnicalaspects.

Page 10: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

Example1:Problems

Organizational: •Agencyseniormanagementlackedtheexperiencetoleadaverylargeprojectthatwillcompletelychangetheagency.

•Nothoughtwasgiventotheworkflowandjobchangesthatwouldaffectalmosteverymemberofstaff.

Preparation: •Nopreliminarystudywasmadeofvolumesorkindsofdata;norofthecomplexpoliciesforaccess(e.g.,privacy,classifiedinformation).

Requirements:•Therequirementswerecomplexandonlypartiallyunderstood.Majorchangeswereinevitableevenafterthesystemwentintoproductionwithrealusers.

Page 11: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

Example1:Dilemma

Theexternalfeasibilitystudywaspaidforbyagencyandrestrictedtotechnicalconsiderations,butnoted: •Asuccessfulimplementationneededfundamentalchangesattheseniormanagementlevel.

•Aphasedapproach,usingiterativerefinementovermanyyears,mightpossiblywork,butonlyaftertheorganizationalproblemsareaddressed.

BUT... TheagencydidnotwanttoreturnmoneytoCongress. Theagency,adoptedapurewaterfallmodel,putoutaRequestforProposalfortherequirements,andplacedamajorcontractwithasoftwarehouse. Thisishowdisastersaremade.

Page 12: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

FeasibilityStudy:Scope

Scopeexpressestheboundariesofthesystem: • Itwillhavealistofincludedfunctions • Itwillhavealistofexcludedfunctions • Itwillhavealistofdependencies • Itwillhavealistofcurrentsystemstobereplaced Confusionoverscopeisacommonreasonforclientstobedissatisfiedwithasystem."Isthatallyouplannedtodo?""ButIassumedthatyouweregoingtodoxyz.""Ican'tusethesystemwithoutabc."

Page 13: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

Example2:AGovernmentRepository(ConfusionoverScope)

•Agovernmentorganization,L,requireda"repositorysystem"tostoreandmakeaccessibleverylargeamountsofhighlyvariedmaterialoverlongperiodsoftime.

•Anoutsideorganization,C,builtarepositorysystemtostoreandmanipulatecomplexdigitalmaterial.

BUT...•Nobodybuiltthesub-systemsneededtoorganize,validate,andtoloadmaterialintotherepository.

•Lexpectedtherepositorysystemtoincludethesesub-systems.Cconsideredthesub-systemsseparatefromtherepositorysystem.

Agoodfeasibilitystudywouldhaveseenthisconfusion.

Page 14: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

FeasibilityStudy:Benefits

Whyisthisprojectproposed?Canyouquantifythebenefits? Organizationbenefits •Createamarketableproduct •Improvetheefficiencyofanorganization(e.g.,savestaff) •Controlasystemthatistoocomplextocontrolmanually •Neworimprovedservice(e.g.,fasterresponsetocustomers) •Safetyorsecurity Professionalbenefitsarenotthereasonfordoingaproject

Page 15: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

FeasibilityStudy:Technical

Afeasibilitystudyneedstodemonstratethattheproposedsystemistechnicallyfeasible.Thisrequires: •anoutlineoftherequirements •apossiblesystemdesign(e.g.,database,distributed,etc.) •possiblechoicesofsoftwaretobeacquiredordeveloped •estimatesofnumbersofusers,data,transactions,etc. Theseroughnumbersarepartoftheprovisionalplanthatisusedtoestimatethestaffing,timetable,equipmentneeds,etc. Thetechnicalapproachactuallyfollowedmaybeverydifferent.

Page 16: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

FeasibilityStudy:PlanningandResources

Thefeasibilitystudymustincludeanoutlineplan: •Estimatethestaffingandequipmentneeds,andthepreliminarytimetable

•Identifymajormilestonesanddecisionpoints •Identifyinteractionswithanddependencesonexternalsystems •Provideapreliminarylistofdeliverablesanddeliverydates ThereisaseparatelectureaboutProjectManagement.

Page 17: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

FeasibilityStudy:AlternativesandRisks

Afeasibilitystudyshouldidentifyrisksandalternatives.Risks • Whatcangowrong? • Howwillprogressbemonitoredandproblemsidentified(visibility)? • Whatarethefallbackoptions?Alternatives• Continuewithcurrentsystem,enhanceit,orcreatenewone? • Developin-house,orcontractout?(Howwillacontractbemanaged?) • Phasesofdeliveryandpossiblepointsforrevisingplan.

Page 18: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

TechniquesforFeasibilityStudies

Thehighestpriorityistoensurethattheclientanddevelopmentteamhavethesameunderstandingofthegoalsofthesystem. Forthedevelopmentteamtounderstandthegoals: •Interviewswithclientandthestaffoftheclient’sorganization

•Reviewofexistingsystems(includingcompetitors’) Fortheclienttoappreciatetheproposedsystem: •Demonstrationofkeyfeaturesorsimilarsystems •Mock-upofuserinterfaces •Walkthroughtypicaltransactionsorinteractions

Page 19: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

TechniquesforFeasibilityStudies

Outlinebudget: •npeopleformmonthsat$xpermonth •equipment,buildings,etc. •contingency(atleast50%isneeded) Phases/milestones: •specifydeliverablesandapproximatedates •plannedreleases

Page 20: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

FeasibilityStudy:Decision

Differentorganizationsandseniormanagershavedifferentstylesforfeasibilitystudies,e.g.,somedecisionmakers: •Monitortheteamandtheprocess •Relyondetailedreadingofawrittenreport •Relyonface-to-facequestioningofknowledgeablepeople Buttheymustunderstandthedecision.

Page 21: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

FeasibilityReport

Afeasibilitystudyshouldhaveawrittenreport.Itshouldbeawellwritten,wellpresenteddocument. •Forageneralaudience:client,financialmanagement, technicalmanagement,etc. •Shortenoughthateverybodyreadsit. •Longenoughthatnoimportanttopicsareskipped. •Detailscanbeincludedinsupportingdocuments. Areportthatisnotreadandunderstoodisuseless.

Page 22: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

CS5150:FeasibilityReports

TwoexamplesofgoodCS5150feasibilityreportsfrompreviousyearsareonthewebsite,withthepermissionofthestudents.TheyarelinkedfromtheReportssectionontheAssignmentspage.

Page 23: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

CS5150:FeasibilityReport

SpecificRequirementsfortheFeasibilityReport • Outlineplan,showingprincipalactivitiesandmilestones(seethelectureonProjectManagement).

• DiscussionofBusinessConsiderations(seeProjectspageonthecoursewebsiteandthelectureonLegalAspectsofSoftwareDevelopment).

• Riskanalysis.Whatcangowrong?Whatisyourfallbackplan?

Page 24: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

CS5150:Challenges

Team:Howmanyhoursperweek?Whatskillsdopeoplehave? Time:Mustbecompletedbyendofsemester,includingoperationalsystem,documentation,presentation Equipmentandsoftware:Whatspecialneedsarethere? Client:Willtheclientbesufficientlyavailableandabletohelp? Start-uptime.Creatingateam,schedulingmeetings,acquiringsoftware,learningnewsystems,... Businessconsiderations.Licenses,trade-secrets,... Tooambitious.Nothingtoshowattheendofthesemester... Whatelse?

Page 25: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

CS5150:HowtoMinimizeRisk?

Techniquesformanagingrisk•Severaltargetlevelsoffunctionality: required,desirable,optionalphases•Visiblesoftwareprocess:intermediatedeliverables•Goodcommunicationwithintheteam,withtheclientandwiththeTeachingAssistant(s)

•WelldefineddevelopmentprocessGoodprocessesleadtogoodsoftware

Goodprocessesreducerisk

Page 26: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

CS5150FeasibilityStudies:Reports

Appointateammembertoreadandedittheentirereport. Content •Ifdifferentauthorswritedifferentsectionsofthereportaretheyconsistent?E.g.,dothescope,requirements,andplanagreeonwhatistobedone?

Style •Isthetextcomprehensible?Doesthereportusejargonthatisnotcleartotheclient?

•Ifpossible,haveanativeEnglishspeakerdothefinalediting.

Page 27: CS 5150 Software Engineering 4. Feasibility Studies · Feasibility Study: Technical A feasibility study needs to demonstrate that the proposed system is technically feasible. This

CS5150FeasibilityStudies:CommonProblems

Thepurposeofafeasiblestudyistoestablishifaprojectisfeasible,atreasonablecost,withintheplannedperiod. Thereportshouldconcludewithrecommendationsaboutwhethertoproceed,butthefinaldecisionismadejointlybytheclientandthedevelopmentteam. Inpreviousyears,manyreportshavehadthefollowingproblems: •Thereportisvagueaboutthescope.Withoutacleardefinitionofscope,itisnotclearthattheprojectisfeasible.

•Theplandoesnotdescribetheactivitiesinenoughdetailtoestimatetheeffortconvincingly.

•Theprojectsistooambitious.Thereportneedstodescribehowwillyoumonitortheprogressandadjustthescopeifnecessary.