Transformação Ágil

Quando falamos em transformação ágil, é importante entendermos o conceito dessa expressão. Segundo o dicionário Aurélio, transformação é “Alterar, variar, tornar diferente do que era”. Já o ágil, embora muitos ainda pensem que trata-se de uma mera metodologia, está muito além de ser apenas um framework ou um jeito de desenvolver software.

Os valores e princípios ágeis foram estabelecidos em Fevereiro de 2001 por 17 profissionais com experiência em métodos leves, como eram conhecidos na época, que se reuniram em Utah e criaram o que conhecemos hoje por Manifesto Ágil. Esse manifesto apresenta um conjunto de 4 valores e 12 princípios que devem ser a base para uma transformação ágil.

Os 4 Valores Ágeis são:

  1. Indivíduos e interações mais que processos e ferramentas.
  2. Software em funcionamento mais que documentação abrangente.
  3. Colaboração com o cliente mais que negociação de contratos.
  4. Responder a mudanças mais que seguir um plano.

Notem que isso não significa que não faremos mais documentação ou que não existirão mais contratos e planejamento. Os valores estão dispostos em uma balança onde, o mais importante, são os indivíduos e interações, software em funcionamento, colaboração com o cliente e responder a mudanças, mas em nenhum momento diz que só vamos fazer isso. Os 12 Princípios do Ágil podem ser consultados na página do Manifesto, visite!

Mas para realizar a transformação ágil nos deparamos com muitos desafios que poderão nos deixar de cabelo em pé. Um dos maiores desafios é a tão falada cultura organizacional. Há anos trabalhamos num modelo de comando e controle, onde os indivíduos se esforçam para não serem os culpados, para garantir que a sua parte foi feita e que o seu chefe está vendo isso. Essa cultura individualista nos afasta do ideal da entrega de valor, pois ao pensarmos apenas em nossos objetivos, deixamos de trabalhar para que o grupo entregue o que é melhor para a organização como um todo. Nesse tipo de cultura, quando as coisas não dão certo, as pessoas se colocam na defensiva e acusam os outros de serem incompetentes, é aquela velha história de “eu fiz a minha parte, não posso fazer nada se os outros não fazem a parte deles”, ou pior ainda, começam a tentar justificar a sua própria inércia em relação ao grupo com a famosa frase: “eu avisei, não quiseram me ouvir”. Somos responsáveis pelo insucesso de algo quando sabendo que não dará certo, nãos fazemos nada para mudar essa situação.Outro grande desafio é a falta de conhecimento sobre o que é o ágil. Muitas pessoas acreditam que ao utilizar metodologias ágeis deixaremos de ter organização e previsibilidade. Há ainda quem acredite que desenvolvimento ágil é fazer mais rápido, quando na verdade, desenvolvimento ágil é fazer melhor, considerando sempre o valor do que estamos fazendo. Estas são apenas algumas das muitas falácias que encontramos por aí que, muitas vezes, são a principal causadora de outro grande desafio: a resistência à mudança. E como se não bastassem esses desafios, o 11º State of Agile, relatório da VersionOne, aponta que 94% das empresas utilizam alguma prática ágil, no entanto apenas 8% tem todos os times ágeis. Isso significa que em grandes organizações, precisamos aprender a conviver com mais de um processo. Todos esses desafios fazem da transformação ágil uma jornada de superação.

Apesar das dificuldades do caminho, mudar nossa forma de agir e pensar em relação ao desenvolvimento de software é cada vez mais uma obrigação. Vivemos em uma época de profundas transformações, cada vez mais precisamos estar preparados para reagir rápido as mudanças do mercado e novas necessidades, ou então perderemos espaço para as novas empresas e tecnologias disruptivas que crescem exponencialmente. A transformação ágil nos permite criar produtos mais inovadores, entregar com mais qualidade e focar no real valor do negócio. Isso tudo aumenta a satisfação da empresa, dos colaboradores e do cliente.

