-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
379 lines (319 loc) · 12 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Brown Bag Lunch - Agility</title>
<link rel="stylesheet" href="css/reveal.css">
<link rel="stylesheet" href="css/theme/magillem.css">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="lib/css/zenburn.css">
<!-- custom rules -->
<link rel="stylesheet" href="css/default.css">
</head>
<body>
<div class="reveal">
<div class="slides">
<section>
<h2>Agility</h2>
<p>
speaker:
<img class="speaker rotate-left" src="img/speakers/gary.png" alt="speaker 1">
</p>
</section>
<section>
<img class="waiting-top-left rotate-left" src="img/speakers/gary.png" alt="speaker 1">
<h2>Plan</h2>
<p><span class="fragment"><strong>Part 1</strong> - Agility : What is it?</span></p>
<p><span class="fragment"><strong>Part 2</strong> - Most used practices</span></p>
<p><span class="fragment"><strong>Part 3</strong> - Agile games</span></p>
</section>
<section>
<img class="waiting-top-left rotate-left" src="img/speakers/gary.png" alt="speaker 1">
<h2>Part 1</h2>
<h3>Agility : What is it?</h3>
</section>
<section>
<section>
<h3>What?</h3>
<blockquote cite="https://en.wikipedia.org/wiki/Agile_software_development">
<p>[...] A set of principles for software development under which requirements and solutions evolve
through the collaborative effort of self-organizing cross-functional teams.[...]</p>
</blockquote>
<i>source: <a href="https://en.wikipedia.org/wiki/Agile_software_development">wikipedia</a></i>
</section>
<section>
<h3>What?</h3>
<p><strong>Agile Manifesto</strong>: Written and published in 2001.</p>
<p><strong>4 values</strong></p>
<ul>
<li><strong>Individuals</strong> and <strong>Interactions</strong> over processes and tools</li>
<li><strong>Working Software</strong> over comprehensive documentation</li>
<li><strong>Customer Collaboration</strong> over contract negotiation</li>
<li><strong>Responding to Change</strong> over following a plan</li>
</ul>
</section>
<section>
<h3>What?</h3>
<p><strong>12 principles</strong></p>
<ul>
<li>Customer satisfaction</li>
<li>Welcome changing requirements</li>
<li>Frequent delivery</li>
<li>Continuous attention to technical excellence</li>
<li>...</li>
</ul>
<p><a href="http://agilemanifesto.org/iso/en/principles.html">http://agilemanifesto.org/iso/en/principles.html</a></p>
</section>
<section>
<h3>What?</h3>
<p>Based on <strong>iterative</strong>, <strong>incremental</strong>
and <strong>evolutionary</strong> development lifecycles!</p>
</section>
</section>
<section>
<img class="waiting-top-left rotate-left" src="img/speakers/gary.png" alt="speaker 1">
<h2>Part 2</h2>
<h3>Most used practices</h3>
</section>
<section>
<h3>Most used practices</h3>
<ul>
<li>XP</li>
<li>SCRUM</li>
<li>TDD</li>
<li>BDD</li>
</li>
</section>
<section>
<section>
<h3>Extreme Programming (XP)</h3>
<p>Software development oriented practice</p>
<p>Born between 1996 and 1999</p>
<p>Main objective : <strong>reduce costs of changes!</strong></p>
</section>
<section>
<h3>Extreme Programming (XP)</h3>
<p><strong>Principles</strong></p>
<ul>
<li>Code review is <strong>mandatory</strong></li>
<li>Pair Programming</li>
<li>Use of TDD</li>
<li>Always choose the simplest solution!</li>
<li>Several commits per day</li>
<li>Fast development cycles</li>
</ul>
</section>
<section>
<h3>Extreme Programming (XP)</h3>
<p>The customer creates scenarios which are then split into tasks by the dev team.</p>
<p>Iterations continue as long as the customer can provide more scenarios.</p>
</section>
<section>
<h3>Extreme Programming (XP)</h3>
<p><strong>Values</strong></p>
<ul>
<li>Communication</li>
<li>Simplicity</li>
<li>Feedback</li>
</ul>
</section>
<section>
<h3>Extreme Programming (XP)</h3>
<p><strong>How to</strong></p>
<p>XP uses planning poker, continuous integration, small deliveries (no overtime! overtime means bad planning!)</p>
<p><strong>constraint on use</strong></p>
<p>resistance to change, big team, feedback too long or too hard to get...</p>
</section>
</section>
<section>
<section>
<h3>SCRUM</h3>
<p>Born between 1995 and 2001</p>
<p><strong>methodology</strong> or <strong>framework</strong>?</p>
<p><strong>product backlog predictability</strong> and <strong>sprint immutability</strong> are against the Agile Manifesto!</p>
<p>Can be used for almost anything (even a <a href="http://www.scrumyourwedding.com/">wedding</a>!)</p>
</section>
<section>
<h3>SCRUM</h3>
<strong>Hail to the Sprint!</strong>
<p>Short period of time (usually 2 weeks. One month max.)</p>
<p>Contains several steps to follow</p>
</section>
<section>
<h3>SCRUM</h3>
<ul>
<li>backlog definition with <strong>epics</strong> and <strong>user stories</strong></li>
<li>Task estimations with <strong>story points</strong></li>
<li>Development, <strong>tests</strong> and <strong>daily scrum</strong></li>
<li>Sprint review (what was done)</li>
<li>Sprint retrospective (what did (not) work / how to improve)</li>
</ul>
<p>Tasks defined in a sprint cannot be changed during the sprint!</p>
</section>
<section>
<h3>SCRUM</h3>
<p>No technical framework so Scrum should be used with other practicies like <strong>XP</strong>.</p>
</section>
<section>
<h3>SCRUM</h3>
<p><strong>Product Owner</strong></p>
<ul>
<li>He knows the customer needs</li>
<li>The dev team only listen to him</li>
<li>Should be always available for the dev team</li>
<li>Can change the product backlog</li>
</ul>
</section>
<section>
<h3>SCRUM</h3>
<p><strong>Scrum Master</strong></p>
<ul>
<li>Makes sure Scrum is correctly used</li>
<li>Can manage several Scrum teams</li>
<li>Communication with the Product Owner and the dev team</li>
</ul>
</section>
<section>
<h3>SCRUM</h3>
<p><strong>Sprint Planning</strong></p>
<p>Select the product backlog items which will be realized during the sprint.</p>
<p>Should last 4 hours max. for a 2-weeks sprint</p>
<p>Items can be refined and split into smallest items or brought back to the product backlog</p>
</section>
<section>
<h3>SCRUM</h3>
<p><strong>Daily Scrum</strong></p>
<p>15 minutes max.</p>
<p>What was done the day before, what is done today, problems</p>
<p>Any (non) technical discussion must be done <strong>AFTER</strong>!</p>
</section>
<section>
<h3>SCRUM</h3>
<p><strong>Sprint Review</strong></p>
<p>Informal presentation of the achieved work</p>
<p>demo of the product backlop items developped</p>
<p>Should not be too long and should take more than 2 hours to prepare</p>
</section>
<section>
<h3>SCRUM</h3>
<p><strong>Sprint Retrospective</strong></p>
<p>How to improve practices?</p>
<p>actions plan</p>
<p>Should not take more than an hour.</p>
</section>
<section>
<h3>SCRUM</h3>
<ul>
<li>Planning Poker / Team Velocity</li>
<li>Documentation : as you wish</li>
</ul>
</section>
</section>
<section>
<section>
<h3>Test Driven Development (TDD)</h3>
<blockquote>
<p>[...] Software development process that relies on the repetition of a very short
development cycle[...]</p>
</blockquote>
<i>source: <a href="https://en.wikipedia.org/wiki/Test-driven_development">wikipedia</a></i>
<p>Born in early 2000's</p>
<p>Related to test-first programming concepts of XP!</p>
</section>
<section>
<h3>TDD</h3>
<p>lifecycle</p>
<ul>
<li>Write a new feature as a unit test</li>
<li>Run the test and expect it to fail</li>
<li>Write the smallest amount of code so the test passes</li>
<li>Refactor the code</li>
<li>Check the test still passes</li>
</ul>
</section>
<section>
<h3>TDD</h3>
<p>Documentation and specifications are in the tests.</p>
<p>Rules of acceptance must be defined first. (ATDD)</p>
<p>The developer is more confident in case of changes.</p>
<p>Improve code quality (mock, OOP, Single Responsbility Principle, etc.</p>
</section>
</section>
<section>
<section>
<h3>Behavior Driven Development (BDD)</h3>
<p>Combination of <strong>TDD</strong> and <strong>DDD</strong> (domain driven design)</p>
<p>Drives development and tests by the expected behavior of the project</p>
<p>Based on <strong>DSL</strong> (Domain Specific Language)</p>
</section>
<section>
<h3>Behavior Driven Development (BDD)</h3>
<p>Makes communication easier between QA, Devs and non-technical teams</p>
<p>Formal language shared by all members of the team</p>
<p>Several frameworks such as Cucumber, RSpec, Capybara (web), JBehave</p>
</section>
<section>
<h3>Behavior Driven Development (BDD)</h3>
<p>Uses sentences for test names</p>
<p>As [...] In order to [...] I want to [...]</p>
<p>Given [...] And [...] When [...] Then [...]</p>
<p>Can be based on User stories or specifications</p>
</section>
<section>
<h3>Behavior Driven Development (BDD)</h3>
<a href="http://blog.soat.fr/2011/06/introduction-au-behavior-driven-development/">Article: Introduction to BDD</a>
</section>
</section>
<section>
<img class="waiting-top-left rotate-left" src="img/speakers/gary.png" alt="speaker 1">
<h2>Part 3</h2>
<h3>Agile games</h3>
</section>
<section>
<section>
<h3>Spaghetti Marshmallow Challenge</h3>
<img src="img/marshmallow-challenge.jpg" title="Marshmallow Challenge" alt="Marshmallow Challenge"></img>
</section>
<section>
<h3>Spaghetti Marshmallow Challenge</h3>
<p>Goal: Build the highest spaghetti tower with a marshmallow at its top!</p>
<p>Goal: Prove that iterations and tests are better than planification!</p>
</section>
<section>
<h3>Retrospective Games</h3>
<p>Keep / Drop / Start</p>
</section>
<section>
<h3>Ball Point Game</h3>
<img src="img/ball-point-game.jpg" title="Ball Point Game" alt="Ball Point Game"></img>
</section>
</section>
<section>
<h3>Questions</h3>
</section>
<section>
<h3>Thank you!</h3>
</section>
</div>
</div>
<script src="lib/js/head.min.js"></script>
<script src="js/reveal.js"></script>
<script>
// More info https://github.com/hakimel/reveal.js#configuration
Reveal.initialize({
history: true,
transition: 'slide',
// More info https://github.com/hakimel/reveal.js#dependencies
dependencies: [
// Speaker notes
{ src: 'plugin/notes/notes.js', async: true },
// Syntax highlight for <code> elements
{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
// Zoom in and out with Alt+click
{ src: 'plugin/zoom-js/zoom.js', async: true }
]
});
</script>
</body>
</html>