+ All Categories
Home > Education > Controlling Complexities in Software Development

Controlling Complexities in Software Development

Date post: 28-Jan-2018
Category:
Upload: david-wood
View: 87 times
Download: 0 times
Share this document with a friend
30
David Hyland-Wood [email protected] @prototypo Controlling Complexity in software development
Transcript
Page 2: Controlling Complexities in Software Development

Failed Software ProjectsFa

ilure

Rat

e (%

)

1970 1980 1990 2000 20101960

100

50

0

Page 3: Controlling Complexities in Software Development

Failed Software ProjectsFa

ilure

Rat

e (%

)

1970 1980 1990 2000 20101960

100

50

0

35

Page 4: Controlling Complexities in Software Development

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

Page 5: Controlling Complexities in Software Development

Image attributions provided on last slide.

Waterfall Methodology

Extreme Programming

Page 6: Controlling Complexities in Software Development

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

Page 7: Controlling Complexities in Software Development

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

Page 8: Controlling Complexities in Software Development

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

Page 9: Controlling Complexities in Software Development

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

Page 10: Controlling Complexities in Software Development

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.

Page 11: Controlling Complexities in Software Development

https://xkcd.com/927/

Page 12: Controlling Complexities in Software Development

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.

Page 13: Controlling Complexities in Software Development

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.

Page 14: Controlling Complexities in Software Development

–Ernest Hemingway

“How did you go bankrupt?”

“Two ways. Gradually, then suddenly.”

Page 15: Controlling Complexities in Software Development

Failed Software ProjectsFa

ilure

Rat

e (%

)

1970 1980 1990 2000 20101960

100

50

0

35

?

Page 16: Controlling Complexities in Software Development
Page 17: Controlling Complexities in Software Development

3 challenges to existing methodologies

Cloud computing

• Distributed components

Smart contracts

• Social complexity

Deep learning

• Maintainability

Page 18: Controlling Complexities in Software Development
Page 19: Controlling Complexities in Software Development

Courtesy Cinergix Pty Ltd © 2017

Page 20: Controlling Complexities in Software Development

Courtesy Bulletproof Pty Ltd © 2017

Page 21: Controlling Complexities in Software Development

Smart Contracts

Page 22: Controlling Complexities in Software Development

Smart Contracts

Page 23: Controlling Complexities in Software Development

Smart Contracts

Page 24: Controlling Complexities in Software Development

Deep Learning Networks

Page 25: Controlling Complexities in Software Development
Page 26: Controlling Complexities in Software Development
Page 27: Controlling Complexities in Software Development

The

QuestionBig

Page 28: Controlling Complexities in Software Development

Failed Software ProjectsFa

ilure

Rat

e (%

)

1970 1980 1990 2000 20101960

100

50

0

35

?

Page 30: Controlling Complexities in Software Development

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


Recommended