Conheça 5 práticas importantes na transformação digital (Foto: Pixabay)
Programa Inova 360Por Vitor Massari
Transformação digital, além de mudanças e readequação de processos e cultura, envolve também boas e consolidadas práticas tecnológicas.
Porém venho observando que o mercado está muito focado em métodos, frameworks, soft-skills e vem deixando de lado algumas práticas que são premissas para realmente termos transformações digitais.
Vamos às cinco práticas:
1) Desenvolvimento orientado à testes
Prática também conhecida como TDD (Test-Driven Development, em Inglês), oriunda da metodologia Extreme Programming, também conhecida como XP.
Nesta prática, o desenvolvedor de software migra de uma abordagem que consiste em desenvolver grandes lotes de código para depois testá-los, o que pode aumentar a chance de maiores bugs e defeitos no produto para uma abordagem onde:
– Define-se o teste a ser realizado
– Desenvolve-se o código de teste, que deve falhar
– Desenvolve-se o código suficiente e necessário para o teste passar
– Executa-se novamente o código de teste
– Em caso de falha, deve-se revisitar o código
– Em caso de sucesso, deve-se ajustar o código deixando-o “limpo” (Clean Code) para seja de fácil compreensão e manutenção.
Algumas ferramentas existentes para o apoio no desenvolvimento orientado a testes são: JUnit, PHPUnit, NUnit, CUnit, PyUnit, SimpleTest, entre outras.
2) Automação de testes
Um dos princípios fundamentais do Sistema Toyota de Produção, consolidadas na abordagem Lean, é separar o trabalho das máquinas do trabalho dos humanos.
Quando falamos de soluções digitais, os humanos são fundamentais na ideação e desenvolvimento. Porém os códigos de testes construídos na prática de desenvolvimento orientado à testes, uma vez consolidados, devem ser automatizados e não mais serem executados pelas pessoas que desenvolveram.
Dentre as ferramentas mais conhecidas de automação de testes, temos o Selenium e o Cucumber.
3) Arquitetura de microsserviços
Para que as duas práticas anteriores funcionem adequadamente é crucial que a solução digital seja construída através de microsserviços.
Microsserviços é uma abordagem de decomposição da solução em componentes mínimos, independentes e que podem ser testados isoladamente.
4) Integração Contínua
Integração contínua é um processo automatizado que verifica se um determinado código desenvolvido pode ser “efetivado” ou não. Estes passos podem ser:
– Execução dos testes unitários automatizados
– Verificação se o código atende padrões de boas práticas (Clean Code)
– Execução de testes integrados automatizados
– Execução de testes de regressão
– Verificação de Conflitos de versionamento de código
As ferramentas mais utilizadas atualmente são Jenkins e Gitlab
5) Entrega Contínua
A cada dia que passa, as demandas e necessidades dos clientes que consomem soluções digitais estão aumentando exponencialmente.
Isto faz com que a frequência dos lançamentos de versões atualizadas das soluções seja cada vez maior e, para isto, as empresas devem possuir uma estrutura que permita um fluxo automatizado de entrega contínua.
O fluxo de entrega contínua, também chamado de pipeline, é uma consequência dos quatro passos anteriores e uma base fundamental para uma transformação digital plena e o que caracteriza o que se chama de Cultura DevOps.
Caso você tenha interesse em se aprofundar nos assuntos abordados neste artigo, recomendo a leitura dos livros:
– Desenvolvimento Guiado Por Testes – Kent Beck
– O Projeto Phoenix – Gene Kim, Kevin Behr, George Spafford
– Entrega Contínua – Jez Humble, David Farley
Vitor Massari assina coluna sobre Transformação Digital, no Inova360/R7, e tem quadro sobre o tema no programa de TV Inova360 na Record News. É CEO da Hiflex Consultoria e autor dos best-sellers “Gerenciamento Ágil de Projetos e Agile Scrum Master no Gerenciamento Avançado de Projetos” e “Gestão Ágil de Produtos com Agile Think® Business Framework”.
Tem 20 certificações em inovação e transformação ágil e digital, é docente na área e venceu o Troféu Luca Bastos no evento Agile Trends por dois anos consecutivos.