agile software development in theory and practice johannes brodwall

193
Agile Software Development In Theory and Practice Johannes Brodwall

Upload: cassandra-haynes

Post on 27-Dec-2015

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Agile Software Development In Theory and Practice Johannes Brodwall

Agile Software Development

In Theory and Practice

Johannes Brodwall

Page 2: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 2

Who am I?

Page 3: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 3

Johannes Brodwall

Page 4: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 4

Board member, smidig.no

http://smidig.no/forum/

Page 5: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 5

Organizer,

Oslo XP Meetup

Every first Monday of the month at Scuba bar (Grünerløkka)

http://xp.meetup.com/13/

Page 6: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 6

Lead Software Architect

Page 7: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 7

Sole developer

Small chat solution

Page 8: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 8

Who are you?

Page 9: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 9

Who works on ”a large project”?

Page 10: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 10

Who works on (what you feel is) ”a large project”?

Page 11: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 11

Who release software infrequently?

Page 12: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 12

(0)

Page 13: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 13

Intro

Page 14: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 14

Course in an agile method

Extreme programming

Scrum

Lean Software Development

DSDM

Page 15: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 15

Course in an agile method

Extreme programming

Scrum

Lean Software Development

DSDM

Page 16: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 16

History lesson

SnowbirdAgile Manifesto

We value

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 17: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 17

History lesson

SnowbirdAgile Manifesto

We value

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 18: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 18

Specific for Perl

Test::MoreDevel::Refactor

JiftyPerlActor

Tinderbox

Page 19: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 19

Specific for Perl

Test::MoreDevel::Refactor

JiftyPerlActor

Tinderbox

Page 20: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 20

Experience report on using agile techniques in small and large environments

Continuous Integration

Relentless Testing

Frequent releasesCollective Ownership

Refactoring

Page 21: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 21

Experience report on using agile techniques in small and large environments

Continuous Integration

Relentless Testing

Frequent releasesCollective Ownership

Refactoring

Page 22: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 22

(1)

Page 23: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 23

The Problem

Page 24: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 24

Projects in crisis

Page 25: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 25

Failure to deliver value

Page 26: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 26

Barry Boehm: ”Software Engineering Economics”, 1984

Page 27: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 27

”An infant engineering discipline”

Page 28: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 28

(2)

Page 29: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 29

The Response

Page 30: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 30

”Make sure the reqs are right before you do anything”

Page 31: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 31

”Make sure nobody changes the requirements”

Page 32: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 32

”Try Harder!”

Page 33: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 33

BRUF

Page 34: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 34

BigRequirementsUpFront

Page 35: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 35

(Picture: RUP analyst hard at work)

Page 36: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 36

Trying to stuff everything into my small head!

It hurts!

Page 37: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 37

And then the world changes!

Page 38: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 38

When I guessed wrong...

Page 39: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 39

... my work is wasted

Page 40: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 40

... it is even harder to change the system

Page 41: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 41

Speculation breeds complexity

Page 42: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 42

Complexity breeds complexity

Page 43: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 43

And again....

.. my crystal ball

is broken!!!

Page 44: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 44

So I get a poorly divided, rigid design

Page 45: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 45

Formality:

Page 46: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 46

make decision ”correctly”

Page 47: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 47

The right decision

Page 48: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 48

Change control mechanism

Page 49: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 49

Just-in-case requirement

(”free” in the beginning)

Page 50: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 50

Failure to deliver value

Page 51: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 51

These ”solutions” are part of the problem

Page 52: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 52

Fixed-price, fixed-scope contract bids

Page 53: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 53

(3)

Page 54: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 54

The Alternative

Page 55: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 55

Instead of just-in-case...

Page 56: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 56

... just-in-time

Page 57: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 57

Boehm was wrong

Page 58: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 58

(or at least Boehm’s phasist readers)

Page 59: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 59

Page 60: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 60

Page 61: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 61

Harness the Power of Myopia

Page 62: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 62

1... 2... 3...

Page 63: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 63

1. Focus on short term

Page 64: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 64

Requirements for current feature

Page 65: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 65

Design for current requirement

Page 66: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 66

2. Deliver something

Page 67: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 67

Ideal: Deliver working, tested features as often as you safely can

Page 68: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 68

3. Get feedback

Page 69: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 69

(talk to people!)

Page 70: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 70

4. Adapt

Page 71: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 71

Get Feedback

Avoid Speculation

Page 72: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 72

The cost of speculation

Page 73: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 73

Myopic requirements

Page 74: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 74

Analyse the current release

Page 75: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 75

Myopic development

Page 76: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 76

Design for the current problem

Page 77: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 77

Myopic programming

Page 78: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 78

Write a test – make it pass – Remove duplication

Page 79: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 79

Page 80: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 80

(4)

Page 81: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 81

Changing your minds

Page 82: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 82

... is not always easy

Page 83: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 83

... is not always safe

Page 84: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 84

(painted into a corner)

Page 85: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 85

(Experience: Sustainable myopia varies with org.)

Page 86: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 86

Agile: Enabling safe myopia

Page 87: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 87

Not technology

Page 88: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 88

Practices, discipline, communication

Page 89: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 89

1. Prioritize requirements with a backlog

Page 90: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 90

Prioritize requirements with a backlog

Page 91: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 91

(NB: Software maintainance)

Page 92: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 92

Too fully take advantage: Close communication with

stakeholders

Page 93: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 93

