Campanha: Programe Gerente !!!


Alow Brasil !!!

Gostaria de lançar uma campanha no mercado de desenvolvimento de software, é a campanha: Programa Gerente !

Trata-se de uma campanha muito simples, mas difícil de aplicar, então vamos precisar de muita colaboração de todos para que ela aconteça.

Quase todo dia eu vejo um gerente reclamando de que sente muita falta da “época em que programava”, porque naquela época ele não tinha que fazer tanto trabalho inútil e que tinha uma visão muito melhor do resultado daquilo que ele construia.

A situação é a seguinte: Quem está numa posição gerencial acaba passando horas (as vezes o dia todo) trabalhando feito louco, mas se alguém perguntar o que ele fez nesse tempo, muitas vezes a resposta será: NADA !!! E o pior é que verdade, as atividades de gestão são complicadas e acabam não dando visão alguma de que algo realmente ficou pronto.

Se você é um gestor, sabe exatamente do que eu estou falando. O problema é isso acaba desmotivando profissionais e causando altos níveis de stress. Outro problema óbvio é que quanto mais um líder se distancia da realidade técnica no dia-a-dia, mais ele perde. Pessoalmente, eu nunca acreditei na história de que quanto mais se cresce na carreira, menos técnico você fica. Acredito que um profissional que siga para uma posição executiva tenha que generalizar mais a sua visão, mas isso não significa que ele tenha obrigatoriamente que jogar fora seu lado técnico.

Convivo com alguns executivos hoje que acabam sendo cegos o bastante para não olhar com bons olhos outros executivos que são técnicos e especialistas. Para esses, o lado técnico precisa necessariamente morrer para que o lado “administrador” domine. Que piada !!! Os melhores executivos com quem já tive a honra de trabalhar são técnicos e a mesma coisa serve para gerentes, líderes, coordenadores, etc.

Voltando à campanha, a idéia então é muito simples: Vamos fazer com que o gerentes, coordenadores, líderes e cia participem de algum projeto – por menor que seja – programando alguma coisa. Pode ser uma tela, uma rotina, um componente, não importa. O importante é que o “chefe” se envolva na programação e na construção do produto.

Vamos iniciar com isso aqui na Stefanini, ok? Então não dá pra dizer que isso não é aplicável numa grande empresa :) Vamos motivar todos os gerentes de projeto e líderes a dedicar um tempo para participar de um projeto junto com o time de desenvolvimento. A idéia também é que nessa atividade ele seja apenas mais um e não vista o chapeu de gerente.

Se você é um gestor ou coisa parecida, junte-se a nós nessa campanha… recupere aquele conhecimento técnico que você perdeu quando foi para o lado gerencial e que te fazia tão feliz. Você verá como suas atividades de gestão e liderança ficarão muito mais divertidas e darão um retorno muito maior para você, equipe e para sua empresa.

Aos poucos vou atualizar o blog com os resultados dessa experiência, ok?

Grande abraço e nos desejem sorte \o/

André Nascimento


Faz sentido medir indivíduos num time Ágil?


Alow Brasil !!!

A resposta para a pergunta feita no título do artigo – segundo a minha opinião – é não. Claro que não !

Antes de discutirmos o porque dessa afirmação, acho importante estudarmos as origens das atuais medições individuais aplicadas pelos níveis gerenciais nos times de desenvolvimento de software.

Há muitos e muitos anos atrás eu já trabalhei em fábrica – uma de verdade, era de móveis de escritório :) – e lá era responsável por um setor de produção, o de corte de madeira. Era a primeira etapa da linha de produção. Além de liderar este setor e operar a máquina mais cara da empresa, eu fazia parte da equipe de PCP (Planejamento e Controle de Produção) da companhia.

Porque estou citando isso? Porque lá eu vivi de perto a implantação de um processo de linha de produção e de medição x análise da cadeia produtiva. É claro, que nossa indústria de desenvolvimento de software, quando decidiu aplicar os conceitos de fábrica de software tinha que trazer também vários dos processos de medição, análise e avaliação de desempenho utilizados na indústria convencional.

Funcionava mais ou menos assim:

  1. As peças saiam em lote de uma máquina (por exemplo a minha) e iam para uma área de pulmão até que aquele lote fosse pego pela equipe da próxima máquina;
  2. O tempo que um lote ficava parado no pulmão, era medido;
  3. Assim que os operários da próxima máquina registravam a entrada do lote o tempo começava a contar e na liberação do lote tínhamos o tempo gasto nas peças;
  4. Sempre que aconteciam paradas ou problemas (como a regulagem mal-feita de um centro de usinagem, por ex.), eram registradas as ocorrências pelo supervisor de linha;
  5. Esse fluxo era executado para cada máquina da linha de montagem. Se não me falha a memória tínhamos cerca de 8 etapas na linha;”

