Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
Development HIMS 650
2
Back to SDLC
Two Kinds of Development
§ Waterfall – more traditional, take more time to get “everything right” before moving to next phase
§ Agile – Embrace uncertainty. Build now, build often, fix later.
Waterfall
§ Comes from traditional manufacturing tradition § Plan – Do – Check – Act § Get to stability in given phase, then freeze
§ Lack of “freeze discipline” introduces enormous risk § Take the time to get each phase “just right”
§ Phases measured in weeks (rarely) or months (common)
5
Waterfall Process
Discover Define Design Develop
6
Waterfall Process
Discover
Develop
Design
Define
“Can’t go up a waterfall”
7
Waterfall - How to minimize errors? “… it costs 100 times more to find and fix a problem after software delivery than to find and fix it in early design phases”
Develop
Design
“… so freeze your design earlier to make sure that you’ve figured everything out before you go on”
8
How to minimize errors? … but does it make sense in the development phase, too?
Develop
Design
Actually, the auto industry does this a different way
In fact, they’re doing this a different way, too, now!
Agile Process
§ Borrowed some ideas from Lean § Be able to accommodate changing demands § Make decisions as late as possible § Reduce time to deliver (days to weeks, not weeks to
months) § Made up some ideas of their own
§ Don’t define in great detail up front
§ Test-driven processing § “Scrum” mentality
§ Paired programming § Stakeholders involved
continuously
10
Agile Process
Discover Define Design Develop
11
Agile Process
Discover
Define
Design
Develop
Discover
Define
Design
Develop
Discover
Define
Design
Develop
Release 1 Release 2 Release 3
“… it costs 100 times more to find and fix a problem after software delivery than to find and fix it in early design phases”
“… so you need to iterate like crazy before you finally release, and you need to make it cheaper to discover problems after development”
§ Split into 4 teams
§ One person will be Quality Control § Count defects § Determine developer that
needs to fix it § Advise developer what
needs to be fixed
User-centered with Agile – LEGO approach
§ Understand the needs of your userbase – do the research and homework!
§ Iterate like crazy through design alternatives § Once you’ve decided you like it, freeze the design
§ Document it like LEGO’s (a picture of what needs to be built) in addition to words about how it works
§ If design needs to be altered in development, bring the team back together to determine alternative
§ Build the design, test it, redesign, rebuild, retest
14
User-centered Design/Development – many possible approaches
Discover
Define
Design
Develop
Discover Define
Design
Develop
Discover Define Design Develop
Discover
Define
Design
Develop