Precisamos estar atentos ao cenário apontado no Chaos Report do Standish Group que cita que mais de 30% dos projetos são cancelados antes de serem concluídos e que mais de 50% custam muito acima das estimativas iniciais, sendo que apenas pouco mais de 16% dos projetos são concluídos no tempo e no orçamento e ainda sim muitas vezes nem terminam com os requisitos originais. Tudo isso indica claramente que a forma antiga de conduzir projetos gera muito desperdício e não atende a dinâmica necessária para que as organizações mantenham-se competitivas. Temos ainda diversas pesquisas que demonstram que empresas ágeis crescem mais e obtêm mais lucro do que empresas tradicionais.

Com isso acho que sobram motivos para iniciarmos esse movimento agora mesmo. E, para isso, precisamos ter consciência que a transformação ágil é muito mais que a simples implantação de um método ou adoção de um framework. A transformação acontece alinhada aos valores e princípios ágeis, dando um passo de cada vez em ciclos curtos de experimentação e adaptação.

Não existe receita de bolo e cada organização tem suas particularidades, então é de suma importância analisarmos a situação atual da empresa, quais são as dores que ela sente e onde ela quer chegar, quais são seus objetivos e metas. Na maioria das organizações, precisamos trabalhar a cultura organizacional para que tenhamos um ambiente que fomente a autonomia, a confiança e a motivação, focando no empoderamento do indivíduo e não nos processos. Afinal as pessoas são a chave de tudo, ao darmos autonomia e confiarmos que farão o seu trabalho, oportunizamos o desenvolvimento de pessoas comprometidas e com propósito. Ao encontrarmos resistência, precisamos entender o motivo desse comportamento e argumentar mostrando os benefícios da mudança tanto para a organização quanto para os indivíduos. É preciso escutar as pessoas e ser presente no dia a dia delas. Lembre-se que, comprometimento, é um valor essencial para todos nós que acreditamos no ágil.

Surgirão novos papéis, novas responsabilidades, a cultura irá mudar, algumas funções poderão deixar de existir ou apenas se adaptar à nova realidade. A postura de cada um será diferente, afinal, ser ágil é ser comprometido e não apenas envolvido, é buscar a melhoria contínua, é estar aberto a novas ideias, é saber onde queremos chegar, é ter certeza de que o nosso trabalho é importante e está ajudando a empresa a obter resultados incríveis e, acima de tudo, é ter um propósito.

“Ágil é uma forma de pensar e tomar decisões que pode nos levar a atingir qualquer objetivo e superar qualquer desafio. Seu poder é ilimitado.” (Myriam Hamed Torres)

 

Esse tal Scrum

Quem não conhece nem nunca ouviu falar de Scrum deve ter ficado ausente de todas as discussões sobre desenvolvimento de software nos últimos 10 anos. O nome Scrum é uma referência a uma jogada no rugby,  onde os times se juntam para alcançar um objetivo. O Scrum foi concebido em 1995 por Jeff Sutherland e Ken Schwaber. O Jeff inclusive escreveu o livro Scrum: A Arte de fazer o dobro do trabalho na metade do tempo, leitura obrigatória para todos que trabalham ou querem trabalhar com Scrum.

No livro ele cita os muitos problemas do método tradicional de desenvolver software, onde investimos muito tempo planejando cada detalhe de maneira que tudo pareça perfeito, mas na prática, enfrentamos inúmeros desafios que torna muito difícil senão impossível seguir aquele plano. Ele aponta o que todos nós sabemos, ou deveríamos saber, que a mudança é inevitável, então o melhor que podemos fazer é estarmos preparados para ela e adaptarmos nosso trabalho para que ela aconteça e seja bem vinda.

Sabe o PDCA? Pois é, no Scrum nós Planejamos (Plan), Fazemos (Do), Agimos (Act)  e Verificamos os resultados (Check) e o mais importante, fazemos isso regularmente garantindo que estamos sempre melhorando. Quando encontramos um erro já o corrigimos imediatamente, não é necessário, nem inteligente, esperar até nada dar certo pra ver que precisamos corrigir os erros, isso só vai agravar os erros tornando-os mais difíceis de serem corrigidos.

