Possibilidade de isolar o Sistema de Nomeação e Exoneração (SISNE)
OBJETIVO
Realizar análise visando encontrar formas de isolar o SISNE (Sistema de Nomeação e Exoneração), para que seja possível lançar uma versão mínima em ambiente de produção, essa ação irá garantir que o produto seja trabalhado e otimizado de acordo com as necessidades encontradas pelos usuários finais.
VISÃO GERAL
Atualmente o sistema SISNE está em desenvolvimento a mais de 2 anos, o mesmo possui uma estrutura de código e de operação grande e complexa, envolvendo diversos setores, perfis, permissões e funcionalidades totalmente distintas e dependentes umas das outras.
Portanto isso dificulta o lançamento de uma versão mínima, pois para que o SISNE funcione como o esperado todos os setores teriam que aderir e trabalhar na plataforma em conjunto, além disso constantemente surgem novos requisitos a serem implementados no sistema, o que leva o processo de lançamento a ser adiado com grande frequência.
Sendo assim foi discutido pelo time de desenvolvimento a possibilidade de isolar uma parte do sistema com maior valor para o cliente, e posteriormente encontrar uma maneira de isolar, para que seja possível lançar em ambiente de produção no menor tempo possível.
Com o isolamento e o lançamento desta versão mínima será possível entender e desenvolver funcionalidades de acordo com a real necessidade do cliente, pois durante o processo de ideação do projeto tópicos que seriam necessários acabam não entrando em discussão e consequentemente no processo de desenvolvimento. Logo através dessa versão mínima será possível obter feedbacks e trabalhar na plataforma de acordo com as necessidades encontradas durante o processo de utilização da versão mínima do sistema.
SOLUÇÕES ENCONTRADAS
Em conversa com a equipe de desenvolvimento foi encontrada 3 possíveis formas de atingir o objetivo proposto neste estudo, a ordem descrita é definida através da complexidade, as primeiras posições são as soluções mais fáceis de serem implementadas enquanto as ultimas serão as de maior complexibilidade.
1º - Novo projeto: Criar um novo projeto com foco no cliente mais interessado o qual seria a DECAANE, nessa alternativa o time desenvolver uma nova solução, entretanto iria utilizar o maior numero possível de recursos já desenvolvidos no SISNE com o intuito de reduzir o tempo de entrega, porém seria um projeto novo, totalmente isolado e focado.
- Nível de dificuldade de 0 a 10: 5
- Justificativa:
2º - Refatorar o projeto SISNE: Essa alternativa buscaria resumir fluxos do atual sistema, a fim de concentrar funções e retirar a dependência da participação de outros setores no processo de nomeação/exoneração.
- Nível de dificuldade de 0 a 10: 7
- Justificativa:
3º - Refatorar o projeto CECAANE: Nessa opção seria realizado uma refatoração no atual código fonte do sistema CECAANE, com o intuito de otimizar e atualizar o projeto. Promovendo assim as correções necessárias e migrando a plataforma para tecnologias mais atualizadas.
- Nível de dificuldade de 0 a 10: 10
- Justificativa: Essa solução é possível, no entanto o time não possui experiência com a tecnologia utilizada no projeto CECAANE, o que já levaria o desenvolvimento a requerer um maior prazo até que o time se adapte, além disso o código foi escrito há alguns anos atrás, sendo assim aplicar atualizações, otimizações e incluir no ambiente de desenvolvimento atual será extremamente complexo, dado a forma na qual o mesmo foi escrito.
CONSIDERAÇÕES FINAIS
RESPONSÁVEIS
-
Alexandre Santos Freire (Analista de Desenvolvimento);
-
André Henrique Cortez (Analista de Desenvolvimento Full-stack);
-
Denise Jeane (Product Owner);
-
Jorge Luiz de Jesus Paiva Junior (Analista de Desenvolvimento Full-stack).
GLOSSÁRIO
- Product Owner: O Product Owner representa os interesses de todos os envolvidos, define as funcionalidades do produto e prioriza os itens de Product Backlog. Fonte: (https://www.trt9.jus.br/pds/Scrum/roles/product_owner_10E7BD3.html).
- Product Backlog: É uma lista priorizada, contendo breves descrições de todas as funcionalidades desejadas para o produto. Fonte: (https://www.culturaagil.com.br/product-backlog-o-que-e/).
- Scrum Master: O Scrum Master é o membro do time que detém, em geral, maior conhecimento sobre o Scrum (“framework que ajuda as equipes a trabalharem juntas”). Logo, ele é responsável por potencializar o trabalho da equipe. Fonte: (https://www.voitto.com.br/blog/artigo/scrum-master) (https://www.atlassian.com/agile/scrum).
- Framework: Estrutura é feita para resolver um problema específico. Fonte: (https://www.lewagon.com/pt-BR/blog/o-que-e-framework).
- Full-stack: O desenvolvedor Full-stack é aquele que pode atuar em qualquer etapa do desenvolvimento de sistemas. Fonte: (https://www.proway.com.br/blog/dev-full-stack-o-que-e-isso)
Estudo Técnico – 21/02/2022