README.md

Sugestões

Repositório com sugestões para o MP sobre alguns aspectos da TI.

Caso alguém tenha sugestão pode abrir uma isssue ou um PR.

CI/CD

Para fazer deploy em desenvolvimento/homologação/produção é necessário intervenção manual de alguma pessoa.

Sugestão Realizar deploy em ambiente de desenvolvimento a cada commit e no de homologação quando houver TAGs e para produção quando houver uma aprovação dos membros responsáveis.

Realizar testes automatizados

Durante o CI/CD realizar os testes automáticos que existirem. No Portal de Serviços os testes foram explicitamentes removidos durante o deploy e só eram realizados no final da Sprint.

Sugestão Só aceitar deploy para homologação com o nível de cobertura definido no contrato. Caso contrário é rejeitado automaticamente. É preciso garantir o mínimo de cobertura no código.

Para comentario dos commits:

Aguns dos commits tem só a referência do JIRA da empresa terceirizada. Isso deixa o comentário muito difícil de compreender pricipalmente pela falta de acesso ao JIRA e no futuro para outros desenvolvedores.

Sugestão Poderia definir e seguir algumas práticas como: https://sethrobertson.github.io/GitBestPractices/

Dar visibulidade da cobertura dos testes

Atualmente usamos o Sonar para dar visibilidade dos testes e seus resultados.

Sugestão Colocar na documentação do projeto (README) o badge para o projeto no Sonar com as checagens dos parâmetros do contrato.

Backlog do projeto

Atualmente usamos vários softwares para a gestão do backlog.

Sugestão Usar o próprio board issue do gitlab. Assim o backlog fica visível e disponível para discussão com todos os envolvidos. E possivelmente até com o cidadão.

Usar pipelines

Atualmente os projetos utilizam o Jenkins como ferramenta de CI/CD.

Sugestão Usar o próprio pipeline do Gitlab para CI/CD. Assim é possível fazer o pipeline as code e é facilmente visto o que deu errado em um build.

Autoscale dos sistemas

Atualmente o sistema não realiza autoscale. É necessário intervenção manual.

Sugestão Realizar autoscale com parâmetros definidos por projeto como uso de memória, processamento, tempo de resposta do servidor entre outros thresholds.

Usar Chats

Atualmente é difícil a conversa com os desenvolvedores.

Sugestão Usar alguma ferramenta de Chat inclusive com integrações para um chatops

Ter mais janelas de RDM (ou não precisar ter)

Atualmente a RDM só pode ser executado em terça e quinta.

Sugestão Poder realizar CI/CD de maneira automatizada sem a necessidade de RDM ou ter mais janelas.

Acesso aos Logs de produção

Atualmente o acesso aos logs tem que ser liberados.

Sugestão Disponibilizar automaticamente em alguma ferramenta como Kibana ou similar.

Sprints com features e bugs

Atualmente as sprints concorrem com os bugs e features. Isso torna a geração de valor com novas features mais difícil e moroso.

Sugestão As sprints serem somente para novas features e os bugs não ocupam slot de tempo na sprint.

Ferramenta para monitorar versões das bibliotecas

Atualmente as bibliotecas do Portal de Serviços estão com dois anos de defasagem e podem não funcionar em um futuro próximo.

Sugestão Utilizar alguma ferramenta para monitorar as versões das bibliotecas utilizadas.

Monitorar o ambiente de homologação

Atualmente não há monitoramento de homologação e o mesmo não é 24/7

Sugestão Monitorar o mesmo e deixar ligado 24/7 e deixar seu controle para o DESPD também.

Atualizar o projeto para o Java 11

Atualmente está utilizando Java 8 mas já foi anunciado que o mesmo terá suporte até Janeiro de 2019.

Sugestão Atualizar entre setembro 2018 até janeiro 2019 para o Java 11 (18.9 LTS)

TAGs em branches

Atualmente as TAGs estão vinculados a commits que não pertencem a nenhuma branch.

Sugestão Utilizar somente uma branch master e usar TAGs nela para controlar o que vai para homologação/produção.

Atualizar o certificado digital

Atualmente o certificado digital é manualmente atualizado.

Sugestão Atualizar o certificado digital automaticamente e periodicamente.