terça-feira, 20 de abril de 2021

Normas de qualidade ISO

Modelos e normas de qualidade de software

A qualidade de software é um aspecto da engenharia de software que vem evoluindo, tanto em relação à qualidade do processo (da concepção à construção e manutenção) quanto em relação à qualidade do produto (o software em si).

Qualidade de software, de acordo com Pressman (2011, p. 360) se refere a “[...] uma gestão de qualidade efetiva aplicada de modo a criar um produto útil que forneça valor mensurável para aqueles que o produzem e para aqueles que o utilizam”.

Qualidade não é uma fase do ciclo de desenvolvimento de software, mas um integrante fundamental de todas as fases. Portanto, é necessário um planejamento adequado para que metas de qualidade de software sejam atingidas. Para isso são necessários modelos, padrões, procedimentos e técnicas para atingir as metas de qualidade propostas. Assim, todas as etapas do ciclo de vida de engenharia de software devem ser contempladas com atividades que visam garantir a qualidade tanto do processo quanto do produto.

Um dos primeiros modelos de qualidade de software é o que James A. McCall (2002) propõe como métricas para qualidade de software. Conhecidos como fatores da qualidade, eles avaliam o software em três pontos distintos: operação do produto, transição do produto e revisão do produto, conforme ilustra a figura.

  • Operação: refere-se às características relativas ao uso do produto. Envolve os critérios de qualidade correção, confiabilidade, eficiência, integridade e usabilidade.
  • Revisão: refere-se à capacidade do produto ser modificado e evoluído. Envolve os critérios de qualidade manutenibilidade, flexibilidade e testabilidade.
  • Transição: refere-se à adaptabilidade a novos e diferentes ambientes. Envolve os critérios portabilidade, reusabilidade e interoperabilidade.

Naturalmente surgiram outros modelos e normas para avaliação da qualidade do produto de software, notadamente as homologadas pela ISO (International Organization for Standardization) juntamente à IEC (International Electro-Technical Commission). A abordagem das normas da série ISO fundamenta-se na documentação do sistema de qualidade, estabelecendo a visão da empresa com relação aos interesses e necessidades dos clientes e, por isso, resulta na percepção deles. A abordagem da ISO para qualidade é considerada uma das mais antigas e bem estabelecidas para a indústria em geral e tem ampliado seu espaço nas empresas de software.

Além do objetivo principal de alcançar a qualidade, as organizações podem almejar a obtenção de certificações de qualidade que são adquiridas por meio da utilização destas normas e modelos.

De acordo com Koscianski e Soares (2009, p. 156), as normas da família ISO 9000 foram desenvolvidas para aplicação em qualquer organização em qualquer ramo de atividade, notadamente do setor produtivo, que deseja realizar o controle de qualidade dos produtos ou serviços oferecidos.

Curiosidade

A ISO (International Organization for Standardization ou, em português, Organização Internacional de Normalização) é formada por representantes de diversos países, cada um representado por um organismo de normas, testes e certificação. O ANSI (American National Standards Institute) é o representante ISO dos Estados Unidos e no Brasil a ISO é representada pela ABNT (Associação Brasileira de Normas Técnicas). A ABNT é uma organização que apoia o desenvolvimento de normas consensuais e providencia estrutura e mecanismos a fim de que grupos industriais ou de produtos se juntem para estabelecer um consenso e desenvolver diretivas de qualidade.

Fonte: KOSCIANSKI, André; SOARES, Michel S. Qualidade de software. São Paulo: Novatec, 2009.

“A família das normas ISO 9000 nasceu em 1987 e evoluiu nos anos de 1994, 2000, 2005 e 2008 incorporando as melhores práticas, lições aprendidas, inovações e evolução requeridas pelas empresas e mercado.

A NBR ISO 9001:2008 Sistemas de Gestão da Qualidade faz parte da família de normas ISO 9000 e estabelece requisitos que auxiliam a melhoria dos processos internos, a maior capacitação dos colaboradores, o monitoramento do ambiente de trabalho, a verificação da satisfação dos clientes, colaboradores e fornecedores, em um processo contínuo de melhoria do sistema de gestão da qualidade. Aplica-se a campos distintos dentre eles: materiais, de produtos, de processos e serviços.”

