Definindo métricas de qualidade na entrega de tarefas para desenvolvedores de sistemas
A primeira idéia
Quando decidimos utilizar uma métrica para avaliar a qualidade das tarefas entregues pelos analistas de sistemas em nossa equipe de desenvolvimento, optamos por utilizar uma metodologia de cálculo simples, baseada nas estatísticas que nos eram reportadas pelos nossos analistas de testes, ao final do processo de homologação. A métrica era bem simples: já que todos os erros identificados pelos analistas de testes recebiam uma pontuação baseada em uma classificação específica, bastava somar o número de pontos de erro de cada analista, e comparar os resultados. Assim, aquele que obtivesse o menor número seria o que apresentou o melhor desempenho. Por exemplo:
Em uma equipe de três analistas de sistemas (A, B e C), foram identificados, no processo de homologação das tarefas da equipe, 2 erros graves e 1 erro comum para o analista A, 2 erros graves e 1 erro que merece atenção para o analista B, e 3 erros graves para o analista C. Para que pudéssemos identificar o analista que apresentou o melhor desempenho, primeiro teríamos que classificar os erros de acordo com a tabela abaixo:
|
Efetuando os cálculos, teríamos:
|
Daí, poderíamos concluir que o analista A foi o que apresentou melhor desempenho, pois mesmo tendo cometido 3 erros, como os outros analistas, foi o que cometeu erros que apresentavam menor impacto no sistema, independente da quantidade de tarefas que cada um efetuou.
O problema
Este modelo se mostrou válido durante pouco tempo, pois já na próxima medição identificamos um problema: o analista que obteve a menor pontuação foi o que entregou menos tarefas, e o analista que obteve a maior pontuação, o que entregou mais tarefas. Como a relação entre o número total de erros de cada analista não era proporcional à quantidade de tarefas executadas por eles, verificamos uma discrepância nos dados, já que, pela lógica utilizada, o analista que trabalhou menos estaria mais propenso a cometer menos erros!
A nova proposta
Para resolver este problema, deveríamos montar uma nova métrica que considerasse, além do número de pontos de erros associados às tarefas de cada analista, o número de tarefas atribuídas a cada um e também o grau de complexidade relativo a cada uma delas - já que, a princípio, tarefas simples deveriam ter uma menor incidência de erro do que tarefas complexas.
Além disso, para evitar que os erros gerados em tarefas mais simples tivessem peso menor do que os gerados em tarefas mais complexas, nos cálculos acima o número atribuído a complexidade corresponderiam sempre ao inverso do valor dela, conforme especificação abaixo.
- Para tarefa classificada como “Muito simples” (1), o coeficiente para cálculo será 5
- Para tarefa classificada como “Simples” (2), o coeficiente para cálculo será 4
- Para tarefa classificada como “Mediana” (3), o coeficiente para cálculo será 3
- Para tarefa classificada como “Complexa” (4), o coeficiente para cálculo será 2
- Para tarefa classificada como “Muito complexa” (5), o coeficiente para cálculo será 1
Logo, desenvolvemos um novo modelo que aplicasse todas estas variáveis:

Sendo:
a = número de erros de um mesmo tipo
b = número de pontos correspondente ao tipo de erro, de acordo com a tabela de classificação de erros
c = coeficiente para cálculo da nova métrica
n = número de tarefas
i = índice da tarefa
Para que esta nova metodologia possa ser mais facilmente compreendida, consideremos o seguinte cenário:
Três analistas (A, B e C) receberem, em um determinado período, 23 tarefas, distribuídas da seguinte forma:
- Ao analista A, foram atribuídas 7 tarefas, sendo 3 de complexidade simples (2) e 4 de complexidade muito simples (1)
- Ao analista B, foram atribuídas 4 tarefas, sendo 1 de complexidade mediana (3), 2 de complexidade simples (2) e 1 de complexidade muito simples (1)
- Ao analista C, foram atribuídas 12 tarefas, sendo 3 de complexidade mediana (3), e as demais, de complexidade muito simples (1)
Quando todos entregaram suas tarefas, foram constatados alguns erros, como seguem:
- O analista A cometeu 3 erros, sendo 2 graves e 1 comum, todos gerados em uma mesma tarefa, de complexidade simples – logo, o coeficiente a ser utilizado no cálculo da métrica será igual a 4
- O analista B cometeu 3 erros, sendo 2 graves e 1 que merece atenção, todos gerados em uma mesma tarefa, de complexidade simples – aqui, o coeficiente a ser utilizado no cálculo da métrica também será igual a 4
- O analista C cometeu 3 erros, sendo todos eles graves, e gerados em uma mesma tarefa, de complexidade muito simples – neste caso, o coeficiente a ser utilizado no cálculo da métrica será igual a 5
Avaliando os dados mencionados acima, e submetendo-os à nova métrica de qualidade proposta, temos:
Analista A