Ora, este processo funcionava e ao final conseguíamos ter números importantes para melhorar nosso planejamento e controle da produção, como:

  • Tempo médio para produção de um lote, para cada modelo de móvel que fabricávamos;
  • Tempo médio para regulagem de cada máquina da linha, em cada turno de trabalho;
  • Tempo médio de fabricação em cada etapa da linha;
  • Ocorrências de manutenção, erros e outros pontos que paravam ou atrasavam a produção;
  • Número de horas necessárias para fabricação de cada modelo, em cada etapa e em cada turno da fábrica;
  • Finalmente, o valor gasto na produção de cada modelo, baseado é claro no número de horas e atividades gastas pelos operários;

Você percebe algumas semelhanças com indicadores de medição individuais que temos hoje em nosso mercado? Na indústria não eram medidos os times ou então a média do trabalho. Para se chegar aos números médios era necessário medir individualmente. Muitas vezes, não importava se o operário conseguia fazer uma peça de qualidade no tempo viável para entrega de um lote. Importava mais se ele estava dentro do tempo médio da produção. Já vi inclusive esses indicadores serem utilizados para demitir gente que não estava dentro da média !

Para a indústria convencional e suas linhas de produção, essa abordagem funciona de fato. Faz muito sentido esse tipo de medição e indicadores de produção. Infelizmente não é a mesma coisa para desenvolvimento de software. Os indicadores e a forma como eles são captados devem seguir outra abordagem.

Acabamos por implantar esse mesmo modelo de medições e análise e avaliações pessoais utilizado na indústria convencional e empurrando-o a força no desenvolvimento de software. O que utilizamos hoje nada mais é do que uma tentativa de medir a “produtividade” das pessoas num ambiente de desenvolvimento. Neste sentido, eu não acredito que medições individuais devam fazer parte de uma equipe ágil.

Tanto as medições individuais quanto os modelos de premiação / punição devem ser coletivos. Acho que este é um dos pontos positivos de se trabalhar num ambiente ágil.

Quais então são indicadores que fazem sentido numa equipe que trabalha sob cultura ágil? Vamos ver alguns:

  1. Quantidade média de horas/pontos que o time atinge numa iteração;
  2. Taxa de velocidade na implementação;
  3. Número geral de erros entregues;
  4. Metas alcançadas em cada iteração;
  5. Satisfação do cliente /product owner (isso pode ser feito com uma pesquisa, por ex.);

Notem que estamos medindo indicadores do mesmo jeito, só que de uma forma mais superficial. Em resumo, não interessa o que cada um esteja fazendo de forma separada e sim o que o time conseguiu fazer de fato.

Então, você pode me perguntar: ” Mas isso vai deixar as pessoas acomodadas, pois ninguém estará medindo ou gerenciando o seu trabalho? “. Temos que fugir ao máximo do micro-gerenciamento e da ilusão do comando-controle se quisermos alcançar o objetivo de um time auto-gerenciável. O Scrum mesmo nos oferece alguns mecanismos para “medir” individualmente o desempenho de cada membro do time:

  • Reuniões diárias;
  • Sprints Reviews;
  • Sprints Retrospectives;

E quanto a avaliação de desempenho individual, muitas vezes utilizada pelas empresas para aplicação de promoções de cargos e salários, também há outros mecanismos que podem ser aplicados. Pessoalmente eu nunca concordei com o formato  de avaliação de desempenho utilizado pelo mercado. Como podemos medir o desempenho isolado de uma pessoa se ela depende de outras para realizar o seu trabalho?

Esse sistema individual que temos hoje é responsável por promoções descabidas e por muitas vezes entregar o valor do trabalho de muitos para apenas uma pessoa. Então, se você ainda quer utilizar um modelo de avaliação, mas quer começar a pensar em como deixa-lo mais aderente a cultura ágil, faça o seguinte:

  • Utilize os indicadores globais das equipes e projetos onde o profissional participou. Não é difícil traçar uma linha de atuação com essa abordagem;
  • Para medir individualmente, nada melhor do que a velha “avaliação 360″. Neste modelo o profissional é avaliado por pessoas que trabalham com ele no dia-a-dia. Pessoalmente, acredito que essa seja uma das melhores formas de se avaliar alguém, principalmente os gestores.

