\section{Lições Aprendidas} \label{sec:lessons} A partir da superação dos desafios deste projeto, destacamos sete lições aprendidas para melhor compartilhar a nossa experiência no desenvolvimento do novo Portal SPB. \textbf{Envolver alunos de graduação em projetos do mundo real, interagindo com clientes reais.} % Nossa equipe foi composta principalmente de estudantes de graduação em engenharia de software, que tiveram a oportunidade de interagir com desenvolvedores e designers sêniores dentro da equipe, bem como com a equipe de técnicos e gerentes do governo brasileiro. % Eles interagiram com profissionais que possuíam diversos conhecimentos e foram capazes de participar em todos os níveis do processo de desenvolvimento de software. Isto contribuiu para uma grande oportunidade de aprendizado, e para a maioria deles esta foi a sua primeira experiência profissional. \textbf{A participação de profissionais experientes é crucial para o sucesso do projeto.} % Um fator importante para os alunos foi a composição das equipes com a participação de profissionais experientes. No lado técnico, os desenvolvedores sênior e designers lidavam com as decisões técnicas mais difíceis, criando um ambiente de trabalho onde os alunos poderiam desenvolver suas habilidades de forma didática e sem pressão. No lado gerencial, a participação ativa dos professores - que são, no final, os responsáveis pelo projeto - é crucial para garantir que a participação dos alunos seja conduzida de forma saudável e seja um exemplo de liderar pelo exemplo. \textbf{Uma relação equilibrada entre academia e indústria.} % A experiência do projeto SPB levou o LAPPIS/UnB a desenvolver um estilo de trabalho que demonstrou ser apropriado para um ambiente educacional que reúne academia e indústria. A maior prioridade do ponto de vista da universidade são os alunos. Diante disso, as atividades do projeto nunca foram priorizadas em detrimento das aulas e outras atividades pedagógicas. Em resumo, tínhamos alunos trabalhando em horários diferentes, a tempo parcial, localmente, sempre respeitando suas condições individuais, mas fazendo o trabalho de maneira coletiva, colaborativa e aberta. E mesmo sob um ambiente potencialmente adverso, o projeto entregou a solução desejada com sucesso. % Ao final do projeto, notamos que as habilidades desenvolvidas pelos alunos os capacitaram próximo ao estado da prática de engenharia de software. Após a conclus\~ao do projeto, tivemos membros da equipe que abraçaram com sucesso oportunidades em organizações públicas, privadas, nacionais e internacionais, além dos estudantes que empreenderam e abriram suas próprias empresas. Conforme relatado na seção\ref{sec:process}, o MP possui uma estrutura organizacional funcional, hierárquica, tipicamente presente no paradigma de desenvolvimento tradicional. Diante disso, tivemos que desenvolver estratégias e processos de trabalho que apoiassem a comunicação de diferentes culturas organizacionais. \textbf{Gerenciar separadamente os objetivos de nível estratégico e de nível operacional.} % Durante a fase inicial do projeto, a equipe de MP costumava trazer discussões estratégicas para reuniões técnicas/operacionais, onde deveríamos discutir decisões práticas e técnicas. % Isso resultou em um ambiente de comunicação e gerenciamento altamente complexo, sobrecarregando os professores, uma vez eles eram responsáveis por manter o alinhamento estratégico do MP sincronizado com os planejamentos de implementação da equipe de desenvolvimento, especialmente à luz do desmembramento cultural acima mencionado. A mistura de ambas as preocupações nas mesmas discussões causava confusão em ambos os lados. Na metade final do projeto, conseguimos manter essas preocupações separadas, o que facilitou o trabalho de todos os envolvidos. \textbf{Não aceitar más decisões técnicas por questões políticas.} % Nas fases iniciais do projeto, por motivação política, os principais atores do MP, envolvidos à época, impuseram a restrição do uso do software Colab. Nossa equipe foi contra a essa ideia, porque sabíamos que o Colab era um projeto muito experimental e sua adoção poderia aumentar a complexidade do projeto. Mesmo com as justificativas técnicas para não adoção do Colab, o MP manteve a restrição e tivemos de gerir este problema. Para adequar o Colab às necessidades do SPB, ao final do projeto, tivemos que reescrevê-lo e com isso, o tornamos estável (o transformando em um Sistema de Sistema em camada de aplicação). Ao final do projeto, verificamos que o Colab, de fato, consumiu a maior quantidade do orçamento e contribuiu sobremaneira para o aumento da complexidade do projeto. \textbf{Considerar a sustentabilidade desde o início.} % No processo de implantação da plataforma SPB na estrutura do MP, tivemos que interagir com os técnicos do MP. Realizamos workshops, treinamentos e uma documentação meticulosa descrevendo todos os procedimentos necessários para atualizar a plataforma. Organizamos uma equipe específica de DevOps que automatizou completamente todo o procedimento de implantação. Simplificamos a implantação da plataforma em algumas etapas: (1) configurações iniciais (apenas configuração SSH) e (2) a execução de comandos para atualizar completamente o ambiente. Ao final do projeto, observamos que os técnicos do MP sempre dependiam do nosso apoio para atualizar a plataforma, mesmo com toda a automação fornecida por nós. Em retrospectiva, percebemos que o MP dedicou analistas de sistemas e gerentes para o projeto, mas não técnicos de operações e desenvolvedores, que deveriam ter sido envolvidos com o processo para que pudessem, pelo menos, de forma confortável, fazer a manutenção da infra-estrutura plataforma.