
Lições Aprendidas
Aragão et al sugerem a seguinte estrutura para relatar as lições aprendidas no desenvolvimento de tarefas:
-
O evento: o que ocorreu que precisa ser destacado;
-
A causa: por que ocorreu esse evento;
-
O impacto: qual foi a consequência desse evento; e
-
As ações: o que será feito nos próximos passos.
Nós resolvemos seguir essa prática e contamos aqui o que aprendemos com esse projeto.
L01: Usar ferramenta para gerenciamento de tarefas

Evento: Identificação das tarefas que foram concluídas e as que ainda precisavam ser executadas
Causa: Falta de uma metodologia de gerenciamento e acompanhamento de tarefas que indicasse o status, como por exemplo pendente ou concluída, das mesmas.
Impacto: Dificuldade no acompanhamento do projeto, dificuldade na identificação das próximas tarefas e suas prioridades, desperdício de tempo, releitura desnecessária de código, repetição no desenvolvimento de uma mesma tarefa e descontrole nos casos de identificação de novas funcionalidades ou problemas durante o desenvolvimento do projeto
Ações: Sugestão, à coordenadora do projeto, para adoção de ferramenta para gerenciamento de tarefas
L02: Estudar e entender conceitos sobre a arquitetura do software antes de iniciar o desenvolvimento

Evento: Criação de pastas e arquivos do projeto
Causa: Dúvidas quanto à forma de organização de estrutura de pastas e arquivos do projeto devido à uma arquitetura já utilizada e consolidada por outros projetos, diversas sugestões nos blogs das comunidades de desenvolvimento de software
Impacto: Um software difícil de ser repetido, de ser usado como modelo para o desenvolvimento de outras aplicações
Ações: Reestruturação da arquitetura proposta inicialmente e indicação dessa nova arquitetura como modelo para projetos futuros
L03: Realizar estudo inicial sobre o uso de padrões de projeto e de desenvolvimento de códigos limpos

Evento: Não saber o melhor nome a ser dado a uma variável e como organizar o código de forma que seja mais legível
Causa: A falta de conhecimento de padrões de projeto e das práticas de códigos limpos e outros métodos de organização de códigos
Impacto: Um software difícil de ser lido e de ser mantido, ocasionando perda de horas para sua compreensão
Ações: Sugestão, à coordenadora do projeto, para inserção da etapa para estudo de padrões de projeto e código limpo nos próximos projetos
L04: Fazer uso de testes automatizados

Evento: Todos os testes realizados foram inseridos manualmente
Causa: Não possuir experiência no uso de ferramentas automatizadas de testes
Impacto: Baixa produtividade na realização dos testes e correção dos códigos
Ações: Sugestão, à coordenadora do projeto, para inserção da etapa para estudo e adoção de ferramentas automatizadas de teste nos próximos projetos
L05: Estudar ferramentas automatizadas para especificação das APIs

Evento: A coordenadora foi realizar os testes da API e as especificações ainda não estavam prontas
Causa: Não possuir experiência no uso da ferramentas para especificação de API e ter que explicar à coordenadora para que os testes pudessem ser realizados
Impacto: Baixa produtividade na realização dos testes, perda de tempo na comunicação sobre como é o funcionamento da API e atraso na entrega da especificação
Ações: Estudar as ferramentas para especificação antes de iniciar o desenvolvimento da API
L06: Definir servidor para o ambiente de produção

Evento: A coordenadora do projeto não conseguia acompanhar e testar as APIs desenvolvidas
Causa: As APIs desenvolvidas estavam disponíveis somente na máquina do aluno e não estavam instaladas em um ambiente de produção
Impacto: Demora para detecção de problemas no desenvolvimento e na arquitetura do projeto
Ações: Solicitação de uma máquina virtual à Coordenadoria de Tecnologia de Informação (CTI) do Câmpus Birigui
L07: Permitir acesso às APIs desenvolvidas

Evento: As APIs não são acessíveis por quaisquer outras pessoas que não servidores e alunos
Causa: As APIS disponibilizadas nos servidores de dados e aplicação do câmpus Birigui somente são acessados mediante autenticação na VPN por servidores ou alunos
Impacto: Serviço não é acessível por outras instituições ou desenvolvedores
Ações: Indicação do problema detectado à Coordenadoria de Tecnologia de Informação (CTI) do Câmpus Birigui e solicitação de um estudo/solução sobre a segurança para que seja liberado o acesso com outro tipo de autenticação
