Por Carlos Júnior.
Para construir um software é necessário utilizar ferramentas e técnicas a fim de manter a padronização e a qualidade do mesmo. Se utilizando disso, a Nasajon consegue agilidade e rapidez em suas entregas e mantém sempre os seus sistemas atualizados, como foi nas entregas mais recentes das MP 936 e 927/2020, para o sistema de Folha de Pagamento, o Persona. Neste artigo serão abordadas as principais ferramentas e técnicas que a empresa utiliza para tal.
O que é engenharia de software?
A engenharia de software é uma ramificação da área de computação que tem como objetivo gerir todo planejamento de construção do software, desde a organização de ideias até a entrega do mesmo.
Edsger W. Dijkstra, famoso cientista da computação, definiu bem a engenharia de software quando disse “A arte de programar consiste em organizar e dominar a complexidade”.
E para dominar essa complexidade a Nasajon utiliza várias ferramentas de mercado e técnicas. Segue abaixo quais serão abordadas no artigo:
- OpenProject – Ferramenta para gerenciamento de projetos;
- Jenkins – Ferramenta de entrega contínua;
- Github – Ferramenta de gestão da configuração;
- Scrum – Metodologia ágil.
OpenProject – Ferramenta para gerenciamento de projetos
Exemplo do gráfico de Gantt que o OpenProject gera.
O OpenProject é uma ferramenta open source, simples, prática de ser utilizada e adaptável a qualquer setor da empresa para planejamento de projetos. Por exemplo, na Nasajon ela é utilizada não só pelo setor de Desenvolvimento, mas também pelo setor de Marketing.
As principais funcionalidades do OpenProject são:
- Planejamento e programação do projeto;
- Roteiro do produto e planejamento de liberação;
- Gerenciamento de tarefas e colaboração em equipe;
- Kanban, Agile e Scrum;
- Acompanhamento de tempo, relatórios de custos e orçamento.
Com essa ferramenta a Nasajon consegue visualizar todo o andamento de seus sistemas para que se possa planejar e tomar decisões para melhorar o aproveitamento dos recursos e da mão de obra disponível para os mesmos.
Exemplo da tela de gerenciamento de tarefas do Persona.
Jenkins – Ferramenta de entrega contínua
Exemplo de tela do dashboard do Jenkins.
O Jenkins também é uma ferramenta open source e ela é focada na entrega contínua. Na Nasajon, o Jenkins serve para automatizar a geração de executáveis ou de pacotes web a cada alteração disponibilizada, seja ela corretiva ou evolutiva, executar testes automatizados e disponibilizar para os clientes instaladores com as últimas versões de seu software.
Github – Gestão da Configuração
Tela principal do Github do repositório do Persona.
O Github é uma plataforma baseada no Git que também é uma ferramenta open source. Ela serve para versionamento de arquivos das versões que são disponibilizadas para os clientes.
Uma das funcionalidades que o Github possui e que a Nasajon utiliza bastante é a divisão por ramos (branches). Por exemplo, o ramo principal possui todo o código fonte em sua última versão, para garantir estabilidade. A partir dele é criado um ramo após o fim do ciclo de tarefas (Sprint) ter terminado e nomeamos com o número do ciclo que fechamos, por exemplo 2.56. Nessa 2.56 não existirão novas funcionalidades, apenas correções a fim de manter a versão estável pelo o maior tempo possível.
Com isso a Nasajon consegue disponibilizar aos clientes duas versões: a de Longa Duração (LD) e a Antecipação de Funcionalidades (AF), mantendo-as sempre atualizadas com os últimos hotfixes e garantindo, assim, a estabilidade delas.
A versão de Longa Duração recebe apenas tarefas corretivas após o fim do ciclo de tarefas (Sprint) da versão e permanece disponível por seis meses. Já a de Antecipação de Funcionalidades recebe além das corretivas, novas funcionalidades que foram feitas em versões posteriores, a fim de atender da melhor forma os clientes.
Scrum – Metodologia Ágil
Exemplo de como o Scrum funciona, imagem original com adaptações da Nasajon.
O Scrum é uma metodologia ágil que serve para planejar e gerir todo e qualquer projeto de software. Nessa metodologia, os ciclos de desenvolvimento e entrega do software, chamados de “Sprints”, podem durar de duas a quatro semanas. Abaixo você entenderá todas as etapas da aplicação dessa metodologia como a figura acima pode apresentar:
- Product backlog
Todo o software precisa de correções e melhorias constantes. Então são criadas tarefas e armazenadas no backlog do produto para que, no planejamento, elas possam ser priorizadas de acordo com os recursos disponíveis. - Planejamento e Sprint Backlog
Nessa etapa, é verificado todo o backlog do produto para checar as tarefas a serem priorizadas e, com isso, gerar o “Sprint Backlog” que terá as tarefas a serem feitas naquela Sprint. - Sprint
Nessa etapa é que se inicia o desenvolvimento. Todos os dias são realizadas reuniões que são chamadas de “Daily Scrum” (stand up diário) que têm duração de 10 a 15 minutos e que tem por objetivo verificar se o que foi planejado para o dia anterior foi feito, definir o que será feito no dia e se há algum impedimento no caminho de alguma tarefa. - Incrementos no produto potencialmente entregáveis
Nessa etapa se iniciam os testes da versão do software que será disponibilizada e o desenvolvimento de correções de não conformidades encontradas pela equipe de testes.
Como o leitor pode perceber, a Nasajon se utiliza bastante de ferramentas open source, pois elas garantem duas coisas que a empresa sempre buscou em seus sistemas:
1- Maior interoperabilidade, pois o ERP Nasajon é totalmente integrado (tendo módulos web, mobile e desktop) e desenvolvido com linguagens diferentes para cada ambiente;
2- Maior confiabilidade, pois no software open source você pode modificar e melhorar colocando a “cara” da sua empresa, garantindo, assim a personalização e segurança dos dados dos seus projetos. Assim como a Nasajon faz para vários clientes como, por exemplo, na personalização de relatórios e módulos.
Com isso a Nasajon tem garantido o seu lugar no mercado como uma empresa de confiança e que sempre tem os seus sistemas em dia com a legislação e com novidades de mercado.