%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%                                                                       %%
%% Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com %%
%%                                                                       %%
%% Author: Felipe Balbi <balbi@ti.com>                                   %%
%%                                                                       %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Introduction}
\label{chap:introduction}

\section*{Welcome}
\label{sec:welcome}

\paragraph{}
Welcome to \textit{Linux Core Product Development}'s Agile Methodology Manual.
Here you will find enough information to get acquainted with our development
process and also learn a bit of history about the team.

\paragraph{}
We have decided to implement
\href{http://en.wikipedia.org/wiki/Scrum\_(development)}{Scrum} for Linux
Kernel development as means to improve our deliveries and decrease the amount
of rework necessary due to Software errors.

\paragraph{}
It's uncommon for Linux Kernel engineers to implement any Software Development
Methodology at all, however the enterprise development environment needs
visibility on feature readiness. The Agile Methodologies seem to impose the
least amount of process overhead to engineers, which gives the team maximum
amount of engineering hours and decreases the amount of time wasted in phone
calls and meetings.

\paragraph{}
This document aims at setting up a few foundations for the team in order to
have a general agreement on the deployment of
\href{http://en.wikipedia.org/wiki/Scrum\_(development)}{Scrum} to decrease
the amount of rework when developing features for customers and the mainline
Linux Kernel tree.

\section*{Document Organization}
\label{sec:document-organization}

\paragraph{}
In chapter \ref{chap:scope} we will define the scope of this document. Why is
it needed and who's going to use it.

\paragraph{}
Chapter \ref{chap:roles-in-scrum} will discuss about the three roles within a
Scrum Team. What they are, what are their responsibilities, how they should
communicate with each other.

\paragraph{}
A thorough discussion about the Sprint will be carried out throughout chapter
\ref{chap:the-sprint}. We will look at sprint duration, process, artifacts and
more.

\paragraph{}
A discussion about how to break tasks into small pieces will be exposed in
chapter \ref{chap:breaking-tasks-up}. We will learn tricks which will help us
understand how to break e.g. \textit{Development of QSPI driver} into smaller,
bite-sized pieces which can done in the course of one sprint.

\paragraph{}
After being able to break tasks into small pieces, we need to come up with
proper estimates (in hours) in order to have an idea of how long a certain task
will take in order to be completed. Such discussion is left for chapter
\ref{chap:estimating} and will be as thorough as possible while analyzing a
ficticious scenario.

\paragraph{}
Lastly, chapter \ref{chap:definition-of-done} will put forth our
\textit{Definition of Done} which will be used by all scrum teams. A global
definition of done helps us increase quality by helping team members becoming
more methodical about testing and validation.

\paragraph{}
We hope our readers have lots of fun while reading this manual and implementing
it on daily job.
