A Arte Perdida de Testar o Software

por Jorge Diz

Recentemente, assisti na USP a apresentação de Fred Brooks sobre teletrabalho, como parte do lançamento da primeira edição em português do seu livro "O mítico homem mês", lançado originalmente em inglês no longínquo ano de 1975.

Na capa, uma chamada: "Leitura obrigatória para todos os gerentes de projeto de software". Depois de 34 anos, finalmente os gerentes de projeto de software não têm mais a desculpa da falta de domínio da língua inglesa para deixar de ler uma obra relevante para todos os que já implantaram em produção algo mais que um "Hello, world". Comprei uma cópia da versão traduzida, devidamente autografada.

Fred Brooks foi gestor do projeto do System/360 da IBM (o primeiro sistema operacional digno desse nome) no início da década de 1960, e o livro é em grande parte fruto das lições aprendidas naquele projeto, que provavelmente consumiu mais tempo e dinheiro que qualquer outro projeto de software até então. Para a IBM, foi uma aposta arriscada em cima de tecnologia nova, que deu certo.

Como testes são a minha praia, perguntei ao autor como foram feitos os testes daquele projeto. Fiquei surpreso quando ele me disse que utilizavam uma área de 1 acre (~40000 m2) exclusivamente
para testes, cheia de computadores e dispositivos (carísssimos na época). Havia centenas de roteiros de teste que eram executados em diferentes configurações de equipamentos, o tempo todo.

A pergunta que me faço é: como se perdeu essa arte ? Testes de software foram negligenciados durante muito tempo: o primeiro livro relevante foi publicado em 1979. A revelação de Fred Brooks me fez sentir como um renascentista recuperando um manuscrito árabe contendo algum tratado grego clássico, sumido nas trevas da Europa medieval.

Em 2009, mais de 4 décadas depois do System/360 ter sido lançado, estamos começando a acordar para a importância dos testes de software. Por que em todos esses anos em que o software invadiu todas as áreas do nosso dia a dia não se deu a devida importância a esta disciplina ?

A esmagadora maioria dos cursos de graduação na área de TI não inclui uma disciplina de teste de software. A ALATS-SP (Associação Latinoamericana de Teste de Software - filial São Paulo) iniciou uma campanha para concientizar a comunidade academica sobre a importancia dos testes. É uma iniciativa muito positiva, com a qual pretendo colaborar, mas o que chama a atenção é a necessidade dela. Fazendo uma analogia, seria como o Conselho Regional de Medicina ter que fazer palestras explicando que é necessário lavar as mãos antes de entrar ao centro cirúrgico.

Fica a semente para o debate. Alguém pode contribuir uma explicação ?

PMI e Scrum Gap de Paradigmas

Depois de ouvir o podcast de Ricardo Vargas, Chairman do PMI, sobre Agile Project Management ficou claro que será necessario um trabalho grande para continuar desmistificando Scrum e Agile, agora não porque não exista interesse ou demanda para adopção o que acontecia a muitos anos quando tivemos a coragem de começar fazer os primeiros treinamentos de scrum no pais, justamente pelo contrario.

Como o interesse esta crescendo um dos aspectos que podem ser banalizados mais rapidamente é de que para poder usufruir dos benefícios de Scrum e Agile é necessário uma mudança de paradigma, e é esse nosso principal desafio.

Eu vejo com muito bons olhos que aqueles que de alguma forma tem pautado suas carreiras a gestão de projetos (os gestores de projetos) e são associados do PMI, e tem um objetivo de avançar a ciência da gestão de projetos, possam começar a ser expostos a métodos inovadores de gestão como Scrum, que tenho certeza vai aumentar muito o valor da sua caixa de ferramentas, porem minha experiencia me diz que temos que tomar cuidado com um aspecto fundamental.

Alguns desafios pela frente

