\section{Layered Approach} \label{sec:background} Combine many teams with different processes in the same project might be challenging. To address this problem, we got inspiration from Operating Systems (OS) concepts and extended the notion of layered approach design \cite{layeredApproach}. This technique breaks the OS into distinct layers with different proposes. The inner layer represents the hardware, while the external layer represents the user interface. Layered approach demands a careful definition of each layer responsibility and how they communicate. After the layers and communication definition, it is simple to change a single layer without affecting other layers. This approach presents two drawbacks: (1) it creates an overhead of communication from the upper layer to the lower layer, and (2) it is a hard to define the correct interface between layers. We extended the layered approach for handling the interaction with development teams and the Brazilian government. We realized that multiple teams interacting with the government have different expectations about the project. Furthermore, we noticed that government can transfer political pressures to the development team and sometimes they try to impose their processes to the project. For handling all the different processes and keep the multiple expectations under control, we implemented the layered approach for project management. \begin{figure}[!h] \centering \includegraphics[width=.30\textwidth]{project_layers} \caption{Layered Approach for managing multiple processes} \label{fig:layered_processes} \end{figure} Figure \ref{fig:layered_processes} illustrates our set of layers. The inner layer comprises the development team composed of agile teams. Next, is a layer that includes the coordinators responsible for handling the bureaucratic issues coming from the government to the development team. Subsequent, the analyst layer covers the government employees with the understanding about the requirements, but they working guided by the traditional methodology. Finally, there is the directory layer responsible for the political issues. The communication between layers is an important problem in the Layered approach, which still an important issue to be addressed in our propose. For solving the problem, we designed a common channel of communication that passes through all layers. For keeping the layer separation, some members of each layer worked as a filter. This was possible because we created a proper infrastructure based on transparency. We used the following tools to implement the communication between layers: issue tracker (from Gitlab), mailing list, IRC, and wiki. The coordination layer has to filter the interaction between the government and the development team.