Top Banner
Cornell University Computing and Information Science CS 5150 Software Engineering 4. Feasibility Studies William Y. Arms
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

May 07, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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.