Gestores de projetos sobre tudo que passam numa certificação onde existem perguntas extremamentes claras sobre qual deveria ser a forma de pensar correta sobre um assunto vão provavelmente manifestar uma elevada taxa de concordância sobre algumas premissas fundamentais, certamente entre elas existira diferente capacidade ou habilidade porem algumas crenças, verdades e premissas fundamentais serão similares.

Muitos dos gestores que tenho feito coaching, e tinham recebido treinamento formal em gestão tradicional de projetos, apresentavam mais o menos a mesma forma de pensar sobre ser possível ou não detalhar todas as atividades de um plano de projeto para desenvolvimento de software.

O que tenho visto é que existe um gap entre o discurso e a pratica, ou seja as teorias esboçadas e as teorias em uso tem divergencias muito grandes e isso pode ser a causa de muitos problemas, como a falta de reflexão sobre alguma premissa fundamental, e assim a falta de aprendizado.

Peter Senge, autor do livro A Quinta Disciplina, fala que o problema das organizações não é que não conseguem resolver os seus problemas, o problema é que não conseguir "enxergar" seus problemas, o seu paradigma os cega.

Como as teorias aprendidas acabam sendo reforçadas já que são as respostas certas para exames de certificação, elas passam a ser tratadas como "verdades" e como Scrum e Agile partem de premissas em alguns casos opostas da gestão tradicional é necessário quebrar a ilusão que foi criada, para permitir o aprendizado de uma ferramenta que tem como premissa outras "verdades" que conflitam com aquelas adquiridas anteriormente.

O nosso trabalho tem sido basicamente nos últimos anos criar duvida suficiente das "verdades" aprendidas porem que estão criando problemas não deixando as pessoas conseguirem olhar para a realidade e refletir sobre os problemas que estão tendo realmente.

Conceitos para complementar o podcast do Ricardo

Aqui vão alguns comentários sobre o podcast que creio que podem ajudar a entender melhor e complementar o que Ricardo disse.

Ser ágil não se trata de velocidade, se trata sobre ser enxuto. Ou seja imaginem algo que tem muita massa, pode ganhar extrema velocidade e ser muito rápido, porem terá muita inercia e terá dificuldade de mudar de direção rapidamente sem muito esforço.

Então a rapidez na verdade não é o objetivo de Scrum e sim reduzir a massa.

Para poder ser ágil e flexível será necessário reduzir a massa, ficar mais enxuto, e isto a gente faz em Scrum usando o conceito de One Piece Flow (criar um fluxo de produção de uma única peça) por exemplo se faz fluir um único requisito funcional desde o detalhamento ate o teste funcional no menor tempo possível, fazendo que toda a equipe se concentre na menor quantidade possível para abaixar o estoque de trabalho em progresso (um conceito de Lean - Toyota - Just in Time) para poder responder a mudanças sem stresse.

O desafio para quem passou por treinamento formal em gestão tradicional de projetos será poder re-avaliar as premissas e crenças fundamentais, digo isto depois de ter reciclado centenas de pessoas formalmente treinadas em gestão de projetos tradicionais, não como uma hipótese e sim como um fato, nosso maior desafio é como o que tive com orientação a objetos a uns 22 anos atras, mudar o meu paradigma (o sistema de verdades, credenças e premissas) que lamentavelmente nos humanos não fomos projetados para mudar muito frequentemente na nossa vida.

Existem milhares de implementações meia boca de Lean, existem milhões de analistas e desenvolvedores OO que programam em linguagens OO porem continuam pensando de forma estruturada, como eu já vi esta historia varias vezes o desafio maior é que não tenhamos milhares de PMPs usando Scrum sem mudar o seu paradigma, sem realmente conseguir retirar todo o valor da ferramenta já que para poder retirar a maior quantidade de valor é necessário pensar diferente.

Uma pergunta para develar uma premissa

No Scrum Gathering apos a palestra do Ricardo Vargas, eu Juan Bernabó, acabei fazendo uma pergunta chave, conhecendo as premissas dos gestores tradicionais eu fiz só uma pergunta para tentar entender melhor se o discurso era um discurso de quem tinha passado por um entendimento profundo, mudança de paradigma, ou simplesmente de quem ainda so conhece os artefatos mais não as premissas fundamentais de Scrum.

