From 76bae02bcd7d6b3ec9eea428e5e95da184a8dbfb Mon Sep 17 00:00:00 2001 From: Rasmus Dahlberg Date: Tue, 15 Oct 2024 15:35:20 +0200 Subject: Rescue some slides from old private mono repos --- slides/2019-it-intro-scrum/src/body.tex | 383 ++++++++++++++++++++++++++++++++ 1 file changed, 383 insertions(+) create mode 100644 slides/2019-it-intro-scrum/src/body.tex (limited to 'slides/2019-it-intro-scrum/src/body.tex') diff --git a/slides/2019-it-intro-scrum/src/body.tex b/slides/2019-it-intro-scrum/src/body.tex new file mode 100644 index 0000000..531a9d8 --- /dev/null +++ b/slides/2019-it-intro-scrum/src/body.tex @@ -0,0 +1,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} -- cgit v1.2.3