development process for commercial software development

Post on 11-May-2015

1.631 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Presented at IT-Enterprise, 2009, Minsk

TRANSCRIPT

Choosing commercial software development process

Uladzimir Liashkevich, © 2009

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

Waterfall: theory

Waterfall: how it works

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

Waterfall: target aiming

Waterfall: target aiming

Waterfall: target aiming

Waterfall: cost of change

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

Solution

• Communication & Feedback• Continuous

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

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

Agile vs Waterfall

Scope

Time

Quality

Resources

Team building

• Feature team• Sits together

• Common goal• Motivated individuals• Team building is hard

Involve customer

• Product owner• Daily collaboration

• Product backlog• User stories• Prototyping

• Prioritizing backlog

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

Typical Agile life-cycle

Agile: target aiming

Agile: target aiming

Agile: target aiming

Quality

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

• External quality• Zero defect principle

• Internal quality• Technological debt

Questions?

top related