Presentation is loading. Please wait.

Presentation is loading. Please wait.

Agile Software Development In Theory and Practice Johannes Brodwall.

Similar presentations


Presentation on theme: "Agile Software Development In Theory and Practice Johannes Brodwall."— Presentation transcript:

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/


Download ppt "Agile Software Development In Theory and Practice Johannes Brodwall."

Similar presentations


Ads by Google