A pergunta foi "O PMI parece ser muito centrado no papel do gestor de projetos, certo? Porem o PMI esta preparado para um mundo de equipes auto-geridas?"

O Ricardo contesto de forma totalmente transparente uma "verdade" que ele tem "experimentado" e que se eu não tivesse tido tanta experiencias reais com Scrum também teria, ele disse que a idéia de equipes auto-geridas é romântica, mais nunca viu uma funcionando direito, logico sem Scrum e Ágil eu vi uma porem era uma raridade.

Eu já transicionei mais de 80 equipes auto-geridas, por isso tenho plena convicção, porem sem essa experiencia seria difícil ter tanta certeza, sobre todo quando usamos processos que não estão ajustados para a auto-gestão, e que os ciclos de controle são muito grandes.

Pela primeira vez com Scrum tenho a oportunidade de criar em larga escala equipes auto geridas, que se comportam relativamente dentro de parâmetros, e que tem um resultado muito superior a qualquer outra forma de organização que eu já tinha visto.

Pela resposta do Ricardo deu para entender que ainda não foi exposto e ainda precisara passar por uma mudança de paradigma.

Por exemplo da para entender claramente o que um gestor tradicional acredita sobre times auto gerenciados, como ele nunca viu funcionando de forma eficaz então deve ser porque é necessário um time extremamente maduro.

Porem a auto gestão só é possível não porque as pessoas são muito maduras, mais porque usamos de alguns mecanismos que permitem que um grupo de pessoas normais (na media) tenham comportamentos emergentes (do sistema) inteligentes, isso se chamam gestão empírica com ciclos curtos (2 a 4 semanas), equipe holística sem papeis que permite que os pares possam se auto-regular, e feedback binário e concreto através da demonstração de produto pronto que é facilmente verificável, que passa nos testes de aceitação automatizados por exemplo.

Scrum nada mais é do que o nosso velho amigo o PDCA levado extremamente a serio por exemplo, 1 dia de Sprint "Planning" (Plan), 8 dias de "Sprint" (DO), 4 hrs. de Sprint "Review" (Check), e 2 hrs. de Sprint "Retrospective" (ACT).

O controle na gestão empírica não esta no processo e sim em definir claramente a entrada (item do backlog) e verificar rigorosamente a saída (features prontas testadas), e não mexer no processo durante o momento onde o processo esta executando (Sprint), só ajustar o processo depois de verificar a saída (ou seja no Sprint Retrospective).

A outra diferencia é que o papel das equipes mudou de co-adjudantes para papeis principais, elas planejam taticamente no Sprint Planning, e melhoram seu processo no Sprint Retrospective ao invés de simplesmente executar planos planejados por algum gestor, e ver seus processos melhorados por alguma área ou responsável por processos.

Como vemos Scrum esta sendo bem aceito inclusive na comunidade de gestão de projetos tradicional, logico não sem algumas preocupações, o papel do gestor de projetos como o conhecemos em Scrum muda de forma radical, PM irão precisar adquirir novos skills, novas formas de pensar, é muito mais legal e interessante do que assustador, porem precisa se ter consciência que para termos resultados no mundo ágil uma transição será necessária.

Já hoje e mais no futuro o que ira agregar valor é ser aquele facilitador que saberá criar o ambiente certo e os processos certos para que equipes possam se auto-gerir, um profissional com estas habilidades nunca deixara de ter valor no mercado.

Boa noticia

Donella Meadows fala em seus 12 pontos de alavanca para intervir num sistema
que o paradigma é um dos mais fortes, porem mais forte do que o paradigma é o poder de transcender a paradigmas, como a física clássica não deixou de ser útil nem perdeu validade com o advento da física quântica, a gestão tradicional e muito do seu corpo de conhecimento não perdeu relevância o problema é tentar usar uma única ferramenta (paradigma) para tentar resolver todos os problemas.

