22
Choosing commercial software development process Uladzimir Liashkevich, © 2009

Development Process For Commercial Software Development

Embed Size (px)

DESCRIPTION

Presented at IT-Enterprise, 2009, Minsk

Citation preview

Page 1: Development Process For Commercial Software Development

Choosing commercial software development process

Uladzimir Liashkevich, © 2009

Page 2: Development Process For Commercial Software Development

Development process

• Software engineering – systematic and disciplined approach

• Code & fix - hack until it works

• Software development methodologies• Waterfall• Spiral model• Rational Unified Process• Agile development• Lean development

Page 3: Development Process For Commercial Software Development

Waterfall: theory

Page 4: Development Process For Commercial Software Development

Waterfall: how it works

Page 5: Development Process For Commercial Software Development

Waterfall: time-to-market

• Safeguard – Ballistic Missile Defense System• No late changes in requirements• 6 years of development• 5k person-years• $25 bln• Terminated after 133 days of operation – new missiles

were faster, than anti-missile missiles

Page 6: Development Process For Commercial Software Development

Waterfall: target aiming

Page 7: Development Process For Commercial Software Development

Waterfall: target aiming

Page 8: Development Process For Commercial Software Development

Waterfall: target aiming

Page 9: Development Process For Commercial Software Development

Waterfall: cost of change

Page 10: Development Process For Commercial Software Development

Waterfall: problems

• Planning doesn’t work• Business may change faster than software is

developed• Changes in requirements are not easy• Cost of change• Progress is not clear

Page 11: Development Process For Commercial Software Development

Solution

• Communication & Feedback• Continuous

• Software development as social activity• It is not about applying math methods

Page 12: Development Process For Commercial Software Development

Agile manifesto

• Individuals and interactions over processes and tools

• Working software over comprehensive documentation

• Customer collaboration over contract negotiation

• Responding to change over following a plan

Page 13: Development Process For Commercial Software Development

Agile vs Waterfall

Scope

Time

Quality

Resources

Page 14: Development Process For Commercial Software Development

Team building

• Feature team• Sits together

• Common goal• Motivated individuals• Team building is hard

Page 15: Development Process For Commercial Software Development

Involve customer

• Product owner• Daily collaboration

• Product backlog• User stories• Prototyping

• Prioritizing backlog

Page 16: Development Process For Commercial Software Development

Iterative development• Working software is the measure of success• Continuously deliver value

• Early and often• Valuable feedback

• Iteration planning• High priority user stories• Story estimates• Acceptance criteria• Iteration scope

• Implementation• Tough things first• Technical tasks as a part of user stories• Complete features• Continuous communication

Page 17: Development Process For Commercial Software Development

Typical Agile life-cycle

Page 18: Development Process For Commercial Software Development

Agile: target aiming

Page 19: Development Process For Commercial Software Development

Agile: target aiming

Page 20: Development Process For Commercial Software Development

Agile: target aiming

Page 21: Development Process For Commercial Software Development

Quality

• Quality is free• Only if you are ready to pay for it

• External quality• Zero defect principle

• Internal quality• Technological debt

Page 22: Development Process For Commercial Software Development

Questions?