Fonte: ASSOCIAÇÃO PARA PROMOÇÃO DA EXCELÊNCIA DO SOFTWARE BRASILEIRO (SOFTEX). MPS.BR - Melhoria de Processo do Software Brasileiro. Brasília: Softex, 2016. p. 15. Disponível em: <www.softex.br>. Acesso em: 8 jun. 2017.

segunda-feira, 19 de abril de 2021

Garantia da qualidade

A garantia da qualidade (quality assurance) pode ser definida como “[...] o conjunto de atividades de apoio para fornecer confiança de que os processos estão estabelecidos e são continuamente melhorados para produzir produtos que atendam as especificações e que sejam adequados para o uso pretendido”.

Fonte: Hernaski (2010, s/p).

De acordo com Hernaski (2010), para garantir a qualidade é necessário obtê-la tanto no processo quanto no produto. A qualidade no processo pode ser quantificada através de métricas e no produto pode ser obtida através de técnicas de verificação e validação. Para isso podem ser utilizadas avaliações normatizadas, como a ISO 9000, auditorias, inspeções formais, testes, revisões, análise estatística de controle do processo etc.

De acordo com Campos (2008), os conceitos e a aplicação dos termos controle da qualidade (quality control) e garantia da qualidade (quality assurance) costumam ser confundidos. Embora usados como sinônimos, ambos os termos têm propósitos diferentes. Vejamos o Quadro, que mostra a diferença entre estas duas atividades.

QUADRO – Garantia da qualidade x controle da qualidade
Garantia da qualidade Controle da qualidade
a) Garante que o processo é definido e apropriado.
b) Metodologia e padrões de desenvolvimento são exemplos de garantia da qualidade.
c) É orientada a processo.
d) É orientada à prevenção.
e)
Foco em monitoração e melhoria de processo.
f)
As atividades são focadas no início das fases no ciclo de vida de desenvolvimento de software.
g)
Garante que você está fazendo as coisas certas e da maneira correta.
a) As atividades focam na descoberta de defeitos em itens específicos.
b) Um exemplo de controle da qualidade poderia ser: “Os requisitos definidos são os requisitos certos?”.
c)
É orientado a produto.
d) É orientado à detecção.
e)
Inspeções e garantia de que o produto de trabalho atenda aos requisitos especificados.
f) As atividades são focadas no final das fases no ciclo de vida de desenvolvimento de software.
g)
Garante que os resultados do seu trabalho são os esperados conforme requisitos.
Fonte: Campos (2017).

Pode-se afirmar que o teste de software é uma das atividades de controle da qualidade, ou seja, ele é orientado a produto e está dentro do domínio do controle da qualidade.

domingo, 18 de abril de 2021

Qualidade e o ciclo de vida do produto

O conceito de ciclo de vida do produto está vinculado ao aspecto satisfação das necessidades do cliente. A qualidade de um produto é o resultado das características por ele adquiridas ao longo de todo o seu ciclo de vida, podendo, de forma resumida, envolver:

  • Qualidade de projeto, que indica se o produto atende aos critérios de qualidade exigidas pelo consumidor e está em conformidade com os requisitos especificados no projeto.
  • Qualidade de serviços, que se refere às facilidades a serem oferecidas ao consumidor do produto durante o período em que estiver em uso ou operacional, como assistência técnica, orientação de uso etc.
  • Qualidade de uso, que se refere à soma da qualidade do projeto com a de serviços.

No processo de desenvolvimento de produtos, é importante que se promova o trabalho em equipe de forma concorrente, simultânea e colaborativa, reduzindo o ciclo de desenvolvimento do produto. Através da disseminação de poderes e responsabilidades aos indivíduos e às equipes, e da visibilidade plena de cada passo por trás do ciclo de vida, garante-se que o propósito do produto/serviço seja mantido e esteja alinhado à estratégia organizacional.

