aboutsummaryrefslogtreecommitdiff
path: root/slides/2019-it-intro-scrum/src/body.tex
blob: 531a9d806788a710d79acd8a857c558c1d990bea (plain)
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
380
381
382
383
\begin{frame}
  \frametitle{Learning outcome based on syllabus}
  \begin{itemize}
    \item Give an account of different ways to develop software (ISGA01)
    \item Describe different ways of developing software (ISGA06)
    \item Explain the development process of an information system (ISGA90)
  \end{itemize}
  \vfill\centering
  \smartdiagram[sequence diagram]{%
    Reality check,%
    Waterfall method,%
    Scrum method%
  }
\end{frame}

\begin{frame}
  \frametitle{Reality check}
  \begin{columns}
    \begin{column}{0.59\textwidth}
      \begin{itemize}
        \item Three things we wish were true
          \begin{itemize}
            \item Customers know what they want
            \item Developers know how to build it
            \item Nothing changes at the course of a project
          \end{itemize}
      \end{itemize}
      \begin{itemize}
        \item Three things we have to live with
          \begin{itemize}
            \item Customers figure out what they want
            \item Developers figure out how to build it
            \item Many things change at the course of a project
          \end{itemize}
      \end{itemize}
    \end{column}
    \begin{column}{0.39\textwidth}
      \includegraphics[width=\textwidth]{img/reality}
    \end{column}
  \end{columns}
\end{frame}

\begin{frame}
  \frametitle{Timeline of different approaches towards product development}
  \centering
  \includegraphics[height=0.4\textheight]{img/timeline}\\
  \vfill\alert{Our scope: Agile and Scrum, briefly Waterfall and XP}
\end{frame}

\begin{frame}
  \frametitle{Monolithic vs Iterative and incremental}
  \centering
  \includegraphics[height=0.65\textheight]{img/iterative}
  \vfill
  \alert{Agile development is all about feedback cycles}
\end{frame}

\begin{frame}
  \frametitle{Each iteration is a mini project that involves all diciplines}
  \centering
  \includegraphics[height=0.7\textheight]{img/one-it}\\
  \alert{Note: not necessarily in this order!}
\end{frame}

\begin{frame}
  \frametitle{Agile vs Waterfall}
  \centering
  \includegraphics[height=0.70\textheight]{img/cmp}
\end{frame}

\begin{frame}
  \frametitle{Does it work? Results from a survey on agile software development}
  \centering
  \includegraphics[height=0.70\textheight]{img/works}
\end{frame}