O que falei foi apenas sobre indicadores de performance para profissionais / times. Ainda existem muitas outras formas de se avaliar e medir os projetos. São abordagens diferentes, medidas de forma diferente e que apresentam números diferentes, ok?

Métricas e indicadores são muito importantes, principalmente para empresas de serviços de software ou “fábricas de software”. Os clientes exigem esses números e a alta cúpula de executivos precisam disso para basear suas decisões. Agora, não dá para falar de cultura ágil e continuar medindo as pessoas da mesma forma que fazemos na indústria convencional.

Existem muitas empresas que medem tantos indicadores quanto possível e geram relatórios e books de gestão de centenas de páginas. Tudo desperdício, porque ninguém consegue analisar aquilo para tomar uma decisão na hora necessário. Os números devem ser os mais simples e diretos possíveis para possibilitar ao executivo ou mesmo ao time a tomada de decisões em tempo hábil. Para completar, indicador bom é aquele que reflete a cultura que está sendo aplicada pela empresa no projeto.

Grande abraço

André Nascimento


Não se iluda com o Scrum de prateleira


Alow Brasil…

Sempre existiram, existem e vão continuar existindo oportunistas em todo lugar. Em nosso país então, temos 15 por cada m². Estão em todo lugar, então… CUIDADO !!!

O que vemos hoje por aí é fantástico, chega a ser engraçado. O pior é que não é. Gostaria de apresentar o “scrum de prateleira”. A receita para fazer o seu é muito simples:

  1. Pegue um cara que acha que conhece e pratica agilidade (geralmente porque fez um curso de 16 horas);
  2. Junte com uma empresa (consultoria, software house, ISV, treinamento, etc), oportunista que não perde a chance de aumentar seu faturamento com um “novo produto”;
  3. Acrescente uma pitada do bom e velho marketing nocivo da nossa indústria que “vende o sonho pra depois entregar um pesadelo”;
  4. E, finalmente, coloque essa mistura em nosso bom e velho mercado prostituído de sempre.

Pronto, temos uma receita fantástica para o fracasso. E o pior? A culpa de tudo ao final será desse “tal de Scrum”.

A idéia que muitas empresas e pessoas possuem hoje quanto ao scrum está baseada na visão de um produto, uma caixinha que você compra numa loja, leva pra casa, abre e vive feliz. Agilidade não tem absolutamente nada a ver com essa idéia.

Experimente fazer esse teste: Procure no google algo como “scrum”. Simplesmente isso e você verá do que estou falando. A quantidade de empresas oferecendo: formação, treinamento, consultoria, etc, por aí é absurda.

O pior de tudo isso é que as pessoas estão caindo nessa! Tem gente achando que encontrou a formula mágica para todos os problemas da indústria de software, e que pra ter acesso a esse verdadeiro milagre é só fazer mesmo um curso e “ir pra cima”. Por favor, eu não estou falando que você não deva fazer um curso, ok? Ele é indispensável (desde que seja com alguém que realmente conheça agilidade). Mas, simplesmente pegar o scrum “enlatado” e colocar na sua empresa não é algo que dará resultados (pelo menos não positivos).

Muitas empresas estão com um foco total em ganhar dinheiro com o scrum hoje em dia e infelizmente prestam um desserviço a comunidade ágil. Essas empresas vêem o scrum como mais uma oferta de serviço, quando ele não é apenas isso. Ao partir para uma processo ágil você muda completamente a cultura da sua empresa, ou pelo menos da área onde se está trabalhando com agilidade.

Em minha opinião, o foco deve ser nas pessoas, sempre. A mecânica do processo por si só não vai resolver problema nenhum, é nas pessoas que devemos investir. O processo e a mecânica são meros coadjuvantes. Tentar utilizar/vender scrum sem entender isso é um grande tiro de 12 atrás da nuca :)

Por isso é que temos um número absurdo de pessoas fazendo reuniões diárias e pendurando pseudo-kanbans nas paredes e se dizendo especialistas em scrum ou em agilidade. Se está funcionando pra você, ótimo \o/ O problema é quando não funciona, não é? Neste momento teremos um novo e grande culpado: o SCRUM.

Se quiser adotar práticas ágeis na sua empresa ou equipe, por favor, não passe na loja. Esqueça o “produto” scrum na prateleira e não dê atenção para ele. Primeiro, leve para casa os princípios da cultura ágil e tente pratica-los. Nessa prática, o scrum te ajudará com algumas dicas e processos, nada mais !