Ao observarmos o ciclo de vida de um produto ou serviço, destacam-se o período de sua criação e o período de seu declínio, indicando a necessidade de renovação ou substituição. Mas entre estes dois pontos há um intervalo de tempo que requer ações de melhoria que afetam a qualidade, a produtividade e os custos de produção. Nesse intervalo há que se buscar soluções para problemas que eventualmente ocorrem na linha de produção e na logística. Pela inovação e pela melhoria contínua, a organização pode buscar diferenciais competitivos, prolongando e ampliando suas vantagens. A Figura 8 ilustra este processo.

Todos estes conceitos podem ser aplicados às empresas e equipes envolvidas no desenvolvimento de software. O Quadro faz uma comparação entre organizações imaturas e maturas quanto às suas tomadas de decisões em assuntos relacionados à qualidade de software.

QUADRO – Maturidade das organizações quanto à qualidade
Organização imatura Organização madura
Processos de software improvisados pelos participantes durante o curso do projeto. Atividades planejadas de acordo com o processo existente.
Mesmo que um processo de software tenha sido especificado, ele não é seguido. Processo disciplinado é consistentemente seguido porque os participantes entendem o seu valor e existe a infraestrutura necessária para suportá-lo.
Gerentes focados em resolver problemas imediatos. Gerentes monitoram a qualidade do produto e do processo.
Cronogramas e orçamentos estourados, e não baseados em estimativas realistas. Cronogramas e orçamentos baseados em dados históricos e realísticos.
Quando prazos não realísticos são impostos à equipe de desenvolvimento, a qualidade e funcionalidade do produto ficam comprometidas. Processo definido atualizado quando necessário. As melhorias são descobertas através de testes-piloto controlados e da análise da relação custo/benefício.
Não há base para julgar a qualidade do produto ou para resolver problemas no processo ou produto. Base quantitativa para julgar qualidade e para analisar problemas com o produto ou processo.
Qualidade do produto imprevisível. Capacidade de gerenciar o desenvolvimento e manutenção dos processos e projetos.
Atividades que visam garantir a qualidade dos produtos (revisões e testes) são eliminadas quando o projeto está atrasado. Papéis e responsabilidades estão claros dentro da organização.
Fonte: Adaptado de SEI (2010).

sábado, 17 de abril de 2021

Qualidade total

Qualidade Total é a preocupação com a qualidade em todas as atividades da empresa, buscando sistematicamente o nível ‘zero defeito’, através da melhoria contínua dos processos de produção.” (OLIVEIRA et al., 2004; p. 94).

Total quality management (gestão de qualidade total - GQT).
Fonte: <blogspot.com>.

O termo TQM (total quality management) ou gerenciamento da qualidade total, amplamente usado nas organizações, descreve uma abordagem para a melhoria da qualidade em todos os níveis e setores. De acordo com Periard (2013), é um conceito que distribui a responsabilidade pelo alcance de patamares de qualidade para todas as pessoas envolvidas, e não apenas aos dirigentes e gestores. Desta forma, a qualidade total tem como um dos pilares o empowerment ou empoderamento das pessoas, que atribui a elas autonomia para a tomada de decisões relativas à qualidade de forma que possam solucionar questões emergentes de forma mais ágil, chegando às soluções mais rapidamente.

