\chapter{Project Management}
\section{Project Plan}
At the beginning of the project, a project plan was created to plan all of the
work. That original plan can be found in \autoref{section:plan}. During the
project the actual plan was recorded and can be found in
\autoref{section:actual_plan}.

For the first few weeks, I managed to match my initial plan pretty well. I
spent a bit more time than I'd like on the concrete selection of my subject.
First I planned to use a speaker as the sending device in MagSend, as a
magnetic field is generated, when a sound is played through the speaker. After
multiple tests and experiments I wasn't able to get useful results from the
speakers and settled on using a CPU after some quick prototypes.

In October, after defining the requirements for the project, my plan fell
apart as I fell ill with COVID-19. I was sick for about 3 weeks and in that
time I wasn't able to work on my thesis. This whole event caused my plan to
shift behind a few weeks. I was generous in my initial planning, which helped
alleviate this issue.

In November, I picked up the pace again and started with the  planning and
documentation of the solution, and then started to work on the prototypes for
the sender and receiver. I spent a bit longer on the prototype for the
receiver as in early December I was busy with some other projects and exams.

During the winter break and in early January, I in the process of finishing up
the thesis report and the additional deliverables like the poster and movie. In
the end it was a bit of a crunch to finish everything but thanks to some
generous planning in the beginning it all worked out.

\begin{sidewaysfigure}
    \subsection{Initial Plan}
    \label{section:plan}
    \begin{ganttchart}[
        vgrid,
        hgrid,
        x unit=0.8cm,
        y unit chart=0.5cm,
        y unit title=0.5cm, % height of title line and gap
        title height=1 % use full height for title, leaving no gap
    ]{1}{18}
        \gantttitle{Project Plan}{18}
        \\

        \gantttitlelist{1,...,18}{1}
        \\

        \gantttitle{September}{2}
        \gantttitle{October}{4}
        \gantttitle{November}{5}
        \gantttitle{December}{4}
        \gantttitle{January}{3} 
        \\

        \ganttbar{Prepare Thesis Document}{1}{2} \\
        \ganttbar{Create Project Plan}{1}{2} \\
        \ganttbar{Research Other Solutions}{1}{2} \\
        \ganttbar{Experiment with Hardware}{1}{2} \\
        \ganttbar{Write Introduction}{2}{2} \\
        \ganttbar{Define Use Cases \& Personas}{3}{3} \\
        \ganttbar{Define Requirements}{3}{4} \\
        \ganttbar{Plan Solution}{5}{6} \\
        \ganttbar{Document Solution}{5}{6} \\
        \ganttbar{Define Test Cases}{6}{6} \\
        \ganttbar{Prepare Hardware for Prototype}{7}{7} \\
        \ganttbar{Create Prototype for Sender}{7}{9} \\
        \ganttbar{Create Prototype for Receiver}{8}{10} \\
        \ganttbar{Testing}{11}{12} \\
        \ganttbar{Benchmarking}{11}{12} \\
        \ganttbar{Document Materials \& Methods}{13}{13} \\
        \ganttbar{Document Future Work}{13}{13} \\
        \ganttbar{Create Abstract}{14}{14} \\
        \ganttbar{Create Poster}{14}{15} \\
        \ganttbar{Create Movie}{16}{16} \\
        \ganttbar{Finish Thesis Report}{16}{17} \\
        \ganttbar{Prepare Presentations}{17}{18}
    \end{ganttchart}
    \caption{Project Plan}
\end{sidewaysfigure}

\begin{sidewaysfigure}
    \subsection{Actual Plan}
    \label{section:actual_plan}
    \begin{ganttchart}[
        vgrid,
        hgrid,
        x unit=0.8cm,
        y unit chart=0.5cm,
        y unit title=0.5cm, % height of title line and gap
        title height=1 % use full height for title, leaving no gap
    ]{1}{18}
        \gantttitle{Project Plan}{18}
        \\

        \gantttitlelist{1,...,18}{1}
        \\

        \gantttitle{September}{2}
        \gantttitle{October}{4}
        \gantttitle{November}{5}
        \gantttitle{December}{4}
        \gantttitle{January}{3} 
        \\

        \ganttbar{Prepare Thesis Document}{1}{2} \\
        \ganttbar{Create Project Plan}{1}{1} \\
        \ganttbar{Research Other Solutions}{2}{2} \\
        \ganttbar{Experiment with Hardware}{1}{3} \\
        \ganttbar{Write Introduction}{3}{3} \\
        \ganttbar{Define Use Cases \& Personas}{3}{4} \\
        \ganttbar{Define Requirements}{3}{4} \\
        \ganttbar{COVID-19}{4}{6} \\
        \ganttbar{Plan Solution}{7}{8} \\
        \ganttbar{Document Solution}{7}{8}
        \ganttbar{}{17}{17} \\
        \ganttbar{Define Test Cases}{8}{9} \\
        \ganttbar{Create Prototype for Sender}{9}{10} \\
        \ganttbar{Create Prototype for Receiver}{11}{13}
        \ganttbar{}{15}{15} \\
        \ganttbar{Testing}{14}{15} \\
        \ganttbar{Benchmarking}{14}{15} \\
        \ganttbar{Document Materials \& Methods}{16}{16} \\
        \ganttbar{Document Future Work}{16}{16} \\
        \ganttbar{Create Abstract}{16}{16} \\
        \ganttbar{Finish Thesis Report}{15}{18} \\
        \ganttbar{Create Poster}{16}{17} \\
        \ganttbar{Create Movie}{18}{18} \\
        \ganttbar{Prepare Presentations}{18}{18}
    \end{ganttchart}
    \caption{Project Plan}
\end{sidewaysfigure}

\newpage
\section{Organization}
All data for the project, including documentation, images, data, and source
code was kept in a single Git repository \cite{MagSendGit}. The documentation
and presentations were written using LaTeX with the official BFH templates.

\subsection{Meetings}
In the first week I agreed on weekly meetings with my advisor, unless it
wasn't needed. For the big meetings I created a meeting notes document in
advance, where I wrote down my progress since the last week and questions that
I might have for my advisor. In hindsight, weekly meeting were a bit too
frequent and bi-weekly meeting would have sufficed, but it was useful to have
regular feedback from my advisor.

\subsection{Mockups}
During the planning of the solution, I created multiple mockups of the planned
website and app screens. To create the mockups, I used the open-source design
tool Penpot \cite{penpot}.

\section{Conclusion}
The project, albeit with some issues, was finished in time. The initial plan
was only met for the beginning as the sickness delayed the rest of the tasks,
this caused the last of weeks of the projects to be more stressful than I'd
have liked, but thanks to generous planning it worked out.

One of the biggest things in terms of project management I can improve for the
next project is to plan everything a bit more. While I had some rough planning
with my project plan, the individual points, especially the development of the
prototypes were not fully planned. By splitting those tasks up in smaller ones,
I could have planned around them better and might have found some flaws in the
plan.

The other problem was with the debugging and developing of the Android
application. Many times I was testing the receiving of data over MagSend, when
it didn't work, while it worked just in the try before. After much trial and
error I found out that one of the main issues was that the logging capabilities
of Android were quite slow and sometimes delayed the values from the magnetic
sensor and caused wrong results, that didn't appear in normal utilization of
the app. My takeaway from this is, to invest early in good logging and
debugging utilities, especially when dealing with "invisible" data, such as
magnetic fields and to use separate devices for running the applications
as those used for developing them.

In the end, I'm happy with the project and my results. I managed to develop a
custom communication protocol and finish a working prototype in the allotted
time.