\begin{frame}
  \frametitle{Scrum properties}
  \begin{columns}
    \begin{column}{0.59\textwidth}
      \begin{itemize}
        \item Emperical---progress based on real-world observations rather than
          fictious plans
        \item Identify problems early
        \item Prioritize strictly
        \item Plan for change and continuous improvement
          \begin{itemize}
            \item Short feedback loop
            \item Ship working software frequently
            \item ``Planning is needed, but always wrong''
          \end{itemize}
        \item Cross-functional and self-organizing teams
        \item Pull-scheduling
        \item Timeboxing
        \item Simple tools
        \item ...
      \end{itemize}
    \end{column}
    \begin{column}{0.39\textwidth}
      \centering
      \includegraphics[height=0.6\textheight]{img/tia}
      \burl{https://www.scrum.org/resources/blog/three-pillars-empiricism-scrum}
    \end{column}
  \end{columns}
\end{frame}

\begin{frame}
  \frametitle{An overview of the Scrum process}
  \begin{columns}
    \begin{column}{0.69\textwidth}
      \includegraphics[height=0.8\textheight]{img/scrum-overview}
    \end{column}
    \begin{column}{0.29\textwidth}
      Roles:
      \begin{itemize}
        \item Product owner
        \item Scrum master
        \item Developer
      \end{itemize}
    \end{column}
  \end{columns}
\end{frame}

\begin{frame}
  \frametitle{A typical sprint}
  \begin{itemize}
    \item \textbf{Sprint planning} \titlefloatright{\textbf{Timeboxed}}
      \begin{itemize}
        \item Update and prioritize features in the product backlog%
          \titlefloatright{4h}
        \item Add top-priority features to sprint backlog and divide into
          tasks\titlefloatright{4h}
      \end{itemize}
    \item \textbf{Sprint execution} \titlefloatright{2--4 weeks}
      \begin{itemize}
        \item Daily scrum---a short stand-up meeting \titlefloatright{15m}
          \begin{itemize}
            \item What did you do yesterday?
            \item What will you do today?
            \item Any problems?
          \end{itemize}
      \end{itemize}
    \item \textbf{Sprint review} \titlefloatright{4h}
      \begin{itemize}
        \item Team holds a demo for product owner and stakeholders
      \end{itemize}
    \item \textbf{Sprint retrospective} \titlefloatright{2h}
      \begin{itemize}
        \item The good and the bad?
        \item How can we improve as a team?
      \end{itemize}
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Sprint planning---what should we work on the next couple of weeks?}
  \begin{columns}
    \begin{column}{0.69\textwidth}
      \begin{itemize}
        \item Dialog between product owner and development team
          \begin{itemize}
            \item PO: present\&adapt priority features in product backlog
            \item Team: how much can be done
              \begin{itemize}
                \item Story points
                \item Sprint velocity
                \item Poker estimates are common
              \end{itemize}
          \end{itemize}
        \item Concrete output of this meeting?
          \begin{itemize}
            \item A sprint backlog and definitions of `done'
            \item A set of tasks for each feature in the sprint backlog
            \item A sprint goal, a demo date, and how to demo
            \item A time and place for daily scrum
          \end{itemize}
      \end{itemize}
    \end{column}
    \begin{column}{0.29\textwidth}
      \centering
      \input{img/esi}
    \end{column}
  \end{columns}
\end{frame}

\begin{frame}
  \frametitle{...using cards!}
  \centering
  \includegraphics[height=0.8\textheight]{img/poker}
\end{frame}

\begin{frame}
  \frametitle{Daily scrum---a short stand-up meeting that repeats every day}
  \begin{columns}
    \begin{column}{0.39\textwidth}
      \begin{itemize}
        \item Purpose---keep \textbf{team members} up-to-date
        \item What did you do yesterday?
        \item What will you do today?
        \item Any problems?
      \end{itemize}
    \end{column}
    \begin{column}{0.59\textwidth}
      \centering
      \includegraphics[width=\textwidth]{img/board}\\
      A board is used to track progress
    \end{column}
  \end{columns}
\end{frame}

\begin{frame}
  \frametitle{Sprint review---show-case the latest prototype and start a dialog}
  \begin{columns}
    \begin{column}{0.49\textwidth}
      \begin{itemize}
        \item Date and time already defined---\textbf{unconditional}
        \item All roles attend, including stakeholders if invited
        \item A demo of the prototype shows that the sprint goal is achieved
          \begin{itemize}
            \item How to demo? Sprint planning...
          \end{itemize}
      \end{itemize}
    \end{column}
    \begin{column}{0.49\textwidth}
      \centering
      \includegraphics[width=\textwidth]{img/demo}\\
    \end{column}
  \end{columns}
  \pause
  \vfill\centering\alert{Wait w000t: what if we are not done?}\\
  \pause
  \alert{This is identified early on and solved accordingly!}
\end{frame}

\begin{frame}
  \frametitle{Sprint retrospective---ensure that the team improves internally}
  \begin{columns}
    \begin{column}{0.59\textwidth}
      \begin{itemize}
        \item Product owner is excluded from this meeting
        \item The goal is to improve the team productivity
          \begin{itemize}
            \item What did we do right?
            \item What did we do wrong?
            \item How can we improve? \textbf{Choose one!}
          \end{itemize}
      \end{itemize}
    \end{column}
    \begin{column}{0.45\textwidth}
      \centering
      \includegraphics[width=\textwidth]{img/retrospective}\\
      Make lists and perhaps magnet vote
    \end{column}
  \end{columns}
\end{frame}

\begin{frame}
  \frametitle{What does `done' really mean?}
  \begin{columns}
    \begin{column}{0.59\textwidth}
      \begin{itemize}
        \item \textbf{Can be delivered to the customer}
          \begin{itemize}
            \item A given feature is implemented
            \item Code follows good engineering practises
            \item Code is documented and refactored
            \item ...or anything else defined at sprint planning
          \end{itemize}
        \item \textbf{If your estimates turn out to be wrong}
          \begin{itemize}
            \item Work harder, longer and/or smarter
            \item Lower quality by skipping design, testing, integration and/or
              documentation
            \item Reduce and/or remove features
            \item What are the pros and cons?
          \end{itemize}
      \end{itemize}
    \end{column}
    \begin{column}{0.39\textwidth}
      \centering
      \includegraphics[width=\textwidth]{img/done}
    \end{column}
  \end{columns}