De acordo com Reid e Sanders (2010), TQM tem como foco a identificação das raízes dos problemas de qualidade e sua solução a partir da fonte destes problemas, ao invés de apenas inspecionar o produto depois de pronto. Os autores indicam sete princípios básicos para o TQM:

  • Customer focus: Foco no cliente: a qualidade pode ser medida pela satisfação do cliente ou mesmo quando se excede esta satisfação, a partir de suas reais necessidades.
  • Continuous improvement: Melhoria contínua: denominada kaizen pelos japoneses, requer esforços contínuos da organização, mesmo depois que a qualidade tenha sido satisfatoriamente atingida. Como nunca se atinge a perfeição, é necessário que o desempenho seja avaliado e medições sejam realizadas visando sua constante melhoria.
  • Employee empowerment: Empoderamento dos funcionários: conceito que incentiva as pessoas a buscarem problemas de qualidade e quando os encontram – são premiadas, não punidas. Além disso, há o incentivo para que busquem aprimorar a qualidade dos processos.
  • Use of quality tools: Uso de ferramentas de qualidade: como o TQM atribui grande responsabilidades às pessoas, que devem identificar e corrigir problemas de qualidade, elas precisam ser adequadamente treinadas e capacitadas. Para isso, há diversas ferramentas de qualidade que as ajudam a avaliar e medir a qualidade, mas ainda é necessário que saibam como interpretar os resultados e como fazer para corrigir os problemas.
  • Product design: Projeto do produto: para que os requisitos dos clientes possam ser traduzidos para requisitos técnicos formais há as ferramentas QFD (quality function deployment). Essas ferramentas permitem visualizar as relações entre as variáveis envolvidas no projeto do produto, confrontando os requisitos técnicos com os requisitos do cliente.
  • Process management: Gerenciamento de processos: de acordo com o TQM, a qualidade do produto é derivada da qualidade do processo. Desta forma, a qualidade deve estar presente nos processos.
  • Managing supplier quality: Gerenciamento da qualidade dos fornecedores: TQM estende o conceito de qualidade aos fornecedores, de forma que estes devam ser selecionados caso adotem práticas de qualidade em seus processos. Isso busca assegurar que os materiais/serviços entregues tenham sido fabricados/criados com qualidade e não irão comprometer o produto.

Desta forma, uma organização moderna enxerga a qualidade como uma união de conceitos que reúnem adequação ao uso, conformidade com as especificações e qualidade total nos processos. As organizações devem buscar produzir produtos e serviços com qualidade total como uma condição de competitividade e sobrevivência, e não apenas como uma estratégia de diferenciação de mercado.

sexta-feira, 16 de abril de 2021

Qualidade de processo

A qualidade no processo, de acordo com Oliveira et al. (2004), procura identificar a má qualidade o quanto antes, o que é feito pelo controle da conformidade à especificação, e corrigir o problema, evitando que continue o desperdício até o fim. Os autores afirmam que, para garantir a conformidade à especificação ao longo do processo, é necessário especificar como executar atividades e seus resultados e controlar sistematicamente todo esse processo que irá atingir a qualidade.

“A qualidade de processo é a rigorosa especificação dos processos que serão realizados na produção de um bem ou serviço, incluindo as faixas de tolerância desejadas em relação aos resultados.” (OLIVEIRA et al., 2004; p. 93)

Aqui deve-se levar em consideração a definição de qualidade como adequação ao uso, o que significa que o produto deve ter as funções necessárias à solução dos problemas do cliente e, ainda, atender aos critérios de desempenho, facilidade de uso, confiabilidade etc. Por exemplo, pode-se imaginar a existência de um cliente que vai receber o bem ou serviço, cujas necessidades de uso precisam ser satisfeitas.

É preciso ainda identificar e eliminar as fontes da má qualidade mediante alterações apropriadas no processo, ou seja, nas especificações de suas atividades.

Cliente satisfeito x cliente insatisfeito
Fonte: <qualiwork.pt>.

Oliveira et al. (2004) propõem uma lista de perguntas que realçam essa perspectiva e apontam as consequências para os processos de produção:

  • Quem são os clientes visados?
  • O que desejam e necessitam?
  • O que tais necessidades significam para os produtos e processos?
  • Quais características devem ter um produto/serviço para satisfazê-las?
  • Como fabricar esse produto ou prestar esse serviço?

Com isso, vê-se que o conceito de adequação ao uso também se dirige para a qualidade no processo. A qualidade não pode ser alcançada apenas com a verificação de conformidade dos resultados parciais em pontos escolhidos do processo. A qualidade no processo é mais que isso. Exige que os processos sejam concebidos de forma a maximizar a produção de bens e serviços que atendam às especificações.

