Choosing commercial software development processUladzimir Liashkevich, © 2009
Development processSoftware engineering – systematic and disciplined approachCode & fix - hack until it works Software development methodologiesWaterfallSpiral modelRational Unified ProcessAgile developmentLean development
Waterfall: theory
Waterfall: how it works
Waterfall: time-to-marketSafeguard – Ballistic Missile Defense SystemNo late changes in requirements6 years of development5k person-years$25 blnTerminated after 133 days of operation – new missiles were faster, than anti-missile missiles
Waterfall: target aiming
Waterfall: target aiming
Waterfall: target aiming
Waterfall: cost of change
Waterfall: problemsPlanning doesn’t workBusiness may change faster than software is developedChanges in requirements are not easyCost of changeProgress is not clear
SolutionCommunication & FeedbackContinuousSoftware development as social activityIt is not about applying math methods
Agile manifestoIndividuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a plan
Agile vs Waterfall
Team buildingFeature teamSits togetherCommon goalMotivated individualsTeam building is hard
Involve customerProduct ownerDaily collaborationProduct backlogUser storiesPrototypingPrioritizing backlog
Iterative developmentWorking software is the measure of successContinuously deliver valueEarly and oftenValuable feedbackIteration planningHigh priority user storiesStory estimatesAcceptance criteriaIteration scopeImplementationTough things firstTechnical tasks as a part of user storiesComplete featuresContinuous communication
Typical Agile life-cycle
Agile: target aiming
Agile: target aiming
Agile: target aiming
QualityQuality is freeOnly if you are ready to pay for itExternal qualityZero defect principleInternal qualityTechnological debt
Questions?

Development Process For Commercial Software Development