\section{Development Plan}

We will work using spiral software development model where all works are divided into small iterations. Each of iterations will have implementation phase, testing phase, analysis phase, and design phase.
Furthermore, each of iterations will have goals and results. 
The iterations are: 

\begin{enumerate}
\item Iteration 1: Create a basic DSL for MarsRover's missions to use available sensors and actuators
\item Iteration 2: Test the DSL and make it works in MarsRover
\item Iteration 3: Create a functionality to use motors for the movement. The actions are drive forward, drive backward, stop, turn left, and turn right.
\item Iteration 4: Create a functionality to use right sensor, left sensor, and back ultrasone sensor
\item Iteration 5: Create a functionality to keep the MarsRover in the planet. This will combine the use of the motors for the movement and the most safety critical sensors
\item Iteration 6: Implement a protocol for the communication between two bricks
\item Iteration 7: Implement color sensor and create a functionality to find lakes by color
\item Iteration 8: Implement front ultrasone sensor and create a functionality to find rocks
\item Iteration 9: Implement functionality to avoid rocks
\item Iteration 10: Implement measurement motor and create a functionality to measure lakes and rocks
\item Iteration 11: Implement left and right touch sensors. Also, create a functionality to push rocks
\item Iteration 12: Implement a functionality to be able to perform multiple missions in sequence
\item Iteration 13: Implement Gyro sensor and create a functionality to park MarsRover in certain position
\item Iteration 14: Implement a functionality to remember where the lakes are after the MarsRover found them
\item Iteration 15: Implement a functionality to play a sound for the viewer's notification
\item Iteration 16: Implement SLAM functionality and make the MarsRover be able to navigate with the map
\end{enumerate}