Controlling Complexities in Software Development

Post on 28-Jan-2018

90 views 0 download

Transcript of Controlling Complexities in Software Development

Failed Software ProjectsFa

ilure

Rat

e (%

)

1970 1980 1990 2000 20101960

100

50

0

Failed Software ProjectsFa

ilure

Rat

e (%

)

1970 1980 1990 2000 20101960

100

50

0

35

Failed Software ProjectsFa

ilure

Rat

e (%

)

1970 1980 1990 2000 20101960

100

50

0

35

500M

100M

10M

1M

Microsoft Visual Studio

Eclipse Europa

Healthcare.gov2013

2007

2005

Line

s of

cod

e

Image attributions provided on last slide.

Waterfall Methodology

Extreme Programming

1970 1980 1990 2000 2010 2020

Independent/Hacker/Cowboy/Indie coding

Cap Gemini SDMSSADM

Waterfall

DOD-STD-2167AMIL-STD-498

IEEE 12207

SpiralRAD

Scrum

RUPAUP

XP

DAD

TSP

SAFeLeSS

LeanKanban

Scrumban

1970 1980 1990 2000 2010 2020

Independent/Hacker/Cowboy/Indie coding

Cap Gemini SDMSSADM

Waterfall

DOD-STD-2167AMIL-STD-498

IEEE 12207

SpiralRAD

Scrum

RUPAUP

XP

DAD

TSP

SAFeLeSS

LeanKanban

Scrumban“Agile”

Methodologies

1970 1980 1990 2000 2010 2020

Independent/Hacker/Cowboy/Indie coding

Cap Gemini SDMSSADM

Waterfall

DOD-STD-2167AMIL-STD-498

IEEE 12207

SpiralRAD

Scrum

RUPAUP

XP

DAD

TSP

SAFeLeSS

LeanKanban

Scrumban

1970 1980 1990 2000 2010 2020

Independent/Hacker/Cowboy/Indie coding

Cap Gemini SDMSSADM

Waterfall

DOD-STD-2167AMIL-STD-498

IEEE 12207

SpiralRAD

Scrum

RUPAUP

XP

DAD

TSP

SAFeLeSS

LeanKanban

Scrumban

What Affects Software Projects?Factor Number of Possibilities

Methodologies 55

Programming languages 50

Nature, class, and type of application 15

Capability Maturity Model Levels 5

Team experience (low, average, high) 3

Size plateau of application (small, medium, large) 3

Application complexity (low, average, high) 3

Combinations of factors 5,568,750Jones, Capers (2013). Evaluating ten software development methodologies, Namcook Analytics.

https://xkcd.com/927/

Agile methods Plan-driven methods Formal methods

Criticality low high extreme

Requirements change often do not change often Limited, can be modelled

Staffing experienced junior experienced

Team size small number of developers large number of developers

Culture responds to change demands order extreme quality

Modified from:Boehm, B.; R. Turner (2004). Balancing Agility and Discipline: A Guide for the Perplexed. Boston, MA: Addison-Wesley. pp. 55–57.

So what’s best?

Agile methods (Scrum) Spiral methods Team Software Process (TSP)

Speed of delivery,fewer developers

Lowest development effort and cost

Highest quality,lowest Total Cost of Ownership (TCO)

After:Jones, Capers (2013). Evaluating ten software development methodologies, Namcook Analytics.

–Ernest Hemingway

“How did you go bankrupt?”

“Two ways. Gradually, then suddenly.”

Failed Software ProjectsFa

ilure

Rat

e (%

)

1970 1980 1990 2000 20101960

100

50

0

35

?

3 challenges to existing methodologies

Cloud computing

• Distributed components

Smart contracts

• Social complexity

Deep learning

• Maintainability

Courtesy Cinergix Pty Ltd © 2017

Courtesy Bulletproof Pty Ltd © 2017

Smart Contracts

Smart Contracts

Smart Contracts

Deep Learning Networks

The

QuestionBig

Failed Software ProjectsFa

ilure

Rat

e (%

)

1970 1980 1990 2000 20101960

100

50

0

35

?

AcknowledgementsMismatched power plugs photo by Flickr user Simon Law, CC-BY-SA 2.0

Waterfall model diagram by Peter Kemp & Paul Smith - adapted from Paul Smith's work at Wikipedia, CC BY 3.0

Extreme Programming feedback loops diagram by DonWells, CC BY-SA 3.0

Factory icon by Tichovský Petr, public domain

XKCD comic #927 by Randall Munroe, CC-BY-SA 2.0

Hemingway photo by Pixabay, CC0

US Army nano satellite concept image by U.S. Army, U.S. Government Work

Clouds photo by Elaine with Grey Cats, CC BY-SA 2.0

Smart contract image by draglet GmbH , CC BY-SA 4.0

Neural networks image by Velko, pubic domain

Feed forward neural network diagram by Naghipourfar, CC BY-SA 4.0

“Puppy or bagel” image posted on Reddit by an deleted user on 08 Mar 2016.

Machine learning workflow image by Brylie Christopher Oxley, CC0