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.
- https://jenkins.io/blog/2018/05/16/pipelines-with-git-tags/
- https://stackoverflow.com/questions/7805603/is-it-possible-for-jenkins-to-automatically-detect-and-build-newly-created-tags
- https://jenkins.io/doc/pipeline/steps/pipeline-input-step/
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.