Fluxo de Desenvolvimento de Software para Leigos

Um passo a passo rápido de como linhas de código se transformam em um produto

Fluxo de Desenvolvimento de Software para Leigos
Photo by Fotis Fotopoulos / Unsplash


No dia-a-dia, vemos muitos textos e materiais falando sobre como melhorar processos, estudos sobre.

Mas será que as pessoas realmente entendem como uma ideia se transforma em linhas de código que se tornam um programa? Bom, minha ideia aqui é passar pelos pontos mais importantes desse processo e explicar como tudo ocorre.

O objetivo não é passar sobre pontos técnicos nem por ferramentas ou frameworks que são comumente utilizados nesses processos. Quero que, ao final deste texto, você entenda como funciona o fluxo do desenvolvimento de software como um todo.

Vamos lá?

Início

Tudo se inicia com a equipe de negócios reunindo-se para delinear o que necessita ser construído. Neste estágio, definimos a solução em termos de negócios. As informações podem emergir de feedbacks dos usuários, requisitos específicos do produto ou até mesmo de um contrato recém-assinado. É neste ponto que decidimos o que será feito. Por exemplo, podemos decidir que vamos desenvolver um site que permita aos usuários compartilhar fotos entre si. Essa é a nossa premissa básica.

Com essa visão inicial, as equipes de produto e engenharia fragmentam a grande ideia em tarefas menores ou histórias de usuários. Para materializar nosso site, por exemplo, precisaremos estabelecer a infraestrutura, desenvolver as APIs, projetar a interface do usuário e assim por diante.

Essas tarefas são posteriormente priorizadas durante reuniões de planejamento, que são realizadas conforme a dinâmica de cada equipe. Algumas organizações optam por realizar esses encontros semanalmente, enquanto outras preferem um intervalo quinzenal, tudo depende da cultura e das lideranças da empresa.

Desenvolvimento

Depois que o trabalho é planejado e priorizado, os desenvolvedores começam a construir. Para iniciativas maiores, geralmente há um processo de design para alinhar a arquitetura a ser seguida e a técnica que teremos para o problema.

Nesse ponto, os desenvolvedores começam a escrever o código e utilizam o Git para controle de versões e criam ramificações (branches) de recursos para desenvolver novas funcionalidades sem afetar a base de código principal. Assim, várias pessoas podem trabalhar em paralelo e seus códigos serão mesclados ao original de forma que conversem bem.

Revisão de código

Uma vez que o código está pronto, os desenvolvedores abrem uma solicitação pull para a equipe revisar. Esse processo ajuda a identificar problemas precocemente e a melhorar a abordagem utilizada pelo desenvolvedor que atuou nela. Problemas, como inserção de bugs ou interrupção do que pode estar funcionando, podem ser evitados nessa fase de revisão.

Após a aprovação, o código é mesclado ('mergeado') na branch com o código principal. Nesse ponto, o que chamamos de pipelines de Integração Contínua/Entrega Contínua (CI/CD) são acionadas após a mesclagem.

Esses pipelines vão pegar esse código e colocá-lo disponível para que o usuário ou membros do time possam testar em algum ambiente de desenvolvimento e, posteriormente, em produção.

Validação

Após a implementação das funcionalidades, entra em cena uma fase igualmente importante: os testes. Aqui, a qualidade do software é posta à prova, e eventuais falhas são identificadas e corrigidas.

Os testes podem ser manuais ou automatizados e abrangem desde verificações unitárias de pequenos componentes até testes de integração que avaliam o sistema como um todo.

Aqui avalia-se se nenhum efeito colateral foi causado e se a implementação está de acordo com os critérios de aceitação. O tráfego de informações ocorre como deveria? A necessidade do usuário foi resolvida? O bug deixou de ocorrer?

Lançamento