Se continuarmos a pensar em agilidade como um produto de prateleira, teremos uma triste verdade daqui a pouco tempo…

Futuro com o Scrum de Prateleira

Leituras que podem colaborar:

Grande abraço

André Nascimento


Questão de cultura


Há algum tempo venho observando e registrando alguns fatores culturais envolvidos nas relações cliente x fornecedor, empresa x empregado, etc.

Semana passada, enquanto estava em Belo Horizonte e participava de uma apresentação sobre desenvolvimento ágil e scrum para um cliente americano aqui da Stefanini - a HNI Corporation – percebi o quanto esses fatores influenciam em nosso trabalho e principalmente na adoção de um aproach ágil para o desenvolvimento de software.

Vamos começar com essa imagem, que acredito que todos já devem ter visto em alguma apresentação sobre desenvolvimento ágil:

O Iceberg do Scrum

Quem está acostumado a falar sobre agilidade sabe que ela representa a visão de um processo ágil e sua adoção, onde temos:

O topo do iceberg, que representa o que todo mundo vê no scrum como mais importante,

  • Processos – Ciclo, cerimônias, etc;
  • Papéis – Product owner, Scrummaster, Time, etc;
  • Ferramentas – Kanban, gráficos, etc

E a parte de baixo do iceberg que representa o que realmente importa e abrange um processo ágil,

  • Auto gerenciamento;
  • Comprometimento de todos;
  • Comunicação aberta;
  • Mudança cultural.

Desde o ano de 2008 tenho feito muitas apresentações sobre agilidade para os mais diversos públicos, desde equipes de desenvolvimento até CIOs e CEOs de empresas aqui no Brasil. Essa imagem do iceberg reflete muito o nosso cenário para adoção de agilidade. Quando falamos sobre a avalanche de mudança cultural que uma abordagem ágil oferece para a empresa todos ficam bem preocupados (principalmente executivos).

O que me chamou muita a atenção no caso da HNI é que eles viram a realidade diária deles na parte de baixo do iceberg. Ao final da apresentação o CIO da empresa nos disse bem animado: “Fantástico, já temos toda a base do iceberg e nem sabemos o que é Scrum. Agora só precisamos pensar em como e onde utilizarmos o processo para melhorar mais os nossos projetos”. Confesso que fiquei chocado…

Depois de ter digerido um pouco melhor a apresentação e seu impacto, cheguei a conclusão (meio que óbvia), de que o mercado brasileiro ainda precisa de um bom tempo para acreditar em desenvolvimento ágil e implementa-lo de fato. Hoje, temos uma cultura no desenvolvimento de projetos de software que está muito longe de ser colaborativa e auto-gerenciável.

Se pensarmos em nossos modelos de contratação – podemos começar vendo a questão sobre RFPs – já podemos ver que a coisa toda é direcionada para desviar dos problemas, antes mesmo de que aconteçam. Quase ninguém está interessado em fazer software com qualidade, porque a área ainda é tida como “buraco negro” das empresas, que só sugam recursos e não devolvem nada.

A verdade é que a grande maioria das empresas pensa no Scrum apenas como mais uma oferta de serviço: “Está na moda, então vamos botar no menú e ver o quanto vende…” Poucas pessoas e empresas estão interessadas na mudança cultural que é inerente a agilidade, como: Tratar profissionais como pessoas, incentivar o auto-gerenciamento, abolir o comando-controle, abrir mão da visão industrial de software, etc.

A questão é muito mais séria e complicada do que pensamos, pois as diferenças culturais são realmente muito grandes e pesadas. Estou pensando seriamente se um dia saberemos no mercado brasileiro o que é agilidade de verdade. É necessário abrir mão de muita coisa que se vê como essencial para aproveitar o valor dos princípios ágeis.

Esse pensamento me leva a algumas questões, quase que existenciais como:

  1. O que precisamos fazer para ser ágeis de verdade no Brasil?
  2. Como incentivar mudanças culturais nas empresas e provar que elas trazem resultados melhores do que as abordagens tradicionais?
  3. Como destruir o enraizamento de um modelo de mais de anos num país como o Brasil?
  4. Como convencer executivos sobre auto-gerenciamento num país onde profissionais ainda compram atestados médicos para não serem descontados por uma falta?

Em minha opinião, ainda temos muitas questões que precisam ser formuladas e respondidas.

Até a próxima, grande abraço !!!

André Nascimento