Os times Scrum são enxutos porém completos, tendo todos os perfis necessários para realizar uma entrega. Esse time deve ser motivado e ter autonomia para trabalhar eficazmente por um objetivo. E para termos um time assim tão motivado e eficaz, precisamos garantir que ele tenha plena capacidade de exercer suas habilidades, isso significa que não dá pra exaurir todo mundo com longas jornadas de trabalho acrescidas de horas e mais horas extras. Trabalhar além da conta nos induz a cometer erros, e erros geram retrabalho, diminuindo a produtividade do time. Lembrando que muitas vezes o trabalho excessivo ocorre devido ao mal planejamento e a definição de metas irreais. No Scrum devemos ter objetivos desafiadores, porém não impossíveis.

A grande sacada é manter um fluxo continuo e funcional. Uma forma de ter esse fluxo saudável e cumprir as metas sem horas extras é refletir sobre tudo que se faz desnecessariamente, quantos documentos, reuniões, e-mails ou procedimentos inúteis estamos produzindo. Vamos planejar apenas o que é necessário e mudar sempre que for preciso, sem apego. Por isso a priorização é tão importante em um time Scrum, uma coisa nova que tenha mais valor pode entrar no lugar daquilo que estava planejado sem problema nenhum, desde que ela exija o mesmo esforço para ser realizada.

E pra organizar todo o trabalho o Scrum conta com algumas caixas de tempo fixas que usualmente chamamos de time boxes. Abaixo teremos as principais time boxes do Scrum e um breve resumo de cada uma.

Sprint

Sprint é um período pré determinado que vai de uma a quatro semanas, sendo mais comumente utilizado o período de duas semanas, onde o trabalho é realizado visando atender uma meta. O tamanho da Sprint deve ser estabelecido e respeitado, sendo possível modificá-lo apenas para uma nova Sprint, ou seja, não tem como incluir uns dias a mais na Sprint para cumprir uma meta, pois ela já não deu certo.

Planning

A primeira atividade da Sprint é o planejamento dela, nessa reunião que deve ter duração de até 5% do tempo total da Sprint, é onde a meta deve ficar clara para todo o time, que fará a discussão técnica e realizará a estimativa de cada item que será trabalhado na Sprint.

Daily

É o momento de comunicação entre o time. Essa reunião deve ocorrer diariamente sempre no mesmo horário e local, para que todos saibam onde e quando ela vai acontecer sem precisar de nenhum convite especial. A duração não deve ultrapassar os 15 minutos e, por isso, pode ser realizada em pé. Na daily, cada membro do time fala sucintamente sobre o que realizou no dia anterior, o que realizará hoje e se há algum impedimento, sendo que todas essas questões devem ser respondidas  pensando sempre no objetivo da Sprint. Uma boa daily normalmente acontece na frente de um quadro contendo todas as tarefas do time, onde todos possam ver como está o andamento da Sprint.

Review

É o momento em que mostramos o resultado da Sprint, a ideia aqui é mostrar a coisa funcionando mesmo e não um conjunto de slides com prints de tela. Vamos ficar atentos ao manifesto ágil e entregar software em funcionamento. A Review ou Reunião de Demonstração deve ser objetiva, tendo a duração de até 2,5 % do tempo total da Sprint.

Retrospectiva

É o último time box da Sprint, é nesse momento que vai acontecer a reflexão sobre tudo o que aconteceu de bom ou de ruim numa Sprint e as ideias de como podemos melhorar para a próxima. É um dos momentos mais importantes do time, pois é através da reflexão constante que corrigimos os erros e evoluímos. O tempo de duração ideal desta cerimônia é entre 2,5 e 5% da Sprint.

Todos esses time boxes, assim como os papéis existentes no Scrum, serão detalhados em posts futuros aqui no blog. Além disso, no livro encontramos muito mais detalhes sobre tudo que falamos aqui, e também outros conceitos e exemplos bem bacanas sobre aplicação de Scrum, então recomendo fortemente a leitura dele. Também recomendo a leitura do Scrum Guide, onde há todas as informações necessárias para se trabalhar com Scrum de maneira satisfatória.