Afonso de Gouveia

<- Planning

What do we have to do?

The very first step of development is to understand what our end goal is. Before we tackle specifics, we need to translate the language of the person defining the goals of our project into engineering terms so we know what components we're working with.

Do we need a server? Do we need a database? How much data are we handling? These are just examples of what has to be understood in this section.

Regardless of project scale, there are 3 types of people involved in this stage: the stakeholders, product management and software architecture. During this stage, meetings with the stakeholders determine what they want. In a general sense, the goal is to determine the requirements of the end client.

From an engineering perspective, what do they want? What does the final product look like? Where are we trying to get to? Break it down slowly into pieces until you feel you understand all the logic without any implementation details. These should be written down on a Kanban board or similar project board where the whole team has access.

By the end of this planning step, we should know how many different components we'll be developing and the general technologies they would use.

For example, a client wants a platform for their employees to do online training. After this stage, we'd know we need a UI such as a webpage, a web server, video storage and a database. We probably need an authentication system and some sort of metrics.