2. Simple design: Goal and means

Page 94: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 94

Avoid designs that make change expensive:

Don’t Repeat Yourself!

Page 95: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 95

For example: Jifty

Page 96: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 96

Solve the current problem only

Page 97: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 97

3. Automated regression suite

Page 98: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 98

Test::Simple

Test::More (Schwern)

Page 99: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 99

4. Refactor all the time

Page 100: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 100

Def: Refactor“To transform a program while

preserving its behavior.”

Page 101: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 101

Refactor to simple design

Page 102: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 102

5. Continuous Integration

Page 103: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 103

Page 104: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 104

6. Collective Ownership

Page 105: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 105

It’s not: ”Your code and mine code”

Page 106: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 106

Refactor everything

Page 107: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 107

Continous integration keeps you safe

Page 108: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 108

(5)

Page 109: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 109

Fine tuning your agile process

Page 110: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 110

Deliveries

Page 111: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 111

Large organization Less frequent releasesHigh risk Less frequent releases

Page 112: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 112

Staged (internal delivery)

Page 113: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 113

Breaking it up

Page 114: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 114

”The smallest meaningful task”

Page 115: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 115

Small releases: Penalizes half-work

Page 116: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 116

One click deployment

Page 117: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 117

Extreme: Deploy every feature

Page 118: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 118

Mastering Testing

Page 119: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 119

”Only test what you want to work”

-- Ron Jeffries

Page 120: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 120

Many types of test

Acceptance test

Databases

User interfaces

Integration tests

Unit test

Performance/Load/Stress

Page 121: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 121

All can be automated

Page 122: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 122

Greatest value: Acceptance tests

Page 123: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 123

Easiest to implement: Unit tests

Page 124: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 124

Starting unit testing:

Page 125: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 125

Don’t

Page 126: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 126

Try to test everything in the beginning

Page 127: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 127

Do:

Page 128: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 128

Focus on ”bang for the buck”

Page 129: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 129

Good: New features

Page 130: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 130

Better: Bugs

Page 131: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 131

Even better: Bug ridden code

Page 132: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 132

Smoke test

Def: ”A rudimentary form of testing; power is applied and the tester checks for sparks,

smoke, or other dramatic signs of fundamental failure”

Page 133: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 133

Perfecting unit tests

Page 134: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 134

Remember: Test is a noun!

Page 135: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 135

Tests as specification

Page 136: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 136

Write tests first

Page 137: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 137

Consider test brittleness

Page 138: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 138

Consider unit test running time

Page 139: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 139

Implementing Continuous Integation

Page 140: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 140

Avoid sliding back

Page 141: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 141

Not useful in small projects (1-3 people?)

Page 142: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 142

Can at least scale to 50 people

Page 143: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 143

Be prepared to pay the price

Page 144: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 144

Continuous Integration will become critical to you org.

Page 145: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 145

Has given us the ability to do enormous refactorings

Page 146: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 146

Has enabled us to treat 500 KLOC as one code base

Page 147: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 147

Communication

Page 148: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 148

What is the biggest cost driver?

Page 149: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 149

Misunderstandings

Page 150: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 150

Misunderstood business needs

Page 151: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 151

Misunderstood interface to integrate with

Page 152: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 152

Misunderstanding your neighbours code

Page 153: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 153

Not knowing that you neighbour is doing the same

as you!

Page 154: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 154

Techniques:

Page 155: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 155

Keep your customer close

Page 156: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 156

Obvious, difficult(But if the customer won’t be close, how

important is the project, really?)

Page 157: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 157

Pair programming

Page 158: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 158

Fun, difficult, rewarding, exhaustingHard to sustain (but great if you

can!)

Page 159: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 159

Stand up meetings

Page 160: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 160

• ”What did you achieve since yesterday?”• ”What do you plan on achiving today?”

• ”What is standing in your way?”

Page 161: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 161

Keep it short!

Page 162: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 162

Page 163: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 163

Keep it short!

Page 164: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 164

Fun, easy, rewardingExhausting (if you don’t do it right!)

Page 165: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 165

Reflection workshops

Page 166: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 166

Page 167: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 167

Fun, easy, rewardingValue decreases with time

Page 168: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 168

(6)

Page 169: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 169

Conclusion

Page 170: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 170

Phasist development...

Page 171: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 171

Forces us to guessForces us to consider a too

much at the same time

Page 172: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 172

... leads to suffering

Page 173: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 173

(and our poor reputation as professionals)

Page 174: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 174

When I speculate, I’m usually wrong

Page 175: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 175

So instead...

Page 176: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 176

1. Short-term decisions

Page 177: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 177

2. Deliver something

Page 178: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 178

3. Get feedback

Page 179: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 179

4. Adapt

Page 180: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 180

(requires practices and tricks)

Page 181: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 181

Summary of tricks

Page 182: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 182

Prioritize with a backlog

Page 183: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 183

Keep in touch with stand-up meetings

Page 184: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 184

Just-in-time planning and requirements

Page 185: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 185

Simple design

Page 186: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 186

Test only what you want to work

Page 187: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 187

Refactor mercilessly

Page 188: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 188

Continuous Integration

Page 189: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 189

Parting words

Page 190: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 190

Software isn’t a canned good

Page 191: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 191

It rots during storage

Page 192: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 192

Good luck with your agile project!

Page 193: Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes [email protected]

Slide 193

Thank you for listening

http://smidig.no/forum/http://xp.meetup.com/13/