Teamware Vaga de Estagio em Design Gráfico / Web 2.0

Estamos montando equipes de desenvolvimento de produtos Web 2.0 e temos oportunidades para designers gráficos que sejam flexíveis, adorem aprender, resolver problemas e gostem de desafios.

O candidato selecionado terá oportunidade de criar a cara de produtos e serviços que poderão ser usados por milhões de pessoas, por isso precisa ter consciência do seu papel de tornar o mundo mais simples, mais legal e mais fácil de usar. Como somos uma empresa pequena e não cremos que o melhor seja especializar as pessoas num trabalho restrito preferimos contratar pessoas que não gostem de fazer todo dia as mesmas coisas.

A nossa empresa é pioneira na adopção de abordagens ágeis no Brasil (Scrum / XP) e por isso temos uma filosofia muito ligada a ter processos muito enxutos, trabalho muito pragmático voltado para a ação e simplicidade.

Não importa se a única experiencia que o candidato tem é de fazer coisas por hobby, nos também começamos assim. Nos acreditamos em treinamento no trabalho, puxado por projetos, ou seja acreditamos que as pessoas aprendem e melhoram conforme são expostas a problemas e desafios e elas procuram soluções e no caminho aprendem, melhoram e realizam.

Estamos buscando designers que gostem de trabalhar em equipe, que tenham disciplina e autocontrole para trabalhar em equipes autogeridas, tenham facilidade de aprender novas técnicas, ferramentas e tecnologias, gostamos de estar na crista da onda, não tenha medo do desconhecido e curtam desafios.

Valorizamos algumas características nas pessoas que trabalham com a gente: sejam flexíveis, que não tenham medo de aprender e de ser desafiados, multidisciplinares, curiosas, que possam lidar com a interteça e a ambigüidade e possam se apaixonar pelo que fazem.

  • Design de Interfaces de usuário Web 2.0
  • Design de Logos / Material Gráfico / Didático
  • Desenvolvimento de vídeos e vinhetas para Internet
  • Design de Camisetas / Materiais Promocionais
Interessados devem preencher este formulário com suas informações.

Obrigado,
Equipe Teamware

Scrum y Agile son temas de Conferencia y Workshop en Buenos Aires

El consultor y especialista de Teamware, Juan Bernabó, estará en Buenos Aires con el seminario "Desmitificando Scrum & Agile". El evento esta destinado a profesionales de Tecnologia de la Informacion interesados en conocer los fundamentos de Scrum. Seran abordados los pasos para la implementacion de Scrum en equipos de desarrollo de software y como las empresas podran beneficiarce al adoptar esa metodologia.


El encuentro sera el dia 26 de Febrero a las 18hs en el NH Crillon, Salon Canciller, ubicado en Av. Santa fe 796 los interesados se pueden inscribir gratuitamente hasta las fechas correspondientes online.


El Workshop sera dictado los dias 27 y 28 de 8.30 a 18hs, mayor informacion aqui.


Tambien existe la posiblidad de coordinar charlas in company.

Scrum ganha mercado no Brasil

RIO - Um método de trabalho, inicialmente utilizado no desenvolvimento de softwares, está virando febre entre empresas brasileiras. Trata-se do scrum, conceito que chegou ao Brasil há três anos e agora começa a chamar a atenção, inclusive de áreas além da computação.

read more | digg story

About us

Teamware é uma empresa nascida da visão que a industria de TI esta precisando ser reformada.
Que a Gestão 1.0 (da era industrial) esta sendo o maior gargalo para a mudança de paradigma necessária para elevar a eficacia em projetos de software.
Estamos trabalhando a vários anos para transformar organizações e implantar um novo modelo de gestão, a Gestão 2.0 (da era do conhecimento) e crescendo a nossa influencia na industria de TI. Para isso usamos abordagens ágeis, scrum, xp, toc, lean para realizar a visão e aumentar o valor que TI agrega para os profissionais, organizações e a sociedade como um todo.

Últimas Fotos