Analista B

Analista C

Daí, podemos constatar que o analista C foi o que apresentou melhor qualidade na entrega de suas tarefas, pois, mesmo tendo cometido 3 erros graves em tarefas muito simples, não cometeu nenhum erro nas tarefas mais complexas que lhe foram atribuídas.
Conclusão
A nova proposta aqui apresentada tem por objetivo prover informações mais precisas sobre a qualidade das tarefas que são efetuadas pelos analistas de sistemas, permitindo aos gestores identificar quais os analistas que apresentaram os melhores e os piores desempenhos quando executando tarefas de complexidades distintas, em um determinado período. Entretanto, é necessário que sejam definidas outras métricas, como de produtividade por exemplo, para que possamos avaliar o desempenho geral de cada analista, e não apenas em relação à qualidade de suas tarefas entregues.
Quer aprender ou aperfeiçoar-se nos estudos de TI? Material gratuito é o que não falta!
Para quem está pensando em matricular-se em cursos visando conhecer ou aperfeiçoar-se no desenvolvimento de sistemas ou em outras áreas de tecnologia da informação, especificamente as relacionadas a plataforma Microsoft, estou disponibilizando, neste post e nos próximos que se seguirem, algumas dicas de links que poderão ajudá-los nos estudos.
Todos os links relacionados apresentam bastante conteúdo (em vídeo) sobre diversos temas voltados às áreas de tecnologia (Sharepoint, Windows Server 2008, Windows Vista, etc.) e desenvolvimento (C#, VB.NET, TFS, VSTS, Testes, etc.). Gratuitos, eles são de bastante ajuda, inclusive para aqueles que pretentem prestar um dos exames de certificação da Microsoft.
Como os assuntos abordados em cada tema são extensos, irei apresentar primeiro os links relativos aos materiais do MSDN, depois os do TECHNET e, por fim, os demais.
Dêem uma olhada, acho que irão achar os conteúdos bem interessantes - de repente, vocês nem vão precisar gastar aquela grana num pacote de cursos presenciais…
Microsoft MSDN Experience - Parte 1
Módulo 1 – Conceitual – Linguagem de Programação:
Sessão 1 - Conceitos Básicos de Programação e Introdução a C#
Tópicos Abordados:
1. A Plataforma .NET, .NET Framework e a CLR
2. Introdução a C#: Classes, Interfaces, Métodos, Propriedades, Contrutores, Eventos
3. Conceitos de Programação Orientadas a Objetos com C#
4. Tratamento de Erros
5 Delegates e Eventos
6. Manipulação de Data, Hora e Números
7. Leitura/Escrita de Arquivo Texto e Binário
Sessão 2 - Conceitos Básicos de Programação e Introdução a Visual Basic.NET
Tópicos Abordados:
1. Introdução a Plataforma Microsoft .NET
2. Características do Ambiente de Desenvolvimento
3. Linguagem e Sintaxe
4. Programação Orientada Objetos com Visual Basic .NET
Módulo 2 – Visão Geral de ASP.NET:
Sessão 1 - Introdução a ASP.NET com linguagem C#
Tópicos Abordados:
1. O Visual Web Developer Express Edition
2. Conceitos Básicos: Aplicação Web, Recursos Web, Request e Response, Sessão e WebServer
3. A Estrutura da Aplicação ASP.NET, Web Forms e Server Controls
4. Trabalhando com Controles de Validação
5. Trabalhando com Master Pages
6. Trabalhando com Controles de Navegação
7. Trabalhando com Controle de Login
8. Trabalhando com Controles de Acesso a Dados
Sessão 2 - Introdução a ASP.NET com linguagem Visual Basic.NET
Tópicos Abordados:
1. O Visual Web Developer Express Edition
2. Conceitos Básicos: Aplicação Web, Recursos Web, Request e Response, Sessão e WebServer
3. A Estrutura da Aplicação ASP.NET, Web Forms e Server Controls
4. Trabalhando com Controles de Validação
5. Trabalhando com Master Pages
6. Trabalhando com Controles de Navegação
7. Trabalhando com Controle de Login
8. Trabalhando com Controles de Acesso a Dados
Sessão 3 - Introdução a XML e Web Services
Tópicos Abordados:
1. Overview do XML Web Services
2. Por Que Utilizar XML Web Services
3. Como Localizar um XML Web Service
4. Como Criar um XML Web Service
5. Como Usar um Proxy para Chamar um XML Web Service
Sessão 4 - ASP.NET AJAX
Tópicos Abordados:
1. Conceito de ASP.NET AJAX
2. Desenvolvimento ASP.NET AJAX para Servidor
3. Desenvolvimento ASP.NET AJAX para Navegador
4. ASP.NET AJAX Control Toolkit
5. Demonstração - construindo um chat passo a passo com ASP.NET AJAX
Módulo 3 – Migração (Avaliação entre Tecnologias):
Sessão 1 - ASP.NET para desenvolvedores PHP – Introdução
Tópicos Abordados:
1. Comparação entre as Arquiteturas
2. Diferenças de Linguagens
3. Acesso a Dados
4. Migração de PHP para ASP.NET
Sessão 2 - ASP.NET para desenvolvedores JSP – Introdução
Tópicos Abordados:
1. Introdução
2. Facilite a Migração com “JLCA 3.0″
3. Ambiente de Desenvolvimento
4. Modelo de Codificação do ASP.NET e JSP
5. Elementos de Scripts e Diretivas
6. Taglibs e Web Controls
7. Publicação da Aplicação na Web
Sessão 3 - ASP.NET para desenvolvedores ASP – Introdução
Tópicos Abordados:
1. Conhecendo o .NET Framework
2. Controles com Eventos de Servidor
3. Mudanças Significativas
4. Ferramentas para Desenvolvimento
5. Referências para Estudo
Módulo 4 – Acesso a Dados, Segurança e Globalização:
Sessão 1 - Acesso e manipulação de dados (ADO.NET)
Tópicos Abordados:
1. O que é ADO.NET
2. Arquitetura do ADO.NET
3. O que o ASP.NET 2.0 oferece
4. Demonstrações
Sessão 2 - Autenticação, Autorização e Segurança (Código Seguro)
Tópicos Abordados:
1. Conceitos sobre Segurança
2. Active Directory
3. Autenticação
4. Autorização
Sessão 3 - Globalização: seu site multilingual
Tópicos Abordados:
1. Novidades do ASP.NET 2.0 para tornar o seu site multilínguagem
2. Demonstrações
Módulo 5 – Depuração e Performance:
Sessão 1 - Depuração de código (debug e trace)
Tópicos Abordados:
1. Introdução a depuração de código
2. Recursos de debugging do Visual Studio
3. Técnias usuais: Response.Write
4. Classes Debug e Trace
5. Outras técnias: Remote debugging
Sessão 2 - Testes, Estabilização, Desempenho e Deployment (instalação)
Tópicos Abordados:
1. O Objeto Cache
2. ASP.NET Output Cache
3. Configuração
4. Deployment (instalação)
Dicionariando: Surreal
Rapaz, como está difícil encontrar comentários com conteúdo - inteligente - na web!
Há, por aí, muitos blogs com posts bacanas… posts que, como dizem, nos fazem pensar. Entretanto, mesmo estes posts, por melhor que sejam, raramente geram comentários relevantes, que vão além dos simples “bacana este post” ou “não gostei do que você escreveu”… enfim, por isso é que - mais uma vez - vou utilizar como referência aqui outro trecho de um dos comentários dos leitores do Polzonoff.
A palavra, desta vez, não me é totalmente desconhecida - eu a escolhi mais pelo contexto a que está inserida (uma sucinta observação acerca da atual situação em que o país se encontra) que pelo desconhecimento de seu significado.
Espero que apreciem!
Surreal
Datação
déc.1920
Acepções
■ adjetivo de dois gêneros
1 que denota estranheza, transgressão da verdade sensível, da razão, ou que pertence ao domínio do sonho, da imaginação, do absurdo
■ substantivo masculino
2 aquilo que se encontra para além do real
3 Rubrica: história da arte.
o que resulta da interpretação da realidade à luz do sonho e dos processos psíquicos do inconsciente
Etimologia
fr. sureél (1924) ‘id.’ > sur ’sobre’ + réel ‘real’
Contextualização
“(…) o Brasil se tornou um país surreal (…)” [sic]
Comentário
Eu até queria comentar o trecho acima mas fiquei com a incômoda sensação de que não precisava mesmo dizer mais nada… o pior é que a coisa está tão feia que não podemos nem dizer que a saída é o aeroporto…
Antes que eu me esqueça: O post que originou o comentário de onde tirei o trecho acima foi este. Novamente, se o autor (do comentário) se sentir ofendido de alguma forma com a publicação deste, peço por gentileza que entre em contato comigo, para que eu possa excluí-lo.
Obtendo informações baseadas nas configurações regionais do Windows, utilizando Microsoft .NET
Eventualmente temos que desenvolver aplicativos que necessitem apresentar informações baseadas nas configurações regionais da máquina em que ele será utilizado. No Framework .NET, da Microsoft, podemos fazer isso de forma relativamente simples, como pode ser observado a seguir.
Primeiro, é necessário obter as informações do idioma corrente executado pelo aplicativo:
Dim ciCultureInfo As CultureInfo = _
Thread.CurrentThread.CurrentUICulture
De posse dessas informações, é possível obter os dias da semana:

A variável strDiasDaSemana, após a execução da primeira linha acima, conterá os nomes dos 7 dias da semana - para obter o dia correspondente a uma data específica, é só utilizar:

Para obter os meses do ano:

Aqui a variável strMesesDoAno conterá os nomes de cada um dos meses do ano. Para obter o mês correspondente a uma data específica, basta seguir o mesmo raciocínio do exemplo acima:

Obs.: Para retornar o nome do mês corrente é necessário subtrair 1 do mês pois o índice da variável strMesesDoAno começa com 0 (zero).
Para obter a moeda corrente:

Os exemplos acima estão todos em Visual Basic .NET, porém podem ser facilmente adaptados para o C# (ou qualquer outra linguagem compatível com o .NET).
Até mais!
About
Me chamo José Eduardo Bueno de Camargo (não, não sou aquele famoso escritor!), tenho 33 anos, nasci em São Paulo/SP, mas atualmente moro em Osasco/SP. Estou aprendendo a tocar violão e a falar espanhol, então não estranhe se, daqui a algum tempo, você me ver por aí tocando e cantando “Volare” com a mesma desenvoltura que os Gipsy Kings…
Trabalho com web desde o século passado (meados de 1999), porém comecei a atuar na área de informática pouco antes do final de 1994, quando eu e meu amigo Ricardo nos aventuramos a programar nosso primeiro sistema em Visual Basic (na época, em sua 3ª versão) para controlar o estoque de uma Adega que havia lá no Alto da Lapa. Depois disso, já participei de projetos d’O Boticário, Valor Econômico, Fundação Pró-Sangue, Natura, CET-SP, Coca-Cola entre outros.
Atualmente sou coordenador de sistemas web e client/server em uma empresa de tecnologia em Alphaville, e estou estudando para aperfeiçoar-me nas metodologias de gerenciamento e desenvolvimento de sistemas, sobretudo SCRUM e ITIL, e também para obter mais uma certificação Microsoft - o próximo passo é tornar-me MCPD!
Contact
![]() | eduardobueno@msn.com |
![]() | eduardobueno |
![]() | contato@eduardobueno.com |
![]() | contato@eduardobueno.com |
Certificates
Categories
- 101 coisas (2)
- artigos (3)
- desenvolvimento (2)
- dicionário (2)
- eu (1)
- geral (2)
- gestão de ti (1)
- internet (2)
- lazer (1)
- música (1)
- opinião (1)
- programação (2)
- quadrinhos (1)
- tecnologia (1)
- ti (1)
- tv (2)
- vídeos (1)
- webdesign (1)
Flickr Photos
Recently
- 02.08 Definindo métricas de qualidade na entrega de tarefas para desenvolvedores de sistemas
- 01.26 Quer aprender ou aperfeiçoar-se nos estudos de TI? Material gratuito é o que não falta!
- 07.24 Dicionariando: Surreal
- 07.17 Obtendo informações baseadas nas configurações regionais do Windows, utilizando Microsoft .NET
- 06.27 Dicionariando: Inefável e Estóico
- 06.12 Tratando erro no load de imagens
- 05.27 As infinitas crises da DC - Parte 1.
- 05.21 Balanço dos 1001 dias (com 293 dias passados…)
- 05.02 Orkut: Fui!
- 05.01 Joost: Just another hype?













