Your SlideShare is downloading. ×
Qualimetria e gestão de qualidade em TI por André Balparda
Qualimetria e gestão de qualidade em TI por André Balparda
Qualimetria e gestão de qualidade em TI por André Balparda
Qualimetria e gestão de qualidade em TI por André Balparda
Qualimetria e gestão de qualidade em TI por André Balparda
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Qualimetria e gestão de qualidade em TI por André Balparda

215

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
215
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. QUALIMETRIA E GESTÃO DE QUALIDADE EM TI por: André Balparda Artigo apresentado durante o encontro anual do CMG-Brasil 2008 28 de agosto de 2008 Este artigo propõe uma investigação sobre o que é o termo Qualimetria, sua utilidade e aplicação em softwares. Bem como uma idéia sobre como a Qualimetria aliada a uma gestão de TI pode reduzir custos e aumentar a satisfação dos clientes.1. Introdução moral, que diferencia uma coisa de outra. Em outras palavras, qualidade é aquilo que pertence a uma coisa Este artigo não tem a intenção de ser um e que faz com que esta, mesmo que essencialmentetratado final sobre o tema proposto, mas sim trazer à ela seja a mesma que outra, seja diferente. Umtona uma discussão sobre o que é Qualimetria e como exemplo com certeza pode ajudar neste entendimento:esta pode ser útil para a realidade de desenvolvedores, uma cadeira qualquer é essencialmente igual agestores e trabalhadores da área de TI em geral, sem qualquer outra cadeira no mundo, e até mesmo umacontar os enormes benefícios financeiros que resultam cadeira ainda não existente fora da mente de seude sua utilização. construtor. Afinal, uma cadeira tem apenas uma função Qualimetria é um termo novo. Analisado essencial: é o aparato no qual nos sentamos. Umamorfologicamente, quer dizer: quantificação da cadeira pode ser alta e outra baixa, uma amarela equalidade. Em outras palavras, medir a qualidade de outra verde, uma de madeira e outra de alumínio, euma coisa, seja esta um carro, um celular, um martelo assim infinitamente, chegando ao extremo que duasou um software. cadeiras aparentemente idênticas podem ter sido É obvio que o que iremos discutir neste texto é fabricadas em anos diferentes, o que as tornaa capacidade de se medir qualidades intangíveis de um diferentes quanto a durabilidade, ou, se quisermos sersoftware, e como utilizar estas informações para uma preciosistas, duas cadeiras de plástico idênticas, domelhor concepção, desenvolvimento e manutenção mesmo minuto de fabricação, terão plásticos diferentes.destes. Para atingir este objetivo, deveremos passar Afinal, o plástico que está em uma não está em outra.por algumas fases, partir da análise de uma coisa Este preciosismo é fundamental parapalpável e real, aprender como entendemos esta coisa entendermos o que é a essência de uma coisa. Noe quais suas funções, para então entender um caso de um software, a sua função essencial.software, que não tem existência palpável, apenas Entendendo isso, garantimos que esta função essencialvirtual. nunca pode se alterar, independente de suas Este conceito, que por enquanto deve nos qualidades, esta função é que define o que o softwaresatisfazer, será vital para o bom entendimento deste é. Sendo assim, a princípio, se o software cumpre comartigo. Afinal, há muitas coisas que já são difíceis de se sua função essencial, de certa maneira ele satisfaz suamedir e se comparar em um mundo palpável, e isso é concepção. Mas a que custo? O cliente deste softwareainda mais complexo e difícil em um mundo virtual. terá sua expectativa satisfeita? Foi esta função De alguma forma ou outra, já utilizamos essencial que o cliente queria?Qualimetria em nosso dia-a-dia, seja na vida cotidiana, Essas qualidades das coisas não definem oseja na análise de software, apenas não tínhamos que a coisa é, mas definem como interagimos com ela.colocado tudo isso em tabulação organizada e Afinal, uma cadeira pode ser muito alta para umacategorizada para que pudéssemos tirar proveito pessoa, e esta mesma cadeira será baixa para outra.dessas informações de maneira metodológica e certa. Isso é que caracteriza a expectativa do cliente ao produto. Se o cliente só ficasse satisfeito com a função2. O que é Qualidade essencial de uma coisa, todos nós dirigiríamos sempre o mesmo modelo e cor de carro. A pergunta que Antes de entrarmos na Qualidade de Software devemos nos fazer então é: o quão amarelo deve serpropriamente dita, é essencial que entendamos o que é uma cadeira para satisfazer a expectativa do cliente? OQualidade, e como apreendemos sobre um objeto de quão alta deve ser? O quão extensa?estudo. Este passo nos guiará a percebermos o Antes de entrarmos nestes detalhes já ligadossoftware de maneira diferente, tentando fugir da à Qualimetria, vamos tomar emprestados os conceitosdicotomia função versus performance. de entendimento de Aristóteles sobre as coisas Ao consultarmos o dicionário, este nos (Órganon 1b25). Aristóteles acreditava que todas asensinará que Qualidade é um predicado, ou disposição coisas podem ser explicadas por dez categorias, ou
  • 2. seja, todas as predicações possíveis de um objeto de A figura 1 ilustra muito bem a relação entreestudo devem se encaixar em algumas destas satisfação do cliente versus a especificação do produto.categorias a seguir: Substância, entidade única que é o Onde o eixo horizontal indica o quanto se especifica umsujeito de todas as outras categorias; Quantidade, pode produto, sendo BE = baixa especificação, AE = altaser discreta ou contínua; discreta quando as partes não especificação e EI = especificação ideal, a área cinzapossuem limites comuns (ex: 2 funções); contínua representa a perda com o produto. A melhor maneira dequando existem limites (20 Kb ou 5 metros); Qualidade: interpretar esse gráfico é, quanto menor o Δe (asão as disposições, calor, frio, bondade; Relação: diz- distância que sua especificação está da especificaçãose da relação quando existe dependência (isso é o ideal), menos perda seu produto sofrerá.dobro daquilo, então daquilo tem que existir); Lugar: Esta idéia está com certeza mais próxima àonde a substância está (Paris, Térreo, Servidor 5); realidade da Tecnologia da Informação, pois aTempo, ordem relativa: Hoje, Ontem; ou duração: 5 capacidade e necessidade dos sistemas mudarem ésegundos, 2 semanas; Posição: como se encontra a muito rápida, e em um tempo muito curto, algo que erasubstância: deitado, sentado; Estado: ligado, armado; decorativo passa a ser necessário da noite para o dia,Ação: o que a substância faz: corta, queima, roda, tornando-se parte da especificação inicial.executa, grava; Paixão: o que a substância sofre:cortado, queimado, alterado, gravado. 3. Qualidade de Software Esta maneira de se classificar os predicados deuma coisa não são mandatárias para software. Afinal, Quanto à qualidade de um software: o quenão foi feita para se categorizar um software, que tem podemos dizer de imediato? O que podemos esperar,peculiaridades distintas das dos objetos reais e que, antes mesmo de ver o software ser executado? Quaispor exemplo, não possui volume espacial e forma. O são nossas expectativas? Nem precisamos ser da áreaque é mais importante no exemplo é a preocupação em de TI para responder a essas perguntas, pois atentar entender o objeto da melhor maneira possível. resposta é muito simples: primeiro, o software precisaEste desafio ainda é válido hoje em dia, afinal, para cumprir ao que foi concebido, ou seja, não pode ocorrerpodermos afetar de forma positiva a maneira com que erro; segundo, deve ser executado rápido e com baixoas coisas interagem com outras é necessário alterar custo de operação. Note que ainda não fugimos daseus predicados e, talvez, sua própria essência. Assim, dicotomia mencionada acima, só para lembrar: funçãopodemos entender o objeto de estudo, mas ainda não versus performance. É obvio que existem vários outrosabordamos como entender a expectativa do cliente. fatores que qualificam um software, como: tamanho, Uma maneira de se entender a Qualidade é a plataforma para a qual foi desenvolvido, qual base departir da falta dela. E muito mais fácil para nós dados se utiliza, entre outras. Mas estas qualificaçõesentendermos o que não nos satisfaz daquilo que nos são independentes de sua função essencial.satisfaz. Este foi o ensinamento de Genichi Taguchi, Antes de entrarmos nos conceitos maisguru da qualidade mundial, que disse: “Falta de técnicos, é importante atentarmos para a expectativaQualidade está diretamente relacionada à perda que do cliente. O que o cliente espera de um software aoum produto impõe à sociedade após sua distribuição” e encomendá-lo ou comprá-lo? Como mencionadoem sua teoria da Função de Perdas, que a muito acima, o cliente quer que o software funcione e quegrosso modo é uma relação matemática entre funcione rápido. Além disso, que seja fácil de usar, fácilsatisfação do cliente e especificação do produto. de instalar, que não lhe dê manutenção e que seja o mais barato possível. Esta é a expectativa do cliente. Por isso, temos que ser muito preciosistas na especificação e lembrar que devemos especificar o necessário para cumprir com eficiência sua função. Se especificamos demais, demoramos para entregar o software e ele fica muito caro. Se especificamos de menos, não atende às necessidades do cliente. Este equilíbrio é algo muito delicado de se estabelecer.
  • 3. Todas essas práticas, metodologias e recomendações (CMM, ITIL, ISSO 9000, COBIT, ISACA, IEE-829 e outras) mostram o que fazer, mas não garantem os processos de qualidade. Historicamente, várias empresas com altos índices obtidos em certificações já ofereceram softwares com problemas gravíssimos. Ou seja, todo este trabalho não dá conta do que o cliente espera. Isto porque nenhuma destas metodologia citadas automatiza o processo de qualidade. Automatizar o processo de qualidade de software significa que nenhum software poderia ser compilado, sem antes ser “aprovado” por um engine que compara seu código atual com uma série de regras qualimétricas, trancando sua entrada em produção caso não esteja de acordo em 100% com as metodologias, práticas e recomendações citadas acima. Além disso, novas tecnologias e métodos A figura acima ilustra no eixo vertical a surgem a cada instante, isto muda o ambiente em queinsatisfação do cliente e no eixo horizontal o grau de os softwares estão, muda a maneira como eles devemespecificação do software, T.min indica o ponto de interagir com outros softwares e com o usuário.tolerância mínima e T.max o de tolerância máxima do Contemplar estas mudanças é a missão mais difícil aocliente. A linha pontilhada representa o investimento no se conceber um software. Temos que ao menosprojeto, o seu custo de fabricação. Sendo que um garantir que naquele ambiente para o qual o softwaresoftware mal especificado levará a erros de projeto e foi desenvolvido nada de errado aconteça. Para queretrabalho aumentando então o seu custo, uma isso aconteça, precisamos de dados qualimétricos e deespecificação excessiva tem como conseqüência um gestão.longo “time-to-market” e alto custo de desenvolvimento.Achar o ponto de especificação ideal é a melhor 4. Qualimetriamaneira de manter baixo custo de projeto eexpectativa do cliente satisfeita. Se utilizarmos a idéia do Sr. Genichi Taguchi Mas como medir? Como quantificar esta para analisar a qualidade de um software, chegaremosexpectativa? Mais importante ainda, como quantificar a à seguinte conclusão: a ausência de qualidade em umsatisfação desta expectativa? Obviamente, não é software se manifesta por meio de erros (funcionais epossível dizer que a satisfação é um valor, mas, abends), perdas à corporação (sejam elas jurídicas,comparativamente, podemos fazer uma escala. Então, financeiras ou de imagem), fraudes, perda depodemos pontuar, dar notas à nossa satisfação, por competitividade, alto custo e grande “time-to-market”. Aexemplo: “Este software ter nota B”. Essa comparação origem destas “falhas” na qualidade podem ser várias,depende da experiência, temos que já ter usado algum entre elas: falta de padronização, descumprimento àssoftware similar para ter esta opinião. Isso não boas práticas de programação, retrabalho, falta decompromete a pesquisa quando falamos de um testes, impacto crescente nos custos de produção,software comum, ou algo que todos estão acostumados excesso de terceirização e alta complexidade dosnaquele meio, pois todos já têm certeza (ou pelo menos sistemas.acham que têm) do que esperam daquele produto. Começamos então a entender qual é o desafioNeste caso, tabulamos todas as opiniões e obtemos da Qualimetria de software. Infelizmente, ainda nãouma nota média de satisfação. Mas ainda não temos conseguimos nos desfazer totalmente daquelaqual é a expectativa, pois elas sempre serão as dicotomia função versus performance, masmesmas, tem que funcionar e funcionar rápido. É muito adicionamos uma nova variável nessa equação: odifícil interpretarmos o que o cliente quer, por ser tão custo (fig. 2 também exemplifica isso). Afinal,subjetivo. É por este motivo que gastamos, como desenvolver um software que seja “state of the art” eprofissionais de TI, tanto tempo e dinheiro em ainda supere todas as expectativas do cliente pode serprototipagem, fluxogramas, UMLs, homologações possível. Mas será economicamente viável? Seráfuncionais, reuniões e reuniões para aprovarmos um entregue no prazo? Mais importante, saberemos comoprojeto. Tanto o cliente quanto o fornecedor sabem que desenvolver isso e como anteciparemos problemas emesta fase de entendimento é complexa e delicada, por produção? Esta resposta não está muito longe, pois jáisso existe uma série de metodologias disponíveis para temos algumas ferramentas capazes de analisar códigogarantir o mínimo de verossimilhança entre escopo e e buscar por regras pré-definidas, evitando que ele vásoftware. prematuro para a produção.
  • 4. O segredo da Qualimetria de software é muito transformar esta massa de dados de informação emsimples; o primeiro passo é obter, armazenar e regras de Qualimetria, como interpretar estascategorizar as informações obtidas em produção e as informações e transformá-las em conhecimento.informações das expectativas do cliente; o segundo Felizmente, máquinas e sistemas ainda nãopasso é transformar todas essas informações em conseguem executar este salto entre a informação e oações, que durante a concepção de um novo software conhecimento, isso ainda é papel do homem. Asaberão prevenir todas as falhas já mencionadas capacidade de interpretação de detalhes sutis e aacima, antes mesmo da existência do novo software. capacidade de unir duas idéias diferentes é que torna o Quantificamos então a expectativa do cliente homem essencial neste processo. A máquina ainda nãopor meio de notas e modelos comparativos. Mas se é capaz de entender o subjetivo, e Qualimetria éformos especular sobre um produto ou software jamais exatamente isso, quantificar algo subjetivo.feito ou imaginado, com certeza esse modelo Mas o que fazer com estas regras depois quecomparativo terá suas falhas, pois não teremos algo já foram criadas? Como garantir que serão seguidas àcriado para compararmos, então, nossa expectativa risca? Podemos lidar com isso de três maneirasserá baixa. Mas, assim que este software entra em diferentes, a saber: comportamental, operacional eprodução, opiniões começam a ser formadas e física. Comportamental é quando na especificação, nocomparações poderão ser feitas. Este histórico de projeto lógico ou no projeto físico contamos com a boaampliação de expectativas deve ser também vontade dos participantes em seguir com as regrasarmazenado e tabulado para futuras ações. estabelecidas. Operacional é quando por meio de Como podemos então nos preparar para relatórios e listas de conferência fazemos com quetransformar informações de produção em ações ao todos os envolvidos em todas as fases da concepçãoiniciarmos um novo projeto? Não foi em vão que acima do software se comprometam a cumprir com as regras.falamos das categorias aristotélicas, esta metodologia, Lidamos de maneira física, quando no projeto físico sóse é que podemos chamá-la de metodologia, pode permitimos que um código passe para a fase seguinteservir de guia para classificarmos informações sobre se cumpridas todas as regras, ou seja, um códigoexecução e erros de um software. Obviamente, ela não jamais poderá ser compilado se não seguir osé ainda o ideal, mas já é uma base inicial para parâmetros pré-definidos.aprendermos a entender o software de maneira mais Contar com a boa vontade dos funcionárioscompleta. Obter o histórico de execução é a chave para para seguir as boas práticas e regras com certeza darápodermos atingir nosso objetivo, é por meio destas margem para erros que podem comprometer ainformações que criaremos regras que orientarão funcionalidade e performance dos softwares. Já umaconcepções de novos softwares. Classificar estas abordagem física, não permitirá que o código sejainformações é útil para poder ajudar a transformá-las compilado sem que esteja 100% de acordo com aem ações, ou regras. Devemos organizar toda essa tabela de regras e normas. Isso faz com que tenhamosmassa de dados estatísticos de maneira a classificá-la certeza que nada será esquecido, economizando assimde acordo com ambiente, local, rede, dependências, retrabalho, garantindo maior estabilidade etamanho, prioridade, tempo de execução, sistemas disponibilidade dos softwares. Em outras palavras,atingidos, volume de transações, autoridades, e tudo diminuir o retrabalho, padronizar código, testar commais que interage com este software. consistência de dados, prever o impacto no ambiente, Parece claro tudo isso que falamos até então, diminuir os erros e “abends”, simplificar os programas emas nem sempre amarramos informações como controlar as fábricas de software. Isso aumenta adependência entre softwares com erro do software, a competitividade de sua empresa e reduz seu “time-to-não ser que seja relativo ao próprio código de erro. market”.Uma visão completa é o objetivo dessa massa de Se colocarmos estes dados em uma balançadados, não só armazenarmos os erros ocorridos, mas financeira, veremos que na atividade detambém os acertos. É a capacidade de sabermos em desenvolvimento de software 40% do tempo équanto tempo “rodou” um programa que tem empregado em retrabalho (fonte: SEI – Systemdependência com outro em um dia chuvoso de março. Engineer Institute), o que significa que algo foi feitoEste tipo de informação super detalhada serve para errado, ou não funcionou como esperado. Este tempopodermos, como dito acima, diferenciar o plástico de de retrabalho poderia ser empregado em trabalhoscada cadeira, afinal o plástico que está em uma, não mais nobres como novos projetos ou evolução deestá em outra, ou em idioma de TI, a alocação de produtos. Este tipo de impacto é brutal nos custos dememória utilizada em uma execução, não é a mesma qualquer empresa.alocada em outra. Organizar, categorizar e armazenar toda essa 5. Qualimetria e gestão de TImassa de dados já é um desafio bastante grande. Maisinteressante ainda, é como transformar isso em regras Ferramentas de qualidade de código, cruzadasde concepção e de codificação. Tudo mencionado até com o repositório de informações de qualidade eentão, pode ser feito por “engines”, softwares relatórios de performance, tornam-se um grande aliadopreviamente instruídos para tal. O desafio é como na gestão da TI. Podendo “pontuar” código de fábricas
  • 5. de software, servir como meta anual para bônus dosdesenvolvedores, ajudar a elaborar relatóriosfinanceiros de impacto de crescimento. Relatórios deestabilidade e disponibilidade dos sistemas cruzadacom número de transações pode também ser umagrande ferramenta em caso de termos de enfrentaruma fusão entre empresas. Todas essas diferentesvisões (relatórios) deste repositório de informações,ajudam os profissionais envolvidos no processo desoftware, desde o desenvolvedor que pode entendermelhor qual a utilização do software que vaidesenvolver, para o usuário que pode saber qual épróximo passo de evolução deste software e entendersua participação nesta mudança, até o financeiro quepoderá entender qual o impacto que uma mudança emum software, ou que um investimento em infra-estrutura, terá sobre o custo de operação da empresa. Nenhuma destas visões seria possível sem umprocedimento qualimétrico instalado. A Qualimetria Acima temos um exemplo de como podemosaliada à gestão de TI permite uma visão do histórico de definir uma meta qualimétrica, baseada em alguma daseventos relacionada com as metas de qualidade que se categorias de qualidade (ex. elapsed time). A partirpretende atingir, mostrando qual o impacto e até deste tipo de relatório, podemos projetar se, e quando,quando é que vale a pena se atualizar um programa atingiremos a meta de qualidade estabelecida, elegado da empresa. também não permitir que um software entre em Um bom exemplo é quando se tratando de produção sem que o mínimo de qualidade estejafábricas de software, podemos estabelecer um mínimo garantida. Sabendo quando atingiremos essa meta,de qualidade e por meio de um engine pontuar os sabemos também quantas horas/homem serão gastas,pontos qualimétricos deste. Isso garante um padrão de assim, sabemos quanto custará o projeto e até quandoqualidade aceitável do código, mantendo estabilidade e ele é viável. Esta meta deve sempre respeitar o Δedisponibilidade no ambiente da empresa. Sem explicado na figura 2, ela deve estar o mais próximomencionar a manutenabilidade do código que estará possível da especificação ideal, para que assimseguindo as boas práticas. Isso diminui os riscos de mantenhamos o equilíbrio custo versus especificação.quebra do SLA e comprova os esforços no controle de Todo este ambiente qualimétrico e de gestãoqualidade, obtendo assim novos benefícios como: permite uma comparação de aplicações legadas eControlar e aprimorar o SLA das fábricas de software; novas. Dados qualimétricos obtidos pelos enginesControle e compatibilidade nos testes (garantindo que aplicados nos ambientes de desenvolvimento,um teste manterá os mesmos padrões dos testes homologação, testes e produção, permitem a criaçãoanteriores); Desempenho comparativo; Seleção dos de novas metas. Isso mantém as aplicações emmelhores códigos e práticas; estabelecer metas para a sincronia com o crescimento vegetativo da empresa,manutenção e evolução dos softwares; Controlar custo garantindo que a curva de qualidade do softwareversus benefício. acompanhe a curva de crescimento da empresa. Em Quando utilizamos isso, sabemos que um poucas palavras, garante estabilidade e disponibilidade.software foi entregue pela fábrica de software, ou pelo Todos esses fatores de controle se tornam adepartamento de desenvolvimento, com um fator maneira de garantir e automatizar as certificações dequalimétrico de X e que foi implantado com X + Y após qualidade. Empresas gastam milhões de dólares paraa padronização deste código, atingido assim os obter um certificado de garantia de seus produtos, maspatamares mínimos de qualidade. Com o histórico acabam não prestando muita atenção em como manterdeste software, podemos avaliar os padrões de este certificado. A Qualimetria, aliada a uma gestão dequalidade dos fornecedores, medindo sua eficiência e TI atuante, além de garantir estes certificados e baixopodendo assim tomar uma decisão mais acertada. custo de fabricação, garante que seus softwares não Todos os testes e medições obtidos devem possuirão erros potenciais futuros e que executarão desempre alimentar o repositório de informação da gestão forma rápida e com baixo custo de produção.e da Qualimetria para manter um histórico evolutivo dos Garantir disponibilidade, estabilidade, baixosoftware, fornecedores, custos e ambiente. Assim, custo, menor “time-to-market”, códigos mais simples epoderemos obter relatório que nos mostrarão os de maior manutenabilidade, rápida evolução, menorganhos financeiros e qualimétricos obtidos com as retrabalho, maior desempenho, performance eregras implementadas. satisfação das expectativas do cliente são o desafio definitivo de qualquer departamento de TI, e Qualimetria e gestão de TI são as ferramentas para superar este desafio.

×