\chapter{Organisation}
\label{ch:Organisation}

This chapter provides an overview on time schedule, advisers and other organisational circumstances regarding this thesis.

\section{Advisers and Environment}
\label{sec:Organisation:AdvisersAndEnvironment}

The thesis is written in cooperation \emph{CAS Software AG}. A company located in Karlsruhe, Germany and founded in 1986. It is a market leader in Customer Relationship Management software for small and medium sized enterprises. Over 20,000 organisations and 400,000 people use software from \emph{CAS Software AG} \cite{CASSoftwareAG}. Among the offered products is also \emph{CAS Configurator Merlin} which this thesis builds upon. This thesis will be advised by Robert Heinrich from \emph{Institute for Program Structures and Data Organization} and Jonas Fegert from \emph{FZI Forschungszentrum Informatik}. Additional advisership is given by employees of \emph{CAS Future Labs}.

\section{Artefacts}
\label{sec:Organisation:Artefacts}

This thesis consist of multiple artefacts. Artefacts do not have to be separate documents but can be included in other documents. Those are:
\begin{itemize}
    \item Proposal (this document)
    \item Proposal presentation
    \item Bachelor's thesis
    \item Bachelor's thesis presentation
    \item Development Related Artefacts
    \begin{itemize}
        \item Design documentation
        \item Source code documentation
        \item Source code
        \item One or multiple sample configurations
        \item A working Prototype
    \end{itemize}
    \item Evaluation data
\end{itemize}

\section{Process}
\label{sec:Organisation:Process}

A slightly reduced version of Scrum is used during the creation of this thesis. Scrum is the de-facto standard for agile software development \cite{glogerScrumPradigmenwechselIm2010}. Daily meetings with status updates and suggestions with advisory and colleagues at CAS are held every day. The Sprint length is one week but during later development this potentially will be lengthened to two weeks. Sprint reviews, retrospective and sprint planning are not explicitly done. Hereby the process is not used for coordination of a team that works on a single software project but to improve knowledge exchange and communication.

\section{Schedule}
\label{sec:Organisation:Schedule}

The planned schedule can be seen in \autoref{fig:Organisation:Schedule:Gant}. Documentation and of the thesis is planned to be written in parallel to  \emph{Problem Identification}, \emph{Design and Implementation} and \emph{Demonstration and Evaluation} phases. The Design and Implementation Phase is grouped into iterations. Each iteration will consist of implementing one work package, described in \autoref{sec:Organisation:WorkPackages} and after each iteration the corresponding milestones are reached. These are not explicitly described in \autoref{fig:Organisation:Schedule:Gant}. After all these phases the thesis documentation will be finalized and corrected. 

\begin{figure}
    \begin{center}
        \begin{ganttchart}[y unit title=0.7cm,
            y unit chart=0.7cm,
            x unit=0.25cm, 
            title height=1,
            bar height=0.6,
            group right shift=0,
            group top shift=.6,
            group height=.3
            ]{1}{36}
            \gantttitle{2019}{4}
            \gantttitle{2020}{32}\ganttnewline
            \gantttitlelist{51,52,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}{2}\ganttnewline
            \ganttgroup{Thesis}{1}{36}\ganttnewline
    
            \ganttgroup{Problem Identification}{1}{6}\ganttnewline
            \ganttbar{Literature Research}{1}{4}\ganttnewline
            \ganttbar{Defintion of Objectives}{1}{6}\ganttnewline
            
            
            \ganttgroup{Design and Implementation}{7}{22}\ganttnewline

            \ganttgroup{Work Package 1}{7}{10}\ganttnewline
            \ganttbar{Design}{7}{8}\ganttnewline
            \ganttbar{Implementation}{8}{10}\ganttnewline

            \ganttgroup{Work Package 2}{11}{14}\ganttnewline
            \ganttbar{Design}{11}{12}\ganttnewline
            \ganttbar{Implementation}{12}{14}\ganttnewline

            \ganttmilestone{Code Review}{14}\ganttnewline

            \ganttgroup{Work Package 3}{15}{18}\ganttnewline
            \ganttbar{Design}{15}{16}\ganttnewline
            \ganttbar{Implementation}{16}{18}\ganttnewline

            \ganttmilestone{Fully Working Prototype}{18}\ganttnewline
            
            \ganttbar{Buffer}{19}{22}\ganttnewline

            \ganttgroup{Demonstration and Evaluation}{23}{26}\ganttnewline
            \ganttbar{Demonstration}{23}{24}\ganttnewline
            \ganttbar{Evaluation}{25}{26}\ganttnewline

            \ganttgroup{Documentation}{1}{34}\ganttnewline
            \ganttbar{Write Documentation}{1}{26}\ganttnewline
            \ganttmilestone{First Draft}{26}\ganttnewline
            \ganttbar{Finalize Thesis}{28}{30}\ganttnewline
            \ganttmilestone{Final Draft}{30}\ganttnewline
            \ganttbar{Proof Reading and Corrections}{31}{34}\ganttnewline
            \ganttmilestone{Finished Thesis}{34}\ganttnewline
            \ganttbar{Buffer}{35}{36}\ganttnewline
            \ganttmilestone{Thesis Submission (\printfdate{british})}{36}

            \ganttvrule{}{6}
            \ganttvrule{}{22}
            \ganttvrule{}{26}
            \ganttvrule{}{34}
        \end{ganttchart}
    \end{center}
    \caption{Gantt chart representing the schedule of this thesis.
    }
    \label{fig:Organisation:Schedule:Gant}
