Agiliti - Treinamento e Desenvolvimento de Software

Desenvolvimento Ágil na Crivo

A Crivo desenvolveu um software, que é vendido como serviço, que veio a se tornar a melhor e mais completa solução para aperfeiçoar e automatizar a concessão de crédito e a administração de risco nas organizações.  Ao maximizar a performance das áreas de análise de crédito e risco de seus clientes e investir na constante evolução do software que tem seu nome, a Crivo conquistou credibilidade e sucesso junto a dezenas de empresas atuantes em diferentes segmentos de diversos mercados.

Quando falamos de mudança em uma empresa, o que me vem a mente é um processo dialético. O processo dialético consiste em um modo esquemático de explicação da realidade que se baseia em oposições e em choques entre situações diversas ou opostas. Diferentemente do método causal, no qual se estabelecem relações de causa e efeito entre os fatos, o modo dialético busca elementos conflitantes entre dois ou mais fatos para explicar uma nova situação decorrente desse conflito. Os elementos do esquema básico do método dialético são a tese, a antítese e a síntese. A tese é uma afirmação ou situação inicialmente dada. A antítese é uma oposição à tese. Do conflito entre tese e antítese surge a síntese, que é uma situação nova que carrega dentro de si elementos resultantes desse embate. A síntese, então, torna-se uma nova tese, que contrasta com uma nova antítese gerando uma nova síntese, em um processo em cadeia infinito. A dialética busca, não interpretar, mas refletir acerca da realidade. Por isso, seus três momentos (tese, antítese e síntese) não são um método, mas derivam da dialética mesma, da natureza das coisas. O pensamento dialético também nos permite entender a natureza daquilo que chamamos melhoria contínua. Analisaremos a experiência do desenvolvimento ágil na Crivo à luz do pensamento dialético.

Tese

Quando cheguei  na Crivo não vi nada diferente do que já estava acostumado a ver em outras empresas: já haviam tentado,sem sucesso, implantar um processo de desenvolvimento de software que mais se aproximava da maneira tradicional.

Antítese

Como o grande obstáculo é a cultural, criamos um plano para aculturamento da empresa:

Workshop completo de Scrum para a equipe de desenvolvimento.
Introdução ao pensamento ágil para a empresa toda.
Orientação sobre requisitos e testes ágeis para a equipe de desenvolvimento.

Isso foi o suficiente para criar uma motivação interessante, facilitando sobremaneira o trabalho cotidiano.

Contratamos uma consultoria para ajudar nos testes do legado e na automatização de testes. Por não conseguirmos alcançar os objetivos esperados, agregamos a equipe pessoas aptas a cumprirem este papel. Esta iniciativa trouxe bons resultados. Pessoas que conheciam bem o produto foram convidadas para  beta-testers, e periodicamente ao final de cada sprint faziam testes exploratórios. Foram conquistados progressos também com a automatização dos testes de performance.

Depois de alguns meses contratamos dois excelentes workshops para preencher algumas lacunas técnicas da equipe:

Workshop de modelagem ágil e design patterns ministrado pelo Rodrigo Yoshima
Workshop de extreme programming ministrado pelo Klaus Wuestefeld

Outro fato memorável foi um dos sócios-diretores da empresa ter assumido o papel de product owner, ele estava sempre presente e tinha poder de decisão. Portanto tivemos todo o apoio da direção da empresa para tomar decisões e realizar os investimentos necessários.

Depois de termos nos deparado com as dificuldades de produção e engenharia de software realizamos pilotos com ferramentas de controle de versão, integração contínua e testes de aceitação.

Estabelecemos medições para avaliar a adoção de práticas ágeis e do ambiente necessário para que elas acontecessem.

A equipe desenvolveu seus próprios workshops técnicos, que eram ministrados mensalmente por algum membro da equipe que estava disposto a estudar um assunto específico para disseminar conhecimento.

Tinhamos sprints de 3 semanas, verificamos que o feedback demorava muito e o risco era grande, reduzimos para 2 semanas, e depois para uma. Mas o ambiente ainda não estava preparado para produção de uma semana, então voltamos para duas semanas.

Notem que esta é uma típica mudança realizada com base em inspeção e adaptação, discutida ao final dos sprints, nas retrospectivas.

Com seis meses para a feira mais importante do setor, fizemos um workshop de requisitos baseado em elevator statement para construirmos um backlog de qualidade. Tivemos problemas com a granularidade das User Stories, causa principal de sessões de planejamento um pouco mais longas do que gostaríamos.

Ao mesmo tempo em que a equipe trabalhava em funcionalidades novas, reservava parte da Sprint para corrigir bugs do legado.

Melhoramos a informação visual, encomendamos um quadro de kanban magnético, com um layout adequado para o acompanhamento das User Stories do sprint e dos impedimentos, nele colocamos também os gráficos de burn-down.

