Entender por que a Salesforce adotou a metodologia ágil
Após concluir esta unidade, você estará apto a:
- Explicar por que a Salesforce usa métodos ágeis
- Listar alguns benefícios dos métodos ágeis
- Definir o Scrum
- Explicar a "definição de concluído"
- Entender por que os processos ágeis funcionam melhor para a Salesforce
Imagine chegar ao Dreamforce e descobrir que não há nenhuma palestra principal, nenhum novo produto ou anúncio de serviço, inovações ou recursos disponíveis prontos para produção no próximo ano.
Isso quase aconteceu com a Salesforce em 2006, mas evitamos esse cenário implementando um novo fluxo de trabalho que revolucionou a forma como desenvolvemos e entregamos produtos.
Desde 1999, quando a Salesforce foi fundada, nossa equipe de tecnologia e produtos (T&P) ofereceu resultados sempre em dia. A comunicação e a colaboração entre as equipes de T&P sempre foram fáceis e simples. Mas em 2006 tivemos um crescimento fenomenal: tínhamos mais clientes, mais receita, mais produtos e uma empresa maior. E, como em qualquer surto de crescimento, não foi sem dor.
Tudo o que costumava acontecer com facilidade não era mais fácil. Por conta disso, começamos a ver um abrandamento na inovação.
O dimensionamento da comunicação, da colaboração e do gerenciamento mantendo o cronograma de lançamento tornou-se um desafio. Ficou claro que precisávamos de uma nova abordagem que fosse centrada em um processo de entrega de produtos sem interrupções, uma que impediria atrasos no lançamento.
Então fizemos o que fazemos melhor: corremos um risco e reinventamos nossa maneira de oferecer soluções. Adotamos um conjunto de princípios e práticas ágeis.
Por que ágil?
Grande parte do trabalho que fazemos na Salesforce é iterativo e baseado em inovação. Ou seja, nem sempre sabemos o resultado final com antecedência, e o caminho para chegar até lá é um trabalho em construção. É sempre uma nova aventura!
Isso não quer dizer que todas as equipes da Salesforce usem processos ágeis. Algumas equipes usam a estrutura da cascata, que é um processo de gerenciamento de projetos muito menos flexível. O processo escolhido vai depender do que você sabe ou não sabe quando inicia o item de trabalho.
Vejamos rapidamente as práticas de cascata.
- Tudo é planejado com antecedência.
- Os requisitos são reunidos detalhadamente antes da implementação.
- Cada etapa deve ser concluída antes de prosseguir.
- O resultado é determinado no início.
Planejar vs. adaptar
Se você está tentando decidir qual processo funciona melhor para você, pense no seguinte: se você está pintando um quadro e já determinou suas cores, o cenário, quanto tempo passará pintando e como será a imagem final, há pouco espaço para fazer alterações durante o processo. Isso não quer dizer que a tela não será um Picasso, mas seu processo não está definido para incorporar novas ideias ou feedback que possam mudar a imagem final (para melhor, é claro). É aí que você pode usar uma abordagem de cascata.
Mas quando você pinta iterativamente, pode fazer alterações com base no feedback inicial, em novas ideias ou até em novas lições (essas cores não combinam!) em vez de pintar em uma ordem planejada e incremental. Essa abordagem é mais ágil.
Veja um indicador visual desses dois processos de pintura:
Imagem com base no trabalho de Jeff Patton, usada com autorização, jpattonassociates.com
Complexidade do trabalho
Agora você sabe que processos diferentes são melhores para diferentes tipos de trabalho. Então como você determina qual processo é o melhor para você e sua equipe?
Ao tentar escolher um processo de fluxo de trabalho, faça estas perguntas.
- O quanto sabemos sobre o projeto em questão?
- Qual é a clareza dos objetivos e requisitos do projeto?
- A solução é bem clara e definida?
- Qual é a experiência da equipe e das partes interessadas com essas metodologias?
- Qual é o grau de complexidade do trabalho?
Quando escolher cascata
Trabalho simples:
- O trabalho é simples e previsível.
- Qualquer um pode determinar como concluir o trabalho.
Trabalho complicado:
- O trabalho é previsível, mas exige experiência.
- O trabalho pode ser automatizado.
Quando escolher ágil
Trabalho complexo:
- O trabalho é baseado em risco, inovação e feedback consistente.
- Você quer experimentar algo, ver como funciona e mudar de curso de acordo com novas lições aprendidas.
- Você está fazendo novos produtos, softwares e serviços e está fazendo coisas que nunca foram feitas antes.
Como dimensionar o Salesforce do modo ágil
No momento, a liderança da Salesforce iniciou um piloto para implementar práticas ágeis em várias equipes. Houve alguma resistência, mas os executivos da Salesforce apoiaram o conceito e, em 2006, a equipe de tecnologia e produtos da Salesforce se reorganizou em uma equipe de desenvolvimento ágil.
Como ela ficou? Bem, fizemos o seguinte.
- Adotamos uma nova mentalidade de resultado
- Implementamos processos padronizados
- Abraçamos os princípios Lean (falaremos sobre isso mais tarde!)
- Padronizamos o que significa "trabalho concluído"
Nossa nova mentalidade ágil
O que é exatamente esse processo ágil? Para simplificar: ágil é o termo geral para diversas práticas, processos, estruturas, princípios e valores técnicos que pedem flexibilidade em fluxos de trabalho e alterações iterativas no produto.
É uma abordagem iterativa de trabalho em que as equipes criam resultados gradualmente desde o início do projeto, em vez de tentarem entregar um produto acabado no final. O método ágil ajuda no alinhamento entre equipes, impulsiona a qualidade e obriga todos a medir e gerenciar o progresso a fim de gerar mais valor para os clientes mais rapidamente.
Ele funcionou perfeitamente para a Salesforce, pois estávamos procurando resolver nossas dificuldades de comunicação e dimensionamento.
Nosso novo processo ágil: um olhar a 15 km de distância
Um dos processos ágeis que optamos por implementar na Salesforce é o Scrum, e apoiamos esses com princípios específicos que definiram como trabalhamos hoje.
O que é Scrum?
Scrum é um processo com papéis, reuniões e resultados definidos que fornecem a estrutura para oferecer valor de alta qualidade a nossos clientes mais rapidamente.
Por que adotamos o Scrum?
O Scrum nos oferece uma estrutura flexível para descobrir o que funciona e não funciona com nossos produtos e fazer alterações de acordo com isso. Com o Scrum, todos têm responsabilidades e expectativas compartilhadas em relação ao trabalho que estão fazendo.
Como é o processo de Scrum na Salesforce?
Bem, quando o adotamos, 150 pessoas foram organizadas em pequenas equipes multifuncionais, trabalhando em iterações curtas (chamamos de sprints). O objetivo era estabilizar a entrega e organizar nosso processo. Atualmente, a maioria das equipes de nuvem da Salesforce usa alguma variação do Scrum.
O que são princípios Lean?
Também adotamos os princípios Lean. Eles são sete afirmações que descrevem nosso fluxo de trabalho e processo de entrega. Eles refletem nossa cultura Ohana, destacando como as pessoas trabalham melhor em conjunto a fim de promover nossa estrutura para o sucesso. Abordaremos tudo com mais detalhes mais tarde.
A nova definição de trabalho "concluído"
Agora que tínhamos uma nova forma de trabalhar, as equipes podiam iterar seu processo com êxito enquanto aprendiam novas informações sobre o fluxo de trabalho e o produto. Mas como sabíamos que tínhamos realmente concluído os itens de trabalho?
Simples. Criamos uma definição padrão de concluído (DoD) em todas as equipes de tecnologia e produtos para que todos pudessem saber explicitamente quando algo está...bem...concluído!
Veja aqui outra hipótese a se considerar: vamos supor que haja uma nova funcionalidade de produto que você precise criar. Você atribui essa nova tarefa à sua equipe e pede a ela para implementá-la este mês. Eles fazem isso e seguem adiante. Depois de alguns meses, o item de trabalho concluído ressurge com novos problemas. Talvez haja reclamações de clientes porque as integrações não foram totalmente testadas. Talvez os problemas de segurança não tenham sido resolvidos ou o desempenho não tenha a qualidade esperada. Conclusão: o item de trabalho não foi realmente concluído, pelo menos não o suficiente para permitir a implantação.
Nossa definição de concluído é um conjunto de diretrizes que determina tudo o que uma equipe deve fazer antes de poder considerar o trabalho concluído. A criação de um padrão para isso é essencial para manter um de nossos principais valores de vendas: confiança.
Resumindo
Sempre nos perguntamos: "estamos fazendo a coisa certa do jeito certo?" É assim que mantemos nossos clientes no centro de tudo o que fazemos.
O rigor do processo de Scrum, juntamente com a mentalidade ágil e enxuta, é essencial para melhorar nossa entrega e garantir lançamentos mais fáceis. Isso é fundamental, já que a Salesforce tem três grandes lançamentos anuais para nossos clientes.