\end{frame}

\begin{frame}
  \frametitle{Consequences of the `hurry-up' and `lowered-quality' approaches}
  \begin{columns}
    \begin{column}{0.49\textwidth}
      \centering
      \includegraphics[height=0.4\textheight]{img/hurry}
      \begin{itemize}
        \item \textbf{Hurry-up}---work overtime, skip breaks, add more people,
          ...
          \begin{itemize}
            \item Burnout 
            \item Errors
            \item `More junk in short time'
          \end{itemize}
      \end{itemize}
    \end{column}
    \begin{column}{0.49\textwidth}
      \centering
      \includegraphics[height=0.4\textheight]{img/debt}
      \begin{itemize}
        \item \textbf{Lowered quality}---leads to technical debt and thus
          reduced efficiency
          \begin{itemize}
            \item Harder to re-use code
            \item Harder to add functionality
            \item Harder to meet future goals
          \end{itemize}
      \end{itemize}
    \end{column}
  \end{columns}
  \vfill\centering
  \alert{In other words: involve product owner and go with option three}
\end{frame}

\begin{frame}
  \frametitle{From start to finnish---putting it all together}
  \centering
  \includegraphics[height=0.75\textheight]{img/scrum-whole}
\end{frame}

\begin{frame}
  \frametitle{Scrum and eXtreme Programming (XP)}
  \begin{columns}
    \begin{column}{0.49\textwidth}
      \centering
      \includegraphics[width=0.9\textwidth]{img/scrum-and-xp}
    \end{column}
    \begin{column}{0.49\textwidth}
      \centering
      \includegraphics[width=0.9\textwidth]{img/scrum-and-xp2}
    \end{column}
  \end{columns}
  \begin{itemize}
    \item Scrum can be viewed as a team-to-stakeholder interface
    \item The team is self-organizing, but it \textbf{could} work using XP
      practises
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Can't get enough? Review the concepts or dig into the details
    (Optional)}
  \begin{columns}
    \begin{column}{0.33\textwidth}
      \centering
      \includegraphics[width=\textwidth]{img/scrum-1m}
      \burl{https://www.youtube.com/watch?v=TRcReyRYIMg}
    \end{column}
    \begin{column}{0.33\textwidth}
      \centering
      \includegraphics[width=\textwidth]{img/scrum-2m}
      \burl{https://www.youtube.com/watch?v=WxiuE-1ujCM}
    \end{column}
    \begin{column}{0.33\textwidth}
      \centering
      \includegraphics[width=\textwidth]{img/scrum-10m}
      \burl{https://www.youtube.com/watch?v=XU0llRltyFM}
    \end{column}
  \end{columns}
  \vfill
  \begin{columns}
    \begin{column}{0.33\textwidth}
      \centering
      \includegraphics[width=\textwidth]{img/agile-manifesto}
      \burl{http://agilemanifesto.org/}
    \end{column}
    \begin{column}{0.33\textwidth}
      \centering
      \includegraphics[width=\textwidth]{img/scrum-guide}
      \burl{https://www.scrumguides.org/docs/scrumguide/v2017/2017-Scrum-Guide-US.pdf}
    \end{column}
    \begin{column}{0.33\textwidth}
      \centering
      \includegraphics[width=\textwidth]{img/henke}
      \burl{http://wwwis.win.tue.nl/2R690/doc/ScrumAndXpFromTheTrenchesonline07-31.pdf}
    \end{column}
  \end{columns}
\end{frame}