Entenda o que a união entre DevOps e Scrum pode gerar
Nos últimos anos, assistimos o surgimento de diversas metodologias para a gestão dinâmica de projetos, todas contrapondo a morosidade e a ineficiência da metodologia tradicional de desenvolvimento de softwares.
O problema é que muitos desses frameworks atuam sob enfoques distintos, o que gera dúvidas sobre as possibilidades de integração de conceitos como Extreme Programming (XP), Scrum, DevOps.
É possível, por exemplo, unir a cultura DevOps com o dinamismo metodológico do Scrum? Se você tem essa dúvida, iremos ajudá-lo a dirimi-la a partir de agora. Confira!
Para começo de conversa, o que é DevOps e Scrum?
DevOps
DevOps é um movimento, uma mudança cultural que se apoia em aumentar a comunicação, a colaboração e a harmonia entre desenvolvedores e os times de operações de TI para fornecer entregas contínuas aos clientes, com menor custo e menor percentual de bugs.
Com a padronização dos ambientes de produção, dissipa-se a antiga segmentação entre departamentos, fechados em si mesmo a ponto de transformarem um único projeto em verdadeiros microprojetos autônomos.
Com pouca informação (e, às vezes, interesse) com relação às atividades do outro, o resultado desse isolamento entre os times de TI são entregas demoradas, inúmeras falhas, descontentamento do cliente, indisponibilidades, vencimento de prazos, além da velha competição entre equipes de desenvolvimento e operações. A cultura DevOps tem o objetivo de redesenhar a forma com que se pensa um projeto de software dentro da TI.
No DevOps, todos os passos do projeto (desde a definição de requisitos até a implementação) são pensados conjuntamente. Isso evita, por exemplo, falhas de comunicação como o desenvolvimento de um software que não roda adequadamente devido à sua incompatibilidade com a estrutura de servidores (gap entre programadores e equipe de infra).
Além disso, o uso de deploy automatizado garante o fornecimento de aplicações com maior rapidez e mais assertividade, liberando a equipe para dedicar-se a outras etapas do projeto.
Com a cultura DevOps:
- Elimina-se a competição entre equipes de infraestrutura e desenvolvedores;
- Há melhorias relevantes no planejamento do ambiente de produção, o que resulta em projetos entregues dentro do prazo e sem estourar o orçamento estimado;
- A integração entre equipes resulta no monitoramento mais eficaz das aplicações desenvolvidas;
- As soluções são entregues com maior estabilidade e desempenho; entre outros benefícios.
Scrum
O Scrum também é uma metodologia ágil de desenvolvimento de softwares e que, assim como o DevOps, objetiva dar maior rapidez e organização no gerenciamento de projetos, sobretudo, os de TI.
O Scrum é uma estratégia incremental de gestão de projetos, ideal para cenários de difícil previsão ou de alta mutabilidade. Não se trata, portanto, de um processo padronizado, no qual o time simplesmente segue etapas predefinidas para alcançar resultados imaginados no início da formulação de requisitos.
Ao invés disso, o Scrum constitui-se de um poderoso conjunto de valores e práticas para gerenciar trabalhos complexos, nos quais é impossível prever tudo o que acontecerá ao longo das etapas do projeto. Esses valores fornecem base para que a organização em questão acrescente suas práticas particulares de engenharia e gestão, o que faz dessa metodologia uma das mais adaptáveis entre as estratégias ágeis do mercado.
No Scrum, os projetos são fragmentados em ciclos, chamados Sprints. O Sprint é um Time Box, dentro do qual uma série de tarefas devem ser executadas com início e fim em datas fixas. Em geral, os Sprints têm a mesma duração.
Todas as tarefas são realizadas por uma ou mais equipes Scrum; cada uma composta, basicamente, pelos seguintes papéis:
- Product Owner: líder do time, responsável pela escolha dos recursos e pela ordem das etapas a serem seguidas;
- ScrumMaster: responsável pelo auxílio a todos os envolvidos, atuando como um coach, um facilitador a integrar todos os membros da equipe e disseminar princípios, valores e práticas do Scrum;
- Time de Desenvolvimento: aqui, designers, programadores, arquitetos, QAs e administradores de banco de dados são reunidos em uma equipe multidisciplinar (geralmente, entre 5 e 9 membros), cuja responsabilidade é a de trabalhar na concepção, na construção e nos testes do produto.
Algumas das características do Scrum:
- Assim como no DevOps, clientes são parte integrante do processo de desenvolvimento;
- A divisão das tarefas por Sprints auxilia na gestão do tempo e na verificação de incorreções, tornando as atividades mais rápidas e assertivas;
- Tem-se o foco nas entregas frequentes e intermediárias. Isso não significa fazer entregas pela metade, pelo contrário: estabelece que cada entrega deve agregar valor e estar 100% pronta;
- Todo o processo de evolução do projeto é discutido por meio de reuniões frequentes (costumam ser diárias e, em geral, não passam de 15 minutos). Nesses encontros, todos os membros da equipe discutirão o que fizeram no dia anterior para o alcance da meta, qual o planejado para fazer até o dia seguinte em busca dos objetivos traçados, possíveis obstáculos, etc.;
- No Scrum, o mais importante sempre é feito primeiro. Dessa maneira, é muito comum, nesse tipo de metodologia, a organização de listas de prioridades conhecidas como Product Backlogs. As atividades de inserir novos itens e aprimorar o Product Backlog são chamadas de Grooming, imprescindíveis para manter a equipe organizada e ciente da ordem de execução das tarefas.
Como integrar DevOps e Scrum em um mesmo projeto?
A cultura DevOps atua fornecendo maior transparência no conteúdo dos Sprints a todos os membros do time de TI, uma vez que todas as fases do projeto serão desenvolvidas em uma plataforma unificada. O acesso aos mesmos registros, disponíveis ao time de desenvolvimento e operações, auxilia na formatação das atividades de cada Sprint, além de permitir o compartilhamento de ideias entre ScrumMaster, Product Owner e Time de Desenvolvimento.
Até algum tempo, ao final de cada Sprint, todas as informações geradas nos post-its internos, rascunhos e outros canais manuais eram descartadas, às vezes, sem sequer chegar ao conhecimento da outra equipe de TI que lidaria com o projeto em fase mais avançada (equipe de infra, por exemplo). Com a integração proporcionada pelo DevOps, todos esses registros digitais permanecem no sistema, gerando uma documentação que abre margem para a rastreabilidade acessível a todo o time de TI.
Outro ponto de integração entre as duas perspectivas é que a harmonização entre as equipes de desenvolvimento e operações facilita a organização do Product Backlog, tornando-o mais eficiente no processo de hierarquização de ações no projeto.
O mundo dos negócios muda rapidamente e a área de TI deve responder a essas mudanças. Para lidar com essas transformações, é preciso que a TI mude todo o fluxo operacional — algo que pode ser feito com DevOps e Scrum com excelência!
Já pensou em como incluir DevOps e Scrum no seu dia a dia no trabalho? Compartilhe nosso conteúdo nas redes sociais para discutir sobre governança de TI com outras pessoas da área!