Assim nasce a qualidade total. A preocupação é garantir qualidade em cada atividade realizada no processo de produção e evitar erros, de modo a produzir certo da primeira vez até eliminar a necessidade de inspeções, as quais perdem sentido quando cada etapa entrega seus resultados sem defeitos para a etapa seguinte e se implanta um processo explícito para melhorar sistematicamente os processos, de modo a sempre aumentar a qualidade no processo.

quinta-feira, 15 de abril de 2021

Conceitos relacionados à qualidade de software

Qualidade do produto

Hoje sabemos que a qualidade é apreciada e desejada por todos em diversos setores, desde o atendimento na prestação de um serviço até os produtos de tecnologia amplamente utilizados. Interessante é nos perguntarmos: como chegamos a este ponto?

Fazendo um retrospecto, houve época em que a qualidade estava associada primordialmente à inspeção, que utilizava mecanismos para medir se o produto estava em conformidade com algum determinado padrão. De acordo com Garvin (2002, p. 44),

[...] posteriormente, passou-se a buscar, através de instrumentos e técnicas estatísticas, conseguir um controle estatístico da qualidade. Em uma etapa posterior, o movimento da qualidade foi mais na direção de se encontrar instrumentos que visassem assegurar a sua própria garantia. Para isso, todo o processo produtivo passou a ser coordenado, desde o projeto do produto até a sua chegada ao mercado consumidor. Finalmente, a ênfase voltou-se para o gerenciamento estratégico da qualidade, no qual a preocupação maior é poder concorrer em um determinado mercado, buscando-se não só satisfazer as necessidades do consumidor, mas também a do próprio mercado. A metodologia que vai dar sustentação a essa nova mentalidade baseia-se no planejamento estratégico, no qual, sob a liderança da direção, todos na empresa passam a ter a oportunidade de serem também agentes da qualidade.

“A qualidade de produto é a rigorosa definição das características relevantes do produto, estabelecendo os atributos e as variáveis que deve conter, cuja dimensão deve ser assegurada. A especificação é o documento que formalizará essas definições.” (OLIVEIRA et al., 2004, p. 92).

De acordo com Oliveira et al. (2004), há duas formas de se alcançar a conformidade de um produto à sua especificação. Uma é a inspeção final rigorosa que segrega os produtos sem qualidade. Essa é uma alternativa cara, já que espera o consumo de material, capital e mão de obra para, só ao final do processo produtivo, separar o bom produto. Gera imenso desperdício. A outra possibilidade é introduzir a qualidade ao longo do processo produtivo, desde a verificação da conformidade dos insumos até suas especificações, evitando a cada fase a má qualidade.

Ainda de acordo com os autores, o ideal é que qualidade de produto seja aplicada em conjunto com a qualidade de processo. Para tornar isso viável, surgiram os sistemas formais da qualidade, como por exemplo, a série de normas produzidas pela ISO (International Organization for Standardization).

quarta-feira, 14 de abril de 2021

Qualidade de acordo com o PMI/PMBOK

De acordo com o PMBoK (Project Management Body of Knowledge do PMI - Project Management Institute), os processos de gerenciamento da qualidade do projeto detêm todas as atividades da organização executora que determinam as responsabilidades, os objetivos e as políticas de qualidade, de modo que o projeto atenda às necessidades que motivaram sua realização.

Para o PMBOK 5ª edição (2013, p. 227), a área de gerenciamento da qualidade do projeto

[...] usa as políticas e procedimentos para a implementação, no contexto do projeto, do sistema de gerenciamento da qualidade da organização e, de maneira apropriada, dá suporte às atividades de melhoria do processo contínuo como empreendido no interesse da organização executora. O gerenciamento da qualidade do projeto trabalha para garantir que os requisitos do projeto, incluindo os requisitos do produto, sejam cumpridos e validados.

