DevOps: a importância da automação em projetos de larga escala e grande complexidade - Digital Hub
DevOps: a importância da automação em projetos de larga escala e grande complexidade
Quando trabalhamos em projetos de larga escala, tendemos a lidar com mais desafios e complexidades. É um processo bastante comum nas empresas de desenvolvimento. E ter um olhar estratégico sobre cada uma das etapas pode fazer toda a diferença na qualidade de cada entrega.
Para desenvolver um projeto de sucesso, nos deparamos com diversos fatores: um bom planejamento, boa definição de escopo, bom método que será utilizado para o desenvolvimento, acompanhamento desse projeto e também automação de processos que vão favorecer para que ele atenda a todas as necessidades. E é sobre automação que vamos tratar neste artigo.
Você disse automação? Isso é uma missão para o DevOps!
DevOps pode ser resumido da seguinte maneira: "desenvolver soluções que aumentam a produtividade, a assertividade e a segurança em tarefas cotidianas da empresa". Mas não são somente tarefas relacionadas ao desenvolvimento e à infraestrutura. DevOps também tem uma forte responsabilidade cultural dentro das empresas, trabalhando em soluções macros com visão geral de fluxos, integração entre departamentos e interações sociais que ocorrem diariamente ou que poderiam ocorrer.
Vamos pensar em um exemplo bem simples: toda empresa tem um fluxo de onboarding (integração de novos funcionários na equipe) de colaboradores, ou deveria ter. Nesse fluxo, caso uma das partes falhe ou se atrase para criar os acessos para o novo colaborador, porque surgiu alguma emergência, isso afetará negativamente a jornada inicial desse novo membro do time, que acaba ficando horas aguardando esses acessos logo no primeiro dia de empresa. Uma péssima experiência, não é mesmo?
Nesse caso, o DevOps atua no sentido de desenvolver uma solução que busca dar autonomia para quem está conduzindo esse processo de onboarding, permitindo que essa pessoa crie os acessos necessários de forma simples e rápida.
Essa autonomia pode ser desenvolvida e fornecida de diversas formas pela equipe de DevOps, como a integração com bots no chat da empresa. Isso poderia acabar com o problema, trazendo uma ótima primeira impressão para todos os novos colaboradores.
No exemplo acima, a atuação do DevOps pode ser essencial para que um fluxo já definido por outros departamentos da empresa consiga funcionar trazendo resultados positivos.
Qual a importância da automação em projetos grandes e de alta complexidade?
Quando falamos em automações, estamos falando em transformar tarefas repetitivas em soluções que serão executadas por meio de tecnologia e de forma automática, acontecendo sempre que uma ação específica seja executada ou quando alguém a solicita.
Mas por que automatizar é importante? Há algumas razões. Grandes projetos envolvem entregas contínuas. Ou seja, o time sempre estará produzindo e entregando para que as tarefas sejam validadas pela equipe de testes.
Uma vez que temos uma tarefa pronta, por exemplo, ela precisa ser publicada em um ambiente de testes. Normalmente, é uma tarefa manual que depende de alguém da liderança ou do time de infraestrutura para dar continuidade. Ou seja, precisa de uma ação manual para que possa seguir o seu fluxo.
Porém, ações manuais são sempre mais passíveis de falhas do que ações automatizadas. Continuando o exemplo acima, vamos imaginar que, para publicar a tarefa, a pessoa deva executar um conjunto de comandos, mas acaba se esquecendo de algum específico, fazendo com que a equipe de testes encontre diversos erros que, no fim das contas, não estão relacionados a um problema da tarefa em si, mas sim por um falha na publicação. Quanta dor de cabeça não causará?
Em suma, todos esses problemas fariam com que o cycle time (o tempo que leva para finalizar a tarefa desde seu início) da tarefa fosse aumentando.
Dessa forma, automatizar significa agilizar os processos, aumentar a produtividade, elevar a taxa de acerto da execução e diminuir o cycle time das tarefas, o que, consequentemente, acaba reduzindo o cycle time de todo o projeto.
A publicação de tarefas é somente um exemplo do que pode ser automatizado. Análise automática de códigos, automatização de testes e criação de comandos por bots seriam outros exemplos de uma infinidade de possibilidades que estão a serviço dos times que visam à qualidade e à alta produtividade.
O sucesso de um projeto pode acabar dependendo de ações conjuntas do setor de DevOps com os demais setores da empresa, seja a equipe de desenvolvimento, a equipe de testes, os Project Owners ou os Project Managers. É de responsabilidade do DevOps sempre se manter alinhado com todos, para que consiga entender as maiores dificuldades e trazer as melhores soluções para o momento.
Hugo Aguiar, responsável pela área de DevOps na Digital Hub. Formado em Análise e Desenvolvimento de Sistemas pela UTFPR-CP, atua há mais de nove anos no mercado de desenvolvimento web e possui mais de dois anos de experiência como DevOps.