%&tex
\chapter{Case Study: Evaluation}
\label{chap:case_evaluation}
The previous chapter described the development and implementation process of the Whiteboard Writer.
This chapter focusses on the evaluation of the development during the case study.
The design method itself is evaluated in the next chapter.
However, some of the topics discussed in this chapter have a strong overlap with those in the next chapter.

The first section is about the time spend on the development.
Followed by a section about the role of stake holders and one about the use of modelling languages during a development.
The last section is a more personal reflection about the case study.

    \section{Time Investment}
    \label{sec:time_investment}
        Prior to each step in the development, I made an estimation on the workload of that particular step.
        In \autoref{fig:time_spend} the planned and spend time on each step are plotted next to each other.
        In addition to the steps, time was also spend on the hardware construction and software development.

        The initial approach for the feature definition did not result in a statisfactory set of features.
        Therefore, the approach for the feature definition was reformulated.
        Before new approach was formulated, multiple attempts were made to get a representative set of features.
        The time spend on performing the feature definition is not representative as formulating the new approach and creating the set of features were performed in parallel.
        The real execution time is estimated to be around 3 to 5 days ( {\textsuperscript{1} in \autoref{fig:time_spend}).

        \begin{figure}
            \centering
            \includegraphics{graphics/time_table.pdf}
            \caption{
                Overview of the planned and spend number of days for each step during the case study. 
                Some of the values in this do not represent the time requirements of this design method:\newline
                \textsuperscript{1} During the feature definition the design method was reviewed. 
                13 days were spend on this review and execution, obfuscating the actual execution time. 
                The execution time is an estimated 3 to 5 days.\newline
                \textsuperscript{2} The first cycle was cut short due to its complexity.\newline
            }
            \label{fig:time_spend}
        \end{figure}

        Furthermore, there is a significant time difference both development cycles.
        Prior to the first development cycle I was not confident about the feasibility of the end-effector implementation.
        Based on that, I decided to spend about three days on the basic model of the end-effector to collect more information.
        This let me to the conclusion that the end-effector was too time-consuming for this case study.
        Therefore, first development cycle was cut short ( \textsuperscript{2} in \autoref{fig:time_spend})

        For the second cycle, I also planned three days to create the basic model.
        This time, the basic model was finished within a couple of hours.
        Based on this successful implementation and prior experience, I planned an additional two weeks of development time for this cycle.

        To validate the design and model of the \ac{scara}, I build a prototype.
        This consisted of building the hardware and writing software.
        Acquiring and assembling the hardware took about two days.
        This was mainly due to CoViD-19 restrictions which made part ordering and printing more challenging.
        Without these restrictions I think it would be a day of work.

        The time required to get the software to a viable state was four weeks.
        Even though the focus was not on the software, this timespan of four weeks was too significant to ignore.
        Especially when the software is compared to the developed models.
        As explained in the previous section, I build a total of eight models.
        Each of these models includes documentation and an evaluation of the design process.
        The software, on the other hand, is in a bare minimum state; I skipped documentation and evaluation; and the code quality relatively low.
        Still, the software was more time consuming than the hardware modeling and development.

    \section{One-man development team}
        The case study was performed by me as a single developer.
        Against all expectations, this one-man development team made the preparation phase more difficult instead of easier.
        The goal of the problem description and the requirements step is to get the stakeholders on the same line \autocite{shafaat_exploring_2015}.
        This involves creating agreed-upon requirements for the system, but with only one stakeholder, this agreement is implicit.
        Moreover, it undermines the incentive of the problem description and requirements step.
        Part of this is that there is no penalty for future reviews of the requirements, as I already agreed.

        Furthermore, specific details and decisions were often made subconsciously, while I was commuting, waiting in line, or even showering.
        Making structured documentation of these decisions at a later point in time without missing any of them is impossible.
        The social interaction within a design team stimulates this documenting process as it improves the recall and interpretation of information.
        It also improves the judgement and selection of design alternatives \autocite{lamb_221_2008}.

    \section{Switching Modelling Language}
        The initial idea of the development was to start with a basic model and extend that model by adding more detail.
        Meaning that one design and one model would develop in parallel with each other.
        However, the development of the \ac{scara} resulted in four major model versions.
        The basic model started with a kinematics model. 
        To take the physics of the design into account, a 2D dynamics model was created.
        Multiple steps of detail into the development, the 2D model was not adequate anymore.
        Therefore, the design was remodeled with 3D physics.
        Although this 3D physics model was able to implement the dynamic behavior, the modeling language was not suitable to design the shape of the mechanical components.
        Resulting in a fourth model which represents the mechanical component design, in the form of a CAD drawing.
        
        There are a couple of problems with this approach.
        Implementing the same model with two different modelling approaches, makes both models incompatible with each other.
        This removes the possibility to switch back to a lower detail implementation.
        Additionally, it creates the possibility to transfer parameters incorrectly from one model to another.
        Such a switch is also labor intensive as the complete model has to be build from scratch again.
        Furthermore, there is the possibility that this new model has been for nothing, as the planned detail proves to be unfeasible.
        The point is, a future iteration of the design method must minimize these type of model switches to reduce the chance of implementation errors.

    \section{Reflection}
        In the following section, I reflect on my own impact on the development.
        The preparation and development phase are discussed separately.

        \subsection{Preparation phase}
            During the preparation phase often I had difficulty with getting the required information.
            The information was often not specific enough or it was overlooked.
            Even though attempting to be thorough, requirements were never really specific.
            As explained in the previous section, the lack of stake-holders is one of the reasons for information not being specific.
            
            Information that was overlooked created a situation where I needed information that should have been the result of a previous step, which was not the case.
            In most situations it was possible to continue with the execution of the step.
            However, during the test protocol step (\autoref{sec:test_protocol}) it was not possible to continue.
            Resulting in additional requirements added to the design, before continuing with the design process.

            One of the main causes that attributes to the information shortage is that I am a novice designer/developer.
            The experience that I have is from a graduate course and two extracurricular projects. 
            Being inexperienced does definitely not aid the design process. 
            Needless to say, more experience would improve the information situation. 
            However, it does not solve the problem.
            Further improvements for the design method are required to improve the information process during development.
            
        \subsection{Development phase}
            \label{sec:evaluation_reflection_development}
            For the development phase I have significantly more experience compared to the preparation phase.
            Creating models is something that I really enjoy and this improves the process significantly.
            Even though the development phase went smoother than the preparation phase, there is still room for improvement.
            Originally I attempted to create separate sub-models for each component.
            These sub-models can then be combined into larger models.
            For example, the \ac{scara} and the \ac{cdc} both include two stepper motors.
            When I add detail to the stepper motor model, the \ac{scara} and the \ac{cdc} would then be updated as well.
            However, each sub-model has to be updated manually.
            In total four times in case of the stepper motor, which makes this workflow very labor intensive.

            A workflow that enables easy combination and interchange of sub-models is beneficial with this design method.
            It makes it easy to evaluate the latest changes, by comparing them with previous versions.
            In addition, it makes it possible to lower the detail on some models during the development.
            The lower detail of the sub-models can improve the simulation speed significantly.
            And during the final test use the full detail to ensure that every thing is performing as expected.

        \subsection{Continuation of this Case Study}
            \label{sec:evaluation_reflection_protoype}
            At the point that the \ac{scara} was implemented, I gathered so much new information that some of the design choices felt obsolete.
            In this case study, the prototype is used to validate the design.
            However, the current prototype contains so much information that it would improve the requirements and initial design significantly.
            
            Following the current design plan, the next step would be to develop the \ac{cdc}.
            In theory, if I would continue the case study, my proposal is to consider the current design as an actual prototype and revisit the preparation phase.
            However, it is very important to note that this decision relies on the fact that the prototype is already created.
            In other words, the work is already done and resulted in useful information for a next design iteration.

            In case of a different system, I doubt that creating a prototype, followed by a full repeat of the design method is an efficient approach.
            Therefore, the choice to revisit the preparation phase must not be considered as an improved design method but as an argument to improve the preparation phase itself.
            However, I think that an improved preparation phase must be shorter and incorporate a prototype.