O guia trabalha com três processos para o gerenciamento da qualidade:

  1. Planejar o gerenciamento da qualidade, que tem como objetivo identificar os requisitos e/ou padrões da qualidade do projeto e suas entregas, além de documentar como o projeto fará a demonstração de conformidade com os requisitos e/ou padrões de qualidade.
  2. Realizar a garantia da qualidade, que visa realizar a auditoria dos requisitos de qualidade e dos resultados das medições do controle de qualidade, de forma a garantir o uso dos padrões de qualidade e das definições operacionais adequadas.
  3. Realizar o controle da qualidade, que tem como meta monitorar e registrar os resultados da execução das atividades de qualidade para realizar a avaliação do desempenho e recomendar as mudanças que se fizerem necessárias.

A abordagem do gerenciamento da qualidade do PMBOK apresenta compatibilidade com os padrões de qualidade da ISO. Todos os projetos devem ter um plano de gerenciamento da qualidade e as equipes devem segui-lo, mantendo dados que sejam capazes de comprovar a conformidade com este plano.

Ainda de acordo com o PMBOK (2013, p. 229), para alcançar a compatibilidade com a ISO, as abordagens de gerenciamento da qualidade buscam reconhecer a importância dos itens listados a seguir.

  • Satisfação do cliente: devem ser realizadas ações corretas ao longo do projeto para que as expectativas e os requisitos do cliente sejam atendidos. Essas ações incluem uma combinação de conformidade com os requisitos e adequação ao uso, de forma que o projeto crie o produto especificado e que este atenda às necessidades reais.
  • Prevenção ao invés de inspeção: a qualidade deve seguir um planejamento e não passar por inspeções no gerenciamento ou nas entregas do projeto. “O custo de prevenção dos erros é geralmente muito menor do que o custo de corrigir tais erros quando eles são encontrados pela inspeção ou durante o uso.”
  • Melhoria contínua: o ciclo PDCA pode ser usado como base para a melhoria da qualidade, mas outras abordagens como o gerenciamento da qualidade total (GQT), Seis Sigma e Lean SeisSigma podem contribuir para o aprimoramento da qualidade do gerenciamento do projeto e do produto. Além disso, modelos de melhoria de processos como Malcolm Baldrige, OPM3 e CMMI podem ser utilizados.
  • Responsabilidade da gerência: embora o sucesso do projeto dependa do envolvimento de todos os membros da equipe do projeto, o comprometimento da alta direção é essencial para o suprimento dos recursos adequados, nas capacidades adequadas.
  • Custo da qualidade (CDQ): este custo está relacionado ao custo total do trabalho de conformidade e do trabalho de não conformidade, já que há a possibilidade de que parte do trabalho requerido não seja realizado ou não seja executado corretamente. Os custos da qualidade do trabalho estão implícitos às atividades ao longo de todo o ciclo de vida da entrega. Os patrocinadores podem decidir investir na melhoria da qualidade do produto, nas áreas de trabalho de conformidade que atuam para impedir defeitos ou mitigar os custos através da inspeção de itens não-conformes. Além disso, o CDQ pós-projeto deve ser considerado de forma que revisões e modelos apropriados possam ser aplicados, com recursos financeiros previstos para tal.

Curiosidade     

Como tudo começou

Em 1983, na tentativa de documentar e padronizar as práticas que são normalmente aceitas na gerência de projetos, foi publicado o artigo “Ethics, Standards, and Accreditation Committee Final Report”. A primeira edição do “A Guide to the Project Management Body of Knowledge (PMBOK Guide)” foi publicada em 1996 pelo Project Management Institute (PMI), seguida pela segunda edição em 2000.

Em 2004, o Guia PMBOK Terceira Edição foi publicado com maiores mudanças, considerando as edições anteriores. A quarta edição (lançada em 2008) é normatizada pelas normas ANSI/PMI 99-001-2008 e IEEE 1490-2011.

A última versão do Guia PMBOK é a quinta edição, que foi publicada em 2013 em inglês. Traduções estão disponíveis em árabe, chinês, francês, alemão, italiano, japonês, coreano, português, russo e espanhol.