Ressalto a importância de visitar outras empresas que utilizam métodos ágeis, participar de eventos e se possível promover dojos convidando outros profissionais. Uma empresa que deu gosto de conhecer foi a PAGGO, trabalham com métodos ágeis a mais de 4 anos. O ambiente de confiança e transparência é digno de nota, sente-se uma certa leveza no ambiente, que raramente encontramos em empresas que desenvolvem software. Lá observamos como as principais práticas de engenharia de software ágeis são levadas à sério.

Outra empresa que inspira bastante é a BLUESOFT, que desenvolve soluções web para Gestão de Varejo.

Passamos então a adotar algumas práticas de extreme programming como pair programming, test driven development e refactoring, ritmo sustentável e trabalho energizado.

Para adequar o ambiente ao pair programming as mesas foram reformadas, sempre com uma máquina e dois monitores, quando necessário um dos pares solicitava um notebook para realizar uma pesquisa, ou verificar um código qualquer. No início houve uma certa resistência, com o tempo a equipe verificou empiricamente os benefícios desta prática: códigos com mais qualidade, desenvolvimento mais divertido, disseminação de conhecimento. Sem distração, o trabalho em par torna-se mais cansativo, o que exige ritmo sustentável.

Percebemos que as práticas ágeis devem ser aplicadas de forma sistêmica, o seu resultado só pode ser obtido com uma abordagem própria de sistemas complexos, ou seja, a sinergia entre as práticas é que traz resultados profícuos.

Quando alguém era contratado para uma equipe, todos os integrantes desta equipe entrevistavam o candidato em pares, utilizando um time-box de 15 minutos, assim todos contribuiam para uma percepção mais abrangente, além do que se aceitassem o candidato, a pessoa se sentiria mais a vontade no primeiro dia de trabalho. Se alguma dupla reprovasse a pessoa,  ele não seria contratado. Obviamente cabe dizer que havia uma sintonia grande entre a equipe e o ScrumMaster.

Constatamos que trabalhar com equipe menores é mais produtivo, equipes de no máximo 6 pessoas.

Os conflitos se intensificaram, porque o feedback e a comunicação se intensificou, foi necessária muita atuação do ScrumMaster para facilitar o diálogo e manter o foco.

Alguns desenvolvedores não se adequaram ao desenvolvimento ágil e seus valores, e inevitavelmente deixaram a empresa.

As comemorações também foram importantes para a equipe e para a empresa, ao final do 10o. Sprint mandamos estampar camisetas, ao final do 24o. Sprint , quando entregamos uma versão do produto em 6 meses, com redução do time-to-market de 18 meses, mandamos fazer uma placa onde constavam o nome de todos.

Síntese

A utilização do Scrum no dia-a-dia trouxe o seguintes resultados:

Feedback intenso, priorização correta do que tem que ser feito, atribuição de valor de negócio para as demandas, visibilidade das pendências, realidade compartilhada, solução rápida de problemas, mais trabalho em equipe, equipe motivada, estabelecimento de metas factíveis em curtos ciclos de desenvolvimento, time-to-market, percepção de aprendizado e melhoria contínua.

Isso se consegue com planejamento das Sprints com a participação da equipe; com Product Backlog estimado e priorizado, com Product Owner presente, que conhece os produtos e o cliente, e que tem poder de decisão; com equipe auto-organizada e comprometida, que estima e trabalha para atingir a meta estabelecida, que faz reuniões diárias para saber o que fizeram no dia anterior e o que farão no dia corrente, se tem impedimentos ou não; com ScrumMaster que administra conflitos, resolve impedimentos e estimula a equipe, motiva, que protege a equipe para que trabalhe tranquila na Sprint, sem interrupções, que trabalha em conjunto com o Product Owner para priorizar o que deve ser feito com bom senso e valor de negócios.
Depois de cada ciclo a equipe mostra o que fez, e faz uma retrospectiva para saber o que deu certo e errado, e o que pode ser modificado na próxima Sprint para melhorar a performance da equipe ou o ambiente de trabalho.

A empresa melhorou seu time-to-market, produzindo mais e com qualidade.

Outros departamentos se interessaram em conhecer e utilizar o SCRUM como o treinamento e o suporte.

A todo momento houve reflexão e empenho por parte de todos, o que nos faz lembrar de que a matéria-prima dos métodos ágeis são as pessoas.

Esta experiência na Crivo mostra como a própria engrenangem desta forma de se trabalhar e ver o mundo, se bem aplicada, nos leva na esteira da melhoria e aprendizado contínuos, a atingir imodestos índíces de satisfação, eficácia e eficiência.
 
You are here  : Home

visite-nos em :

Ning Delicious WordPress Twitter

certificações :

Scrum Master Scrum Product Owner

contatos :

Fale Conosco Skype MSN