14
Development HIMS 650

Development - Apple Inc.a1.phobos.apple.com/us/r30/CobaltPublic/v4/63/d5/6... · Agile Process Discover Define Design Develop Discover Define Design Develop Discover Define Design

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Development - Apple Inc.a1.phobos.apple.com/us/r30/CobaltPublic/v4/63/d5/6... · Agile Process Discover Define Design Develop Discover Define Design Develop Discover Define Design

Development HIMS 650

Page 2: Development - Apple Inc.a1.phobos.apple.com/us/r30/CobaltPublic/v4/63/d5/6... · Agile Process Discover Define Design Develop Discover Define Design Develop Discover Define Design

2

Back to SDLC

Page 3: Development - Apple Inc.a1.phobos.apple.com/us/r30/CobaltPublic/v4/63/d5/6... · Agile Process Discover Define Design Develop Discover Define Design Develop Discover Define Design

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.

Page 4: Development - Apple Inc.a1.phobos.apple.com/us/r30/CobaltPublic/v4/63/d5/6... · Agile Process Discover Define Design Develop Discover Define Design Develop Discover Define Design

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)

Page 5: Development - Apple Inc.a1.phobos.apple.com/us/r30/CobaltPublic/v4/63/d5/6... · Agile Process Discover Define Design Develop Discover Define Design Develop Discover Define Design

5

Waterfall Process

Discover Define Design Develop

Page 6: Development - Apple Inc.a1.phobos.apple.com/us/r30/CobaltPublic/v4/63/d5/6... · Agile Process Discover Define Design Develop Discover Define Design Develop Discover Define Design

6

Waterfall Process

Discover

Develop

Design

Define

“Can’t go up a waterfall”

Page 7: Development - Apple Inc.a1.phobos.apple.com/us/r30/CobaltPublic/v4/63/d5/6... · Agile Process Discover Define Design Develop Discover Define Design Develop Discover Define Design

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”

Page 8: Development - Apple Inc.a1.phobos.apple.com/us/r30/CobaltPublic/v4/63/d5/6... · Agile Process Discover Define Design Develop Discover Define Design Develop Discover Define Design

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!

Page 9: Development - Apple Inc.a1.phobos.apple.com/us/r30/CobaltPublic/v4/63/d5/6... · Agile Process Discover Define Design Develop Discover Define Design Develop Discover Define Design

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

Page 10: Development - Apple Inc.a1.phobos.apple.com/us/r30/CobaltPublic/v4/63/d5/6... · Agile Process Discover Define Design Develop Discover Define Design Develop Discover Define Design

10

Agile Process

Discover Define Design Develop

Page 11: Development - Apple Inc.a1.phobos.apple.com/us/r30/CobaltPublic/v4/63/d5/6... · Agile Process Discover Define Design Develop Discover Define Design Develop Discover Define Design

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”

Page 12: Development - Apple Inc.a1.phobos.apple.com/us/r30/CobaltPublic/v4/63/d5/6... · Agile Process Discover Define Design Develop Discover Define Design Develop Discover Define Design

§  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

Page 13: Development - Apple Inc.a1.phobos.apple.com/us/r30/CobaltPublic/v4/63/d5/6... · Agile Process Discover Define Design Develop Discover Define Design Develop Discover Define Design

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

Page 14: Development - Apple Inc.a1.phobos.apple.com/us/r30/CobaltPublic/v4/63/d5/6... · Agile Process Discover Define Design Develop Discover Define Design Develop Discover Define Design

14

User-centered Design/Development – many possible approaches

Discover

Define

Design

Develop

Discover Define

Design

Develop

Discover Define Design Develop

Discover

Define

Design

Develop