Até aí tudo bem. Acredito que os números não mentem. Se suas medições indicam que seu site leva em média 2 segundos para servir uma página, então é isso aí. Se você fizer uma mudança e de repente ele leva só um segundo para servir, então sua mudança funcionou. Perfeito.
O problema é a parte de usar os dados para tomar decisões. Aí o buraco é beeeem mais embaixo, e merece a formulação da primeira lei de Torsten para métricas em software:
Qualquer decisão errada pode ser justificada com base em dados reais.Deixe-me exemplificar. Suponha que meu sistema permite que os usuários façam duas coisas: peneirar e espetar. Minhas métricas mostram que as pessoas peneiram com frequência 10 vezes maior do que espetam, e mostram também que a medida que o tempo passa, os usuários estão peneirando e espetando cada vez menos por dia, em média.
Agora suponha que eu preciso decidir o que fazer nos próximos seis meses, dentre as seguintes três opções:
- Melhorar a função de peneirar.
- Melhorar a função de espetar.
- Implementar uma nova função, sacudir.
Eis como eu justificaria cada decisão:
- As pessoas preferem peneirar, então se melhorarmos essa função, vão peneirar muito mais e o ganho será muito maior;
- A função de espetar está claramente ruim quando comparada com a de peneirar, então se a melhorarmos teremos um grande ganho;
- Peneirar e espetar não tem mais a mesma atração, então precisamos de algo novo para atrair os usuários.
Meu ponto é que os dados não me ajudaram em absolutamente nada na tomada de decisão, pois apoiam qualquer uma das três decisões. Pior, os dados atrapalharam e muito, porque o que acontece na prática é que o detentor do poder no projeto tem uma preferência qualquer sobre o que fazer e acha apoio nos dados para justificar a sua preferência, evitando assim a discussão racional envolvendo outros fatores, como o custo para se implementar cada solução. Alguém sempre chega e diz, "Ora, os dados claramente indicam que ESSA é a melhor decisão, assunto encerrado, mãos à obra."
Por isso eu sempre travo quando me pedem pra implementar novas métricas. Daí vem a segunda lei de Torsten sobre métricas:
Uma métrica só deve existir quando se sabe como ela será usada para tomar decisões
e sua corolária:
Métricas não associadas a decisões são prejudiciais ao projeto.
Suponha que você queira medir quantas pessoas clicam em um botão. Muito bem. O que você vai fazer se zero pessoas clicarem? O que você vai fazer se todas as pessoas que visitam a página clicarem? Se você não sabe a resposta para essas perguntas, responda-as antes de começar a implementar. Se a resposta for "não vou fazer nada," então você não precisa da métrica. Ótimo! Um número a menos pra ficar te confundindo diariamente e pra atrapalhar as decisões complicadas que você vai ter de tomar no futuro.
Métricas não são grátis. Tem um custo para se implementar e para se manter. Antes de investir nelas, tenha certeza que o investimento terá retorno garantido.
Amigão, dá uma lida no GQM e no PSM.
ResponderExcluirMas só o GQM já dá uma dica do problema aí:
Goal->Question->Metric
Primeiro vc define um objetivo. Melhorar a experiência dos usuários atuais (peneirar)? Recuperar os usuários perdidos (espetar)? Trazer usuários novos (sacudir)?
Depois vc define as suas perguntas:
Como está a experiência dos usuários atuais? Porque os usuários estão sendo perdidos? etc...
Por último é que vc vai definir suas medidas, baseado nas perguntas que vc precisa responder para atingir os objetivos que vc escolheu. Assim, vc não gasta recurso medindo o que vc não precisa, vai com foco e toma uma decisão ajustada para o foco do que vc quer.
Os objetivos precisam estar alinhados com os objetivos estratégicos da organização, obviamente.
Concordo que tem muita gente que faz isso errado, mas o problema não é da área de medição, é de quem não a conhece e tenta a esmo.
Ainda tem um monte de questões a este respeito, mas não dá pra falar muito numa caixinha de comentário. *rs*
Outra fonte boa de informação é a ISO/IEC 15939, específica sobre medição.
Ah, outra questão interessante é que depois de um monte de autores definirem métricas e medidas de formas diferentes (como sendo a mesma coisa ou com métricas sendo compostas de medidas ou outra forma qualquer) os modelos e normas uniformizaram o termo para "medida" matando o "métrica".
Grande abraço!
Ah, esqueci de citar "Você não controla o que você não pode medir." -Tom DeMarco
ResponderExcluirE um artigo dele interessantíssimo: http://www.computer.org/cms/Computer.org/ComputingNow/homepage/2009/0709/rW_SO_Viewpoints.pdf
Oi Peter,
ResponderExcluirGQM é muito bonito e eu gosto do trabalho do Vic Basili. O que ele fez foi propor uma forma de aplicar o método científico à qualidade de software, é legal. O GQM faz uma coisa certa, que é salientar que medidas (usando o termo correto agora) servem para você validar se seus objetivos estão ou não sendo alcançados.
Meu ponto é que as pessoas vão um passo adiante e usam as medidas como insumos para tomar novas decisões. Não é pra isso que elas servem - elas servem pra validar decisões que você tomou de forma independente.
Eu vejo medidas sendo usadas para tomar decisões de forma reativa - "nossa, o número de usuários está caindo, vamos parar de fazer o que estamos fazendo e fazer algo para ele voltar a subir". Isso é quase sempre a decisão errada. O certo seria aplicar novamente o método científico - formular uma hipótese, testar a hipótese através de experimentos e assim validá-la ou não.
O ponto do artigo do Tom DeMarco é semelhante ao que eu quero fazer - há inúmeros casos em que não é desejavel querer controlar tudo através de medições, porque o que é importante é difícil ou impossível de medir. Nesses casos, querer medir o que se consegue medir pode ser uma distração que afasta a atenção do que realmente faz diferença.
ResponderExcluirOi Torsten,
ResponderExcluirO que quis dizer mais ou menos coincide com o que vc disse.
Só quis alertar que o problema não é com as medidas em si e sim com o uso errado. Usar certo não é difícil uma vez que você está ciente do que fazer, como e pra que.
Entendo se vc disser que sua birra é com o uso errado das medidas e não com as medidas em si (primeira frase do post).
Enfim, há formas, como vocÊ sabe, de fazer as coisas corretas e momentos certos para fazê-las. ;-)