\end{figure}

\section{Work Packages}
\label{sec:Organisation:WorkPackages}

\begin{enumerate}[label=Work Package \arabic*:, align=left]
    \item Basic Preference Aggregation and Voting Recommendation
        \begin{description}
            \item[Preference Aggregation] The system needs to have a user interface for collecting preferences and to be able to process them.
            \item[Voting Recommender UI] A basic user interface that displays recommendations for voting which were returned by the recommender.
            \item[REST-Api for Voting Recommendations] Define a rest api that gives recommendations for configurations and user preferences.
            \item[Voting Recommender] Implementation of the actual recommender for voting.
            \item[Milestone M1] The collaborative configuration prototype can aggregate preferences and gives recommendations for voting.
        \end{description}
    \pagebreak[3]
    \item Recommender for Configuration Attributes
    \begin{description}
        \item[Attribute Recommendation UI] There 
        \item[REST-Api for Attribute Recommendations]
        \item[Attribute Recommender] The voting recommender extended to allow recommendations for attributes.
        \item[Milestone M2] The collaborative configuration prototype can give suggestions for Attributes that should be build into the configuration. 
    \end{description}
    \pagebreak[3]
    \item Hybridisation of Recommender
    \begin{description}
        \item[Other recommender types] Implement other recommender types. 
        \item[Milestone M3] The collaborative configuration prototype can give recommendations by combining multiple recommender.
    \end{description}
    \pagebreak[3]
\end{enumerate}

\section{Risks Assessment}
\label{sec:Organisation:RiskAssessment}

\begin{enumerate}[label=Risk \arabic*:, align=left, leftmargin=*]
    \item Underestimation of effort for \emph{Design and Implementation} phase
        \begin{description}
            \item[Explanation:] Tasks might take more effort then expected and therefore cannot be completed in the planned time. This is especially problematic for the \emph{Design and Implementation} phase as the \emph{Demonstration and Evaluation} phase requires  a working prototype.
            \item[Mitigation:] There are planned explicit buffers. One for the \emph{Design and Implementation} phase and one general buffer. This amounts to two weeks of buffer. Additionally it is possible to shorten \emph{Finalize Thesis} and \emph{Proof Reading and Corrections} phases as the time planned for these phases is overestimated. Overall in a worst-case scenario it is possible to extend \emph{Design and Implementation} by up to four weeks.
        \end{description}
    \pagebreak[3]    
    \item Delay due to unforeseen circumstances outside of the author's control
        \begin{description}
            \item[Explanation:] Outside influence could delay the thesis. An example of that is sickness.
            \item[Mitigation:] According to "Prüfungsordnung" §14.6 it is possible to extend the period of the thesis of up to a month \cite[~ p. 724]{StudienUndPrufungsordnung2015}.
        \end{description}
    \pagebreak[3]
    \item Bugs and architectural problems in prototype
        \begin{description}
            \item[Explanation:] Bugs in the prototype that this thesis will extend could delay implementation of features. Also architectural problems could make it harder then expected to extend the prototype.
            \item[Mitigation:] To reduce work in such a case less features could be implemented or some features could just use a mock implementation.
        \end{description}
    \pagebreak[3]
\end{enumerate}