Download presentation
Presentation is loading. Please wait.
Published byCassandra Haynes Modified over 9 years ago
1
Agile Software Development In Theory and Practice Johannes Brodwall
2
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 2 Who am I?
3
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 3 Johannes Brodwall
4
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 4 Board member, smidig.no http://smidig.no/forum/
5
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 5 Organizer, Oslo XP Meetup Every first Monday of the month at Scuba bar (Grünerløkka) http://xp.meetup.com/13/
6
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 6 Lead Software Architect
7
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 7 Sole developer Small chat solution
8
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 8 Who are you?
9
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 9 Who works on ”a large project”?
10
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 10 Who works on (what you feel is) ”a large project”?
11
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 11 Who release software infrequently?
12
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 12 (0)
13
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 13 Intro
14
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 14 Course in an agile method Extreme programming Scrum Lean Software Development DSDM
15
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 15 Course in an agile method Extreme programming Scrum Lean Software Development DSDM
16
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 16 History lesson Snowbird Agile 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
17
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 17 History lesson Snowbird Agile 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
18
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 18 Specific for Perl Test::More Devel::Refactor Jifty PerlActor Tinderbox
19
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 19 Specific for Perl Test::More Devel::Refactor Jifty PerlActor Tinderbox
20
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 20 Experience report on using agile techniques in small and large environments Continuous Integration Relentless Testing Frequent releases Collective Ownership Refactoring
21
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 21 Experience report on using agile techniques in small and large environments Continuous Integration Relentless Testing Frequent releases Collective Ownership Refactoring
22
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 22 (1)
23
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 23 The Problem
24
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 24 Projects in crisis
25
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 25 Failure to deliver value
26
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 26 Barry Boehm: ”Software Engineering Economics”, 1984
27
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 27 ”An infant engineering discipline”
28
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 28 (2)
29
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 29 The Response
30
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 30 ” ”Make sure the reqs are right before you do anything”
31
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 31 ” ”Make sure nobody changes the requirements”
32
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 32 ” ”Try Harder!”
33
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 33 BRUF
34
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 34 ” Big Requirements Up Front
35
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 35 (Picture: RUP analyst hard at work)
36
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 36 Trying to stuff everything into my small head! It hurts!
37
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 37 And then the world changes!
38
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 38 When I guessed wrong...
39
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 39... my work is wasted
40
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 40... it is even harder to change the system
41
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 41 Speculation breeds complexity
42
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 42 Complexity breeds complexity
43
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 43 And again...... my crystal ball is broken!!!
44
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 44 So I get a poorly divided, rigid design
45
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 45 Formality:
46
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 46 make decision ”correctly”
47
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 47 The right decision
48
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 48 Change control mechanism
49
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 49 Just-in-case requirement (”free” in the beginning)
50
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 50 Failure to deliver value
51
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 51 These ”solutions” are part of the problem
52
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 52 Fixed-price, fixed-scope contract bids
53
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 53 (3)
54
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 54 The Alternative
55
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 55 Instead of just-in-case...
56
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 56... just-in-time
57
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 57 Boehm was wrong
58
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 58 (or at least Boehm’s phasist readers)
59
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 59
60
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 60
61
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 61 Harness the Power of Myopia
62
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 62 1... 2... 3...
63
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 63 1. Focus on short term
64
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 64 Requirements for current feature
65
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 65 Design for current requirement
66
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 66 2. Deliver something
67
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 67 Ideal: Deliver working, tested features as often as you safely can
68
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 68 3. Get feedback
69
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 69 (talk to people!)
70
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 70 4. Adapt
71
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 71 Get Feedback Avoid Speculation
72
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 72 The cost of speculation
73
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 73 Myopic requirements
74
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 74 Analyse the current release
75
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 75 Myopic development
76
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 76 Design for the current problem
77
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 77 Myopic programming
78
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 78 Write a test – make it pass – Remove duplication
79
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 79
80
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 80 (4)
81
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 81 Changing your minds
82
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 82... is not always easy
83
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 83... is not always safe
84
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 84 (painted into a corner)
85
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 85 (Experience: Sustainable myopia varies with org.)
86
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 86 Agile: Enabling safe myopia
87
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 87 Not technology
88
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 88 Practices, discipline, communication
89
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 89 1. Prioritize requirements with a backlog
90
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 90 Prioritize requirements with a backlog
91
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 91 (NB: Software maintainance)
92
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 92 Too fully take advantage: Close communication with stakeholders
93
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 93 2. Simple design: Goal and means
94
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 94 Avoid designs that make change expensive: Don’t Repeat Yourself!
95
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 95 For example: Jifty
96
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 96 Solve the current problem only
97
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 97 3. Automated regression suite
98
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 98 Test::Simple Test::More (Schwern)
99
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 99 4. Refactor all the time
100
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 100 Def: Refactor “To transform a program while preserving its behavior.”
101
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 101 Refactor to simple design
102
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 102 5. Continuous Integration
103
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 103
104
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 104 6. Collective Ownership
105
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 105 It’s not: ”Your code and mine code”
106
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 106 Refactor everything
107
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 107 Continous integration keeps you safe
108
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 108 (5)
109
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 109 Fine tuning your agile process
110
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 110 Deliveries
111
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 111 Large organization Less frequent releases High risk Less frequent releases
112
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 112 Staged (internal delivery)
113
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 113 Breaking it up
114
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 114 ”The smallest meaningful task”
115
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 115 Small releases: Penalizes half-work
116
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 116 One click deployment
117
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 117 Extreme: Deploy every feature
118
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 118 Mastering Testing
119
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 119 ”Only test what you want to work” -- Ron Jeffries
120
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 120 Many types of test Acceptance test Databases User interfaces Integration tests Unit test Performance/Load/Stress
121
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 121 All can be automated
122
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 122 Greatest value: Acceptance tests
123
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 123 Easiest to implement: Unit tests
124
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 124 Starting unit testing:
125
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 125 Don’t
126
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 126 Try to test everything in the beginning
127
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 127 Do:
128
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 128 Focus on ”bang for the buck”
129
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 129 Good: New features
130
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 130 Better: Bugs
131
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 131 Even better: Bug ridden code
132
Copyright 2004 – Johannes Brodwall johannes@brodwall.com 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”
133
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 133 Perfecting unit tests
134
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 134 Remember: Test is a noun!
135
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 135 Tests as specification
136
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 136 Write tests first
137
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 137 Consider test brittleness
138
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 138 Consider unit test running time
139
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 139 Implementing Continuous Integation
140
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 140 Avoid sliding back
141
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 141 Not useful in small projects (1-3 people?)
142
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 142 Can at least scale to 50 people
143
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 143 Be prepared to pay the price
144
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 144 Continuous Integration will become critical to you org.
145
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 145 Has given us the ability to do enormous refactorings
146
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 146 Has enabled us to treat 500 KLOC as one code base
147
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 147 Communication
148
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 148 What is the biggest cost driver?
149
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 149 Misunderstandings
150
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 150 Misunderstood business needs
151
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 151 Misunderstood interface to integrate with
152
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 152 Misunderstanding your neighbours code
153
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 153 Not knowing that you neighbour is doing the same as you!
154
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 154 Techniques:
155
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 155 Keep your customer close
156
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 156 Obvious, difficult (But if the customer won’t be close, how important is the project, really?)
157
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 157 Pair programming
158
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 158 Fun, difficult, rewarding, exhausting Hard to sustain (but great if you can!)
159
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 159 Stand up meetings
160
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 160 ”What did you achieve since yesterday?” ”What do you plan on achiving today?” ”What is standing in your way?”
161
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 161 Keep it short!
162
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 162
163
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 163 Keep it short!
164
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 164 Fun, easy, rewarding Exhausting (if you don’t do it right!)
165
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 165 Reflection workshops
166
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 166
167
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 167 Fun, easy, rewarding Value decreases with time
168
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 168 (6)
169
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 169 Conclusion
170
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 170 Phasist development...
171
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 171 Forces us to guess Forces us to consider a too much at the same time
172
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 172... leads to suffering
173
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 173 (and our poor reputation as professionals)
174
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 174 When I speculate, I’m usually wrong
175
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 175 So instead...
176
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 176 1. Short-term decisions
177
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 177 2. Deliver something
178
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 178 3. Get feedback
179
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 179 4. Adapt
180
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 180 (requires practices and tricks)
181
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 181 Summary of tricks
182
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 182 Prioritize with a backlog
183
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 183 Keep in touch with stand- up meetings
184
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 184 Just-in-time planning and requirements
185
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 185 Simple design
186
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 186 Test only what you want to work
187
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 187 Refactor mercilessly
188
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 188 Continuous Integration
189
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 189 Parting words
190
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 190 Software isn’t a canned good
191
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 191 It rots during storage
192
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 192 Good luck with your agile project!
193
Copyright 2004 – Johannes Brodwall johannes@brodwall.com Slide 193 Thank you for listening http://smidig.no/forum/ http://xp.meetup.com/13/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.