-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcmmi-monitoring.tex
636 lines (583 loc) · 23.8 KB
/
cmmi-monitoring.tex
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
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Software Engineering: Project Management
%% CMMI: Project Monitoring and Control
%%
%% Tobias Stoll, Dominik Schreiber
%% winter term 2012/2013, TU Darmstadt
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[accentcolor=tud1b]{tudbeamer}
% ===== Packages ==================================================================
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage{color}
\usepackage{listings}
\usepackage{multicol}
\usepackage{eurosym}
\usepackage{amsmath}
% ===== Commands, Changes =========================================================
% ----- emphasize text as strong and in color -------------------------------------
\newcommand{\strong}[1]{\textaccentcolor{\textsf{\textbf{#1}}}}
% ----- shorthand for the euro sign (€) in math mode ------------------------------
\newcommand{\matheuro}{\text{\officialeuro}}
% ----- text that should pop up only on the second slide --------------------------
\newcommand{\later}[1]{\hfill\textcolor{tud8b}{\textsf{\textbf{\visible<2->{#1}}}}}
% ----- shorthand for creating a frame with current headline+subheadline ----------
\newcount\Level
\let\Part=\part\def\part{\global\Level=0\Part}
\let\Chapter=\chapter\def\chapter{\global\Level=1\Chapter}
\let\Section=\section\def\section{\global\Level=2\Section}
\let\Subsection=\subsection\def\subsection{\global\Level=3\Subsection}
\let\Subsubsection=\subsubsection\def\subsubsection{\global\Level=4\Subsubsection}
% creates a frame with a frametitle of up to two lines, depending on the current
% document structure. that means:
% - if the tframe is created inside a section, it will have the sections header
% as frametitle
% - if the tframe is created inside a subsection, it will have the sections
% header as frametitle followed by the subsections header in the next line
% - if the tframe is created inside a subsubsection, it will have the subsections
% header as frametitle followed by the subsubsections header in the next line
% each frametitle can be additionally adjusted by the optional argument. any text
% in there will be printed as \textnormal and appended to the second line with one
% space between the content and the appended text.
%
% usage:
% \begin{tframe}[optional addition to the subtitle]
% use it just as any normal frame
% \end{tframe}
\newenvironment*{tframe}[1][]{%
\begin{frame}
\ifnum\Level=2
\frametitle{\insertsectionhead\\\strong{#1}}
\fi\ifnum\Level=3
\frametitle{\insertsectionhead\\\strong{\insertsubsectionhead} \textnormal{#1}}
\fi\ifnum\Level=4
\frametitle{\insertsubsectionhead\\\strong{\insertsubsubsectionhead} #1}
\fi
}{%
\end{frame}
}
% ----- shorthand for creating a block that contains only an itemize-environment --
\newenvironment{listblock}[1]{%
\begin{block}{#1}
\begin{itemize}
}{%
\end{itemize}
\end{block}
}
% ===== Beamer Changes ============================================================
\AtBeginSection{
\begin{frame}<beamer>{Outline}
\tableofcontents[currentsection, currentsubsection, hideothersubsections]
\end{frame}
}
% ===== Title =====================================================================
\title{CMMI: Project Monitoring and Control}
\author{Tobias Stoll, Dominik Schreiber}
\date{10.01.2013}
%%%%%%% Content %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\begin{titleframe}
\begin{figure}
\centering
\includegraphics[height=.8\textheight]{img/pdca.png}
\end{figure}
\end{titleframe}
% ===== Project Monitoring and Control ============================================
\section[Project Monitoring and Control]{The WHAT: Project Monitoring and Control, by Tobias Stoll}
\begin{tframe}
\begin{listblock}{Introductional information}
\item is at maturity level \strong{2}
\item important to detect deviations
\item corrective actions are taken to fulfill objectives
\end{listblock}
\begin{listblock}{Related Process Areas}
\item Project Plannning
\item Measurement and Analysis
\end{listblock}
\end{tframe}
% Maturity Level 2 (managed)
% short form: PMC
% purpose:
% - provide an understanding of the project's progress so that
% - appropriate corrective actions can be taken when the
% - project's performance deviates significantly from the plan.
\subsection{SG 1: Monitor the Project Against the Plan}
\begin{tframe}
\begin{listblock}{Goal}
\item identify \strong{actual} progress and performance against plan
\item \strong{contrast} results with project plan
\end{listblock}
\end{tframe}
\subsubsection{SP 1.1: Monitor Project Planning Parameters}
\begin{tframe}
\begin{itemize}
\item measure \strong{actual} project planning parameters
\item identify \strong{significant} deviations to the estimates in the plan
\item record results
\end{itemize}
\begin{listblock}{Sub-practices}
\item Monitor progress against schedule
\item Monitor the projects cost and expended effort
\item Monitor the attributes of the work products and tasks
\item Monitor resources provided and used
\item Monitor the knowledge and skills of the project personnel
\item Document the significant deviations in the project planning parameters
\end{listblock}
\end{tframe}
\subsubsection{SP 1.2: Monitor Commitments}
\begin{tframe}
\begin{itemize}
\item look at commitments
\item compare them to identified commitments in the plan
\end{itemize}
\begin{listblock}{Sub-practices}
\item Regularly review commitments
\item Identify commitments that have not been satisfied
\item Document the results of the commitment reviews
\end{listblock}
\end{tframe}
\subsubsection{SP 1.3: Monitor Project Risks}
\begin{tframe}
\begin{itemize}
\item Monitor risks against those in the plan
\end{itemize}
\begin{listblock}{Sub-practices}
\item Periodically review the documentation of the risks
\item Revise the documentation of the risks
\item Communicate risk status to relevant stakeholders
\end{listblock}
\end{tframe}
\subsubsection{SP 1.4: Monitor Data Management}
\begin{tframe}
\begin{itemize}
\item check data management activities
\item ensure compliance of data management plans
\end{itemize}
\begin{listblock}{Sub-practices}
\item Periodically review data management activities
\item Identify and document significant issues and their impacts
\item Document the results of data management activity reviews
\end{listblock}
\end{tframe}
\subsubsection{SP 1.5: Monitor Stakeholder Involvement}
\begin{tframe}
\begin{itemize}
\item detect involvement of identified stakeholders
\item ensure that the right interactions occure
\end{itemize}
\begin{listblock}{Sub-practices}
\item Periodically review the status of stakeholder involvement
\item Identify and document significant issues and their impacts
\item Document the results of the stakeholder involvement status reviews
\end{listblock}
\end{tframe}
\subsubsection{SP 1.6: Conduct Progress Reviews}
\begin{tframe}
\begin{itemize}
\item project reviews to inform stakeholders
\item may not be specified in project plan
\end{itemize}
\begin{listblock}{Sub-practices}
\item Regularly communicate status on assigned activities and work products to relevant stakeholders
\item Review the results of collecting and analyzing measures for controlling the project
\item Identify and document significant issues and deviations from the plan
\item Document change requests and problems identified in any of the work products and processes
\item Document the results of the reviews
\item Track change requests and problem reports to closure
\end{listblock}
\end{tframe}
\subsubsection{SP 1.7: Conduct Milestone Reviews}
\begin{tframe}
\begin{itemize}
\item review of results at selected milestones
\item typically formal and planned
\end{itemize}
\begin{listblock}{Sub-practices}
\item Conduct reviews at meaningful points in the projects schedule
\item Review the commitments, plan, status, and risks of the project
\item Identify and document significant issues and their impacts
\item Document the results of the review, action items, and decisions
\item Track action items to closure
\end{listblock}
\end{tframe}
\subsection{SG 2: Manage Corrective Action to Closure}
\begin{tframe}
\begin{listblock}{Goal}
\item react with significant deviations from plan
\item take corrective actions
\end{listblock}
\end{tframe}
\subsubsection{SP 2.1: Analyze Issues}
\begin{tframe}
\begin{itemize}
\item analyse issues
\item determine necessary corrective actions
\end{itemize}
\begin{listblock}{Sub-practices}
\item Gather issues for analysis
\item Analyze issues to determine need for corrective action
\end{listblock}
\end{tframe}
\subsubsection{SP 2.2: Take Corrective Action}
\begin{tframe}
\begin{itemize}
\item produce action plan with correctiv actions
\end{itemize}
\begin{listblock}{Sub-practices}
\item Determine and document the appropriate actions needed to address the identified issues
\item Review and get agreement with relevant stakeholders on the actions to be taken
\item Negotiate changes to internal and external commitments
\end{listblock}
\end{tframe}
\subsubsection{SP 2.3: Manage Corrective Actions}
\begin{tframe}
\begin{itemize}
\item have a look on the action results
\end{itemize}
\begin{listblock}{Sub-practices}
\item Monitor corrective actions for completion
\item Analyze results of corrective actions to determine the effectiveness
\item Determine and document appropriate actions to correct deviations
\end{listblock}
\end{tframe}
% ===== industrial practices =======================================================
\section[industrial practices]{The HOW (part 1): industrial practices, by Dominik Schreiber}
\begin{tframe}
\begin{listblock}{Classical approaches}
\item \strong{waterfall model} does one step after the other
\item problem: each step is considered to be \strong{finished} after moving to the next step
\item $\Rightarrow$ bad monitoring/control leads to \strong{heavy setbacks}
\end{listblock}
\begin{listblock}{Agile approaches}
\item iterations, small releases, \dots should minimize this risk
\item setbacks are \emph{possible} but \strong{less heavy}
\item \cite{alegria2006cmmiagile} shows ways to implement CMMI with agile methods
\end{listblock}
\end{tframe}
% ----- scrum ----------------------------------------------------------------------
\subsection{Scrum}
\begin{tframe}[- what it is]
\begin{multicols}{2}
\begin{listblock}{Overview}
\item \strong{agile} software-engineering process
\item \strong{iterative}: thinking in \emph{sprints}
\item \strong{slim}: 3 \emph{roles}, 4 \emph{artifacts}, small set of \emph{rules}
\item \strong{communicative}: daily meetings, planning, reviews (but less paperwork)
\end{listblock}
\begin{figure}
\centering
\includegraphics[width=.45\textwidth]{img/scrum-rugby.jpg}
\caption{origin of the name ``Scrum''}
\end{figure}
\end{multicols}
\end{tframe}
\begin{tframe}[- how it supports PMC]
\begin{listblock}{Regular meetings}
\item \strong{Sprint planning meeting} (part 1: whole team): \later{SP 1.1, 1.2, 1.3}
\begin{itemize}
\item clean product backlog, prioritize entries
\item choose entries for next sprint
\end{itemize}
\item \strong{Sprint planning meeting} (part 2: developers):
\begin{itemize}
\item convert entries to 1-day tasks ($\Rightarrow$ sprint backlog)
\item extract sprint-goal from entries
\end{itemize}
\item \strong{Sprint Review}:\later{SP 1.5, 1.6, 1.7}
\begin{itemize}
\item present product to product owner, check sprint-goal
\item give feedback for last sprint, update product backlog
\end{itemize}
\item \strong{Sprint Retrospective}:\later{SP 2.1, 2.2}
\begin{itemize}
\item concrete improvements based on
\item feedback for the last sprint
\end{itemize}
\end{listblock}
\end{tframe}
\begin{tframe}
\begin{multicols}{2}
\begin{figure}
\centering
\includegraphics[width=.45\textwidth]{img/Scrum-taskboard.jpg}
\caption{Scrum Taskboard}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=.45\textwidth]{img/Scrum-burndown-chart.jpg}
\caption{Scrum Burndown Chart}
\end{figure}
\end{multicols}
\end{tframe}
% ----- extreme programming ---------------------------------------------------------
\subsection{Extreme Programming}
\begin{tframe}[- what it is]
\begin{listblock}{Overview}
\item \strong{agile} software-engineering process
\item strong \strong{principles}: Pair Programming, Test-driven Development, Continuous Integration, \dots
\end{listblock}
\pause
\begin{listblock}{Differences to Scrum}
\item \strong{iteration length}: week (XP) $\leftrightarrow$ month (Scrum)
\item \strong{change adaption}: always (XP) $\leftrightarrow$ not in current sprint (Scrum)
\item \strong{work order}: customer chooses (XP) $\leftrightarrow$ team chooses (Scrum)
\item \strong{engineering practices}: given (XP) $\leftrightarrow$ not given (Scrum)
\end{listblock}
\end{tframe}
\begin{tframe}[- how it supports PMC]
\begin{block}{Through the engineering process}
\begin{itemize}
\item \strong{Planning Game}: release+iteration planning match results with plan constantly, split up in 3 phases:\later{SP 1.1, 1.2, 1.3, 1.5, 2.1, 2.2}
\begin{multicols}{3}
\begin{enumerate}
\item \emph{exploration phase}\\{\scriptsize create user stories/split them into tasks}
\item \emph{commitment phase}\\{\scriptsize commit to func\-tion\-ali\-ties/assign tasks}
\item \emph{steering phase}\\{\scriptsize adjust plan/perform tasks, match result to plan}
\end{enumerate}
\end{multicols}
\item \strong{Test-driven Development}: all productive code is written to make failing unit tests pass $\rightarrow$ unit tests describe the plan\later{SP 1.4, 1.6, 1.7}
\item \strong{Continuous Integration}: automated unit tests match every commit to the plan\later{SP 1.6, 1.7}
\end{itemize}
it is the \strong{combination} of the 12 principles that makes XP work
\end{block}
\end{tframe}
% ----- representations of progress -------------------------------------------------
\subsection{Methodology-independent representations of progress}
\begin{tframe}
\begin{multicols}{2}
\begin{listblock}{Gantt chart}
\item illustrates project \strong{schedule}
\item project is broken down into elements
\item each element has \strong{start} and \strong{end}
\item progress of each element can be illustrated
\end{listblock}
\begin{listblock}{Network diagram}
\item shows \strong{dependencies} in schedule
\item same information as gantt chart, different representation
\end{listblock}
\begin{figure}
\centering
\includegraphics[width=.35\textwidth]{img/gantt-chart.png}\\\vspace{.3cm}
\includegraphics[width=.45\textwidth]{img/network-diagram.png}
\caption{gantt chart, network diagram}
\end{figure}
\end{multicols}
\end{tframe}
% ----- earned-value analysis ------------------------------------------------------
\subsection{Earned-Value Analysis}
\begin{tframe}[- what it is]
\begin{multicols}{2}
\begin{figure}
\centering
\includegraphics[width=.45\textwidth]{img/earned-value-analysis.png}
\caption{combined values in EVA}
\end{figure}
\begin{listblock}{Project controlling tool}
\item allows \strong{monitoring} of \emph{scope}, \emph{schedule} and \emph{cost} of a project
\item allows \strong{forecasts} for the evolving project
\item not restricted to software engineering, works for \strong{all kinds of projects}
\end{listblock}
\end{multicols}
\end{tframe}
\begin{tframe}[- how it works]
\begin{multicols}{2}
\begin{listblock}{Measured values}
\item \strong{planned cost} (\emph{PC}): pre-defined cost for the \emph{whole project}
\item \strong{actual cost} (\emph{AC)}: actual cost \emph{until now}
\end{listblock}
\begin{listblock}{Metrics}
\item \strong{earned value} (\emph{EV}): actual \emph{value} of the work until now\\{\scriptsize simple metric: $EV = Budget \cdot \%Progress$}
\end{listblock}
\begin{listblock}{Derived values}
\item \strong{schedule variance}:\\$SV = EV - PC$
\item \strong{cost variance}:\\$CV = EV - AC$
\item \strong{schedule performance index}:\\$SPI = \frac{EV}{PC}$
\item \strong{cost performance index}:\\$CPI = \frac{EV}{AC}$
\end{listblock}
\end{multicols}
\end{tframe}
\begin{tframe}[- example]
\begin{multicols}{2}
\begin{listblock}{Your task}
\item list of \strong{500} hand-written mail addresses
\item insert this into \strong{mailing list}
\item you need \strong{2h}, get \strong{\euro{20}} ($= 10\frac{\matheuro}{h}$)
\item \strong{half time!} 1h left
\end{listblock}
\begin{listblock}{Measured values}
\item \strong{PC} = $20\matheuro \cdot \frac{1}{2} = 10\matheuro$
\item \strong{AC} = $10\frac{\matheuro}{h} \cdot 1h = 10\matheuro$
\end{listblock}
\begin{listblock}{Metrics}
\item you were \strong{fast}! Did 300 already!
\item \strong{EV} = $20\matheuro \cdot \frac{300}{500} = 12\matheuro$
\end{listblock}
\begin{listblock}{Derived values}
\item \strong{SV} = $12\matheuro - 10\matheuro = 2\matheuro$
\item \strong{CV} = $12\matheuro - 10\matheuro = 2\matheuro$
\item \strong{SPI} = $\frac{12\matheuro}{10\matheuro} = 1.2$
\item \strong{CPI} = $\frac{12\matheuro}{10\matheuro} = 1.2$
\end{listblock}
\end{multicols}
\pause
If you stay that fast, you'll finish \strong{20min early}. Means: you'll get \strong{\euro{3,30}} for free.
\end{tframe}
% ===== real-life examples =========================================================
\section[real-life examples]{The HOW (part 2): real-life examples, by Dominik Schreiber}
% ----- openlearnware --------------------------------------------------------------
\subsection{at openLearnWare}
\begin{tframe}[- project overview]
\begin{multicols}{2}
\begin{listblock}{Project: lecture material for students}
\item webservice for lecture material
\item development started in spring 2010
\item team of 2 full-time employees, 5 HiWis
\item scrum-like project structure
\end{listblock}
\begin{figure}
\centering
\includegraphics[width=.45\textwidth]{img/olw-screenshot.png}
\caption{\href{http://www.tu-darmstadt.de/olw}{tu-darmstadt.de/olw}, 7.1.13}
\end{figure}
\end{multicols}
\end{tframe}
\begin{tframe}[- project structure]
\begin{listblock}{Team members}
\item ``Intellectual head'' -- like Scrum's \strong{product owner}, responsible for all ``non-technical stuff''
\item ``Technical head'' -- like Scrum's \strong{scrum master}, responsible for all ``technical stuff''
\item 5 HiWis, working 8-20 hours a week -- the \strong{scrum team}
\end{listblock}
\end{tframe}
\begin{tframe}[- project monitoring/control]
\begin{multicols}{2}
\begin{listblock}{Process items}
\item weekly \strong{scrum meeting} -- about an hour, with all team members
\item weekly \strong{planning meeting} -- about 2 hours, intellectual+technical head
\item \strong{taskboard} as a mirror of the redmine \emph{ticket system}
\item \strong{tickets} as a \emph{sprint backlog}
\item current \strong{QSL-Request} as \emph{product backlog}
\item \strong{Jenkins} as \emph{Continuous-Integration Server}
\end{listblock}
\begin{figure}
\centering
\includegraphics[width=.35\textwidth]{img/olw-redmine.png}\\
\includegraphics[width=.35\textwidth]{img/olw-jenkins.png}
\caption{ticket system, ci-server}
\end{figure}
\end{multicols}
\end{tframe}
\begin{tframe}[- how the process evolved]
\begin{multicols}{2}
\begin{figure}
\centering
\includegraphics[height=.85\textheight]{img/olw-mindmap.pdf}
\caption{former product backlog}
\end{figure}
\begin{listblock}{Change as the only constant}
\item no current team member from the \strong{founder team}
\item began with \strong{giant mind-maps} as product/sprint backlogs
\item had 2-3 nearly \strong{complete restarts}
\item in the beginning: \strong{no documentation} at all (except backlogs)
\end{listblock}
\end{multicols}
\end{tframe}
% ----- dimetis GmbH ---------------------------------------------------------------
\subsection{at dimetis GmbH}
\begin{tframe}
\begin{listblock}{Project: broadcasting software for major carriers}
\item developing with \strong{multiple Scrum teams} on one project
\item \strong{adapted Scrum} to fit to multiple teams:
\begin{itemize}
\item \strong{Scrum master}: assigned by head of engineering, could be any developer
\item \strong{architecture}: \emph{raw design} is made before assigning tasks to backlogs, design changes are discussed with all scrum masters (+ overall design documentation)
\item \strong{code ownership}: component/module-based with backup owners, code changes are discussed with owner
\item \strong{assignments}: task$\rightarrow$team: close related requirements to the same team, person$\rightarrow$team: engineering head+scrum masters assign teams
\end{itemize}
\end{listblock}
\end{tframe}
\begin{tframe}
\begin{multicols}{2}
\begin{listblock}{A single Scrum team}
\item 2-3 Developers + QA
\item 1-5 Sprints per Scrum
\item 2-4 Weeks per Sprint
\item same svn for all teams, branches for single team
\end{listblock}
\begin{figure}
\centering
\includegraphics[width=.45\textwidth]{img/dimetis-taskboard.png}
\caption{scrum taskboard at dimetis}
\end{figure}
\end{multicols}
\end{tframe}
\begin{tframe}
\begin{block}{Conclusion at dimetis}
\vspace{1cm}
\begin{quote}
Scrum has interesting approaches that allow reaching high cmmi-levels \textnormal{in theory}. In practice, the goal of putting as less \textnormal{overhead} as possible on the developers stands against this.
\end{quote}
\end{block}
\end{tframe}
% ----- major-client software-engineering company ----------------------------------
\subsection{at a major-client software-engineering company}
\begin{tframe}
\begin{listblock}{Project: Web-based software for the government}
\item up to 1.5 years \strong{specification phase}
\item teams of \strong{<10 members}
\item project head spends \strong{1 day a week} with the customer
\end{listblock}
\end{tframe}
\begin{tframe}
\begin{listblock}{The process}
\item \strong{specification phase}: before the project starts, it gets strongly \emph{specified} (customer reviews this)
\item \strong{implementation}: according to system specification, features are implemented
\item \strong{internal reviews}: code is reviewed twice: once technical, once specialist
\item \strong{small releases}: working features are shipped to the customer early, loaded with unit tests/performance tests/specific tests
\item \strong{issue tracking}: customer show occuring bugs to developers or reports them in the issue tracker
\end{listblock}
\end{tframe}
% ===== post-presentation ==========================================================
\begin{frame}{Thank you for your attention!}
\begin{center}
\pause
\vspace{1cm}
I want to hear at least {\huge\strong{3 questions}} from you.
\vspace{1cm}
\noindent{\huge Start now!}
\end{center}
\end{frame}
% ===== appendix: bibliography =====================================================
\appendix
\begin{frame}{Bibliography}
\bibliographystyle{alphanum}
\bibliography{cmmi-monitoring}
\end{frame}
% ===== backup slides ==============================================================
\begin{frame}{More about Extreme Programming:\\\strong{The principles}}
\label{fr:xp-principles}
\begin{multicols}{2}
\begin{listblock}{Fine scale feedback}
\item pair programming
\item planning game
\item test-driven development
\item whole team
\end{listblock}
\begin{listblock}{Continuous process}
\item continuous integration
\item refactoring/design improvement
\item small releases
\end{listblock}
\begin{listblock}{Shared understanding}
\item coding standards
\item collective code ownership
\item simple design
\item system metaphor
\end{listblock}
\begin{listblock}{Programmer welfare}
\item sustainable pace
\vspace{1cm}
\end{listblock}
\end{multicols}
\end{frame}
\end{document}