imageNesta semana de 04 a 08 de março estou em Chicago fazendo algo que chamam de PSD TTT (Professional Scrum Developer Train The Trainer). É um curso restrito da Scrum.org para formar e selecionar potenciais novos instrutores para o curso de Professional Scrum Developer.

Hoje, depois de voltar do terceiro dia de curso, peguei-me refletindo sobre toda a bagagem de informação que recebi nestes três primeiros dias – e, em especial, sobre o que me trouxe até aqui.

Provavelmente a maioria dos leitores deste blog não deve ter a menor ideia disto, mas já ministro treinamentos há quase 20 anos. Aliás, é bem engraçado lembrar que meus primeiros treinamentos de ferramentas de desenvolvimento foram os cursos de dBASE e Clipper na SOS Computadores em 1994… Smile

O fato é que, apesar de ministrar treinamento há tanto tempo, nunca fui formalmente um instrutor/professor “profissional”. Minha profissão, no sentido estrito da palavra, sempre foi a de programador (que já virou analista programador, desenvolvedor, engenheiro de software… nem sei mais do que chamamos hoje em dia Open-mouthed smile). Lecionar, para mim, sempre foi muito mais uma paixão –  um hobby remunerado  – do que um trabalho, visto que nunca foi minha atividade principal.

Assim, o melhor dos mundos para mim sempre foi juntar minhas duas paixões – desenvolver sistemas e  lecionar – em uma só: treinar pessoas a se tornarem (melhores) desenvolvedores. Certamente foi essa a motivação que me levou a começar a estudar ALM (que, em 2005, ainda chamávamos de SDLC) e TFS. A ideia de compartilhar experiências com as pessoas ao meu redor, dividindo o pouco que eu sei e aprendendo ainda mais no processo de ensinar sempre me fascinou.

Entretanto, quando me tornei efetivamente um consultor de ALM, ajudando times e empresas a melhorar seu ferramental de suporte ao processo de desenvolvimento, ficou óbvio que havia uma peça ausente no quebra-cabeças. Não fazia o menor sentido melhorar o ferramental à disposição do time se eles não sabiam como usa-lo. E não fazia o menor sentido ensiná-los a usar o ferramental se eles não fossem capazes de transcender a ferramenta para chegar ao que realmente interessa: entregar software de qualidade (no sentido mais amplo da palavra qualidade).

Durante todo meu tempo como programador sempre tive o infortúnio de atuar em times disfuncionais. Não quero, com isso, desmerecer as pessoas com quem trabalhei – pelo contrário! Trabalhei com alguns caras realmente brilhantes. Mas talentos individuais não fazem, necessariamente, um bom time. E mesmo um bom time, por sua vez, não consegue ir muito longe se a cultura que o cerca não faz nada além de sufocá-lo.

Foi na busca por alternativas que me deparei com as Práticas Ágeis (ou aquilo que chamamos simplisticamente de Agile). Foi óbvio que essa era a peça que estava faltando. De nada adiantavam os processos e as ferramentas de ALM (que são úteis, claro!) se não dermos a devida atenção às pessoas e as interações entre elas.

Depois dessa epifania, que pode soar até idiota agora mas que estava longe de ser óbvia, ficou claro que de nada adiantaria ajudar meus clientes a adotar o ferramental de ALM sem trazer junto as práticas de engenharia de software do XP (Extreme Programming) e as práticas de gestão de projetos do Scrum para acabar com os (aparentemente insolúveis) problemas de desenvolvimento de projetos/produtos complexos. Ou seja, o “mundo perfeito” seria um time capaz de utilizar as melhores práticas de engenharia de software, amparadas por valores fundamentais como Transparência, Inspeção e Adaptação (tendo por trás o devido suporte do ferramental que diminui o trabalho braçal e garante a consistência e previsibilidade do resultado) para entregar valor de maneira contínua a seus clientes.

Como resolver isso, então? Como colocar um time no caminho correto, vendo seus projetos de maneira mais ampla e não apenas focando num pedaço da solução?

A resposta à essa pergunta para mim, hoje, é:

“O curso Professional Scrum Developer é o primeiro, e com isso talvez o mais importante, passo na direção correta.”

Extraído do site da Scrum.org, o curso de Professional Scrum Developer é:

The Professional Scrum Developer course teaches students how to work in a team, using modern software engineering practices and your specific technology platform to develop an increment of potentially releasable functionality. All of this is done as iterative incremental development within the Scrum framework.

O curso Professional Developer Scrum ensina os alunos a trabalhar em equipe, usando práticas modernas de engenharia de software e sua plataforma de tecnologia específica para desenvolver um incremento de funcionalidade potencialmente entregável. Tudo isso é feito como desenvolvimento iterativo incremental dentro do framework Scrum.

Note que a proposta do curso é mostrar tudo de maneira integrada, exatamente como deveria acontecer na vida real: as práticas de engenharia (como TDD, CI, Refatoração, ATDD…) suportadas pelo ferramental (que no caso do PSD.NET é o Visual Studio e o TFS) e guiados pelo Scrum.

Estar aqui em Chicago, participando deste TTT, é uma oportunidade única para mim de poder também ministrar esse treinamento no Brasil (hoje só o Giovanni Bassi o tem ministrado).

Dividir um pouco das minhas experiências, poder aprender ainda mais com as experiências dos alunos – e ainda por cima poder ajudar essas pessoas a melhorar seu dia-a-dia em suas empresas para entregar mais software de qualidade e principalmente melhorar sua qualidade de vida. Não vejo a hora!!!

Um abraço,
Igor

Igor Abade

Igor Abade V. Leite ([email protected]) é Microsoft MVP (Most Valuable Professional) de Visual Studio ALM desde 2006. Palestrante em diversos eventos da comunidade de desenvolvimento de software (TechEd Brasil, The Developers’ Conference, DevOps Summit Brasil, Agile Brazil, Visual Studio Summit, QCON e outros), é também autor de artigos em revistas e sites como o MSDN Brasil. Desde março de 2011 é um dos sócios da Lambda3, uma consultoria especializada em ALM, desenvolvimento de software e treinamentos. Siga-o no Twitter @igorabade.