How did we end up here? Todd Montgomery - @toddlmontgomery Martin - - PowerPoint PPT Presentation

how did we end up here
SMART_READER_LITE
LIVE PREVIEW

How did we end up here? Todd Montgomery - @toddlmontgomery Martin - - PowerPoint PPT Presentation

How did we end up here? Todd Montgomery - @toddlmontgomery Martin Thompson - @mjpt777 How bad can things really be? Software Project Success Rates Successful Challenged Failure Ad-hoc 49% 37% 14% Iterative 61% 28% 11% Agile 60% 28%


slide-1
SLIDE 1

How did we end up here?

Todd Montgomery - @toddlmontgomery Martin Thompson - @mjpt777

slide-2
SLIDE 2
slide-3
SLIDE 3
slide-4
SLIDE 4
slide-5
SLIDE 5
slide-6
SLIDE 6

How bad can things really be?

slide-7
SLIDE 7

Successful Challenged Failure

Ad-hoc 49% 37% 14% Iterative 61% 28% 11% Agile 60% 28% 12% Traditional 47% 36% 17% Software Project Success Rates

  • Dr Dobbs 2010
slide-8
SLIDE 8

< 10 11 - 25 > 25

Ad-hoc 70% 58% 40% Iterative 88% 68% 55% Agile 83% 70% 55% Traditional 69% 51% 50% Software Project Success Rates – by Team Size

  • Dr Dobbs 2010
slide-9
SLIDE 9

Well that’s the

  • ptimistic view!
slide-10
SLIDE 10

Successful: 32% Challenged: 44% Failure: 24%

– Standish Group Chaos Report 2010

Software Project Success Rates

slide-11
SLIDE 11

< $350,000: 20% $350,000 - $1,000,000: 25% > $1,000,000: 28%

– Gartner 2012

Software Project Failure Rates

slide-12
SLIDE 12

“...the larger the company, the greater the chance that what drives tech investments isn't what's best for the business, but what's best for the decision-maker's career.”

– Information Week (EA Section)

slide-13
SLIDE 13

Sacred Cows - It’s BBQ Time!!!

slide-14
SLIDE 14

Enterprise Software

slide-15
SLIDE 15

ent•ter•prise

noun \ˈen-tə(r)-ˌprīz\ : a project or activity that involves many people and that is often difficult : the ability or desire to do dangerous or difficult things or to solve problems in new ways

Source: http://www.merriam-webster.com/

slide-16
SLIDE 16
slide-17
SLIDE 17

Are you selling code, people, or

  • ne-throat-to-choke?

Enterprise Software

slide-18
SLIDE 18
slide-19
SLIDE 19

Product Management

slide-20
SLIDE 20

Minimum Viable Product ?

slide-21
SLIDE 21

Product Owner ?

slide-22
SLIDE 22
slide-23
SLIDE 23

Technologists ARE part of the business

slide-24
SLIDE 24

Take responsibility for ROI

slide-25
SLIDE 25

Agile Methods

slide-26
SLIDE 26
slide-27
SLIDE 27
slide-28
SLIDE 28

Water-scrum-fall

slide-29
SLIDE 29

What really matters?

slide-30
SLIDE 30

Need to focus on learning, feedback cycles, and outcomes

slide-31
SLIDE 31

There is an uncomfortable truth…

slide-32
SLIDE 32

Bug Triage

slide-33
SLIDE 33

tri•age

noun \ trē-ˈäzh, ˈtrē-ˌ\ : the sorting of and allocation of treatment to patients and especially battle and disaster victims according to a system of priorities designed to maximize the number of survivors.

Source: http://www.merriam-webster.com/

slide-34
SLIDE 34
slide-35
SLIDE 35

“Worse is Better...”

slide-36
SLIDE 36

Really???

slide-37
SLIDE 37
slide-38
SLIDE 38

“The bitterness of poor quality is remembered long after the sweetness of a low price is faded from memory.”

  • Aldo Gucci 1938
slide-39
SLIDE 39
slide-40
SLIDE 40

Shared Mutable State

slide-41
SLIDE 41

Shared Mutable State... the most feared words in computing

slide-42
SLIDE 42

…if not they should be!

slide-43
SLIDE 43
slide-44
SLIDE 44
slide-45
SLIDE 45

Shared Mutable State should only be used for systems programming

slide-46
SLIDE 46

Embrace append-only, single writer, and shared nothing designs

slide-47
SLIDE 47

If you don’t... math will hunt you down and there is nowhere to hide!

slide-48
SLIDE 48

Universal Scalability Law

2 4 6 8 10 12 14 16 18 20 1 2 4 8 16 32 64 128 256 512 1024

Speedup Processors

Amdahl USL

slide-49
SLIDE 49

Text Encoding

slide-50
SLIDE 50
slide-51
SLIDE 51

But it’s human readable...

slide-52
SLIDE 52

Binary is hard to work with...

slide-53
SLIDE 53
slide-54
SLIDE 54
slide-55
SLIDE 55

Big Data

slide-56
SLIDE 56

Communications Battery life and bandwidth?

slide-57
SLIDE 57

Synchronous Comms

slide-58
SLIDE 58

Bad things will happen!!!

slide-59
SLIDE 59

Synchronous Communication is the crystal meth of distributed programming

slide-60
SLIDE 60

Causes a coupling in location and time

slide-61
SLIDE 61

Errors need to be first class messages

slide-62
SLIDE 62

Full-duplex vs Half-duplex

slide-63
SLIDE 63

Are your micro services

  • n crystal meth?
slide-64
SLIDE 64

Abstraction

slide-65
SLIDE 65

“All non-trivial abstractions, to some extent, are leaky.”

  • Joel Spolsky
slide-66
SLIDE 66

“The detail of underlying complexity cannot be ignored.”

slide-67
SLIDE 67

“the purpose of abstracting is not to be vague, but to create a new semantic level in which

  • ne can be absolutely precise”
  • Dijkstra
slide-68
SLIDE 68

We could say the main issue is that people don’t understand abstractions...but...

slide-69
SLIDE 69

Sins committed in the name of Abstraction

slide-70
SLIDE 70

ORMs !!!

slide-71
SLIDE 71

Functional Programming

slide-72
SLIDE 72

What is the biggest issue with functional programming?

slide-73
SLIDE 73

Functional Programmers

slide-74
SLIDE 74

Functional programming is

NOT

the answer to multi-core

slide-75
SLIDE 75

Software Transactional Memory was a failed experiment!

slide-76
SLIDE 76

No Mechanical Sympathy?

slide-77
SLIDE 77

“...software is not constrained by the physical world... don’t be a douche”

  • FP Fanboi
slide-78
SLIDE 78
slide-79
SLIDE 79
slide-80
SLIDE 80

However there is genuine brilliance in functional programming

slide-81
SLIDE 81

Collaborate and great things can happen...

slide-82
SLIDE 82

Cloud Computing

slide-83
SLIDE 83

Why has cloud computing taken off?

slide-84
SLIDE 84

BOFH

slide-85
SLIDE 85

Business Prevention Office

slide-86
SLIDE 86

Opportunity Cost!!!

slide-87
SLIDE 87

“Optimise for speed of delivery and you will deliver so fast you reduce costs”

  • Adrian Cockcroft
slide-88
SLIDE 88

Virtualization

slide-89
SLIDE 89
slide-90
SLIDE 90
slide-91
SLIDE 91

Jigsaw

slide-92
SLIDE 92

Throw hardware at it… development is too expensive

slide-93
SLIDE 93

The free lunch is over…we cannot be sloppy anymore…

slide-94
SLIDE 94

L0 1534 µops LB 28 µops

Loops

LB 28 µops

slide-95
SLIDE 95

Code must be simple and composable

slide-96
SLIDE 96

Cache Sub-System

L1(D) - 32K L2 - 256K L3 – 8-20MB LF/WC Buffers L1(I) – 32K L0(I) – 1.5k µops

32 Bytes / cycle

System Agent TLB Pre-fetchers TLB Pre-fetchers

128 bits / cycle

MOB Memory Controller QPI

QPI Bus Memory Channels 16 Bytes / cycle Ring Bus

PCI-e Controller

32 Bytes / cycle 32 Bytes / cycle

slide-97
SLIDE 97

Patterns of access and locality are key to performance

slide-98
SLIDE 98

Accumulated Improvement Time Bandwidth Latency

Memory Sub-System Performance

slide-99
SLIDE 99

What does this mean for software?

slide-100
SLIDE 100

Diversity

slide-101
SLIDE 101

Testosterone Driven Development

slide-102
SLIDE 102
slide-103
SLIDE 103

What did the Carnegie Mellon studies show?

slide-104
SLIDE 104
slide-105
SLIDE 105

“As soon as you realise that most people don’t know what they are doing the world makes a lot more sense…”

– Farley’s second law

slide-106
SLIDE 106

We need to look seriously at training programmers

slide-107
SLIDE 107

Coaching and Apprenticeships

slide-108
SLIDE 108

“The most important thing I've accomplished, other than building the compiler, is training young people.”

  • Grace Hopper
slide-109
SLIDE 109

“'Do you think we can do this?' I say, ‘Try it.’ And I back 'em up. They need that. I keep track of them as they get older and I stir 'em up at intervals so they don't forget to take chances.

  • Grace Hopper
slide-110
SLIDE 110

In closing…

slide-111
SLIDE 111

What are the greatest achievements

  • f the human race?
slide-112
SLIDE 112

The Scientific Method

slide-113
SLIDE 113

Understanding of Evolution

slide-114
SLIDE 114

Don’t feel bad… We are living in the era of Software Alchemy

slide-115
SLIDE 115
slide-116
SLIDE 116

Questions?

@mjpt777 – Martin Thompson @toddlmontgomery – Todd Montgomery

“It does not matter how intelligent you are, if you guess and that guess cannot be backed up by experimental evidence – then it is still a guess.”

  • Richard Feynman