Gestão do Risco e da Qualidade no Desenvolvimento de Software Questionário Taxinómico do Software Engineering Institute António Miguel
1. Constrangimentos do Projecto Os Constrangimentos ao Projecto referem-se aos elementos externos ao projecto de desenvolvimento em si, na medida em que podem estar fora do controlo do chefe de projecto, mas ainda assim constituírem factores importantes de risco, podendo ter impactos significativos no sucesso do projecto. 1.1. Restrições Contratuais Tipo de Contrato (O tipo de contrato é uma fonte de risco para o projecto?) Q01 Qual o tipo de contrato que possui? (preço fixo, custo mais prémios de produtividade,...). Apresenta qualquer cláusula que possa ser fonte de riscos para o projecto? Q02 O contrato é pesado em algum aspecto do projecto? Descrição do Trabalho Especificações Penalidades Prazos Envolvimento excessivo do utilizador Q03 A documentação exigida é pesada? Quantidade excessiva Cliente minucioso Ciclo de aprovação longo Restrições (O contrato apresenta algumas restrições?) Q04 Existem problemas com direitos de propriedade de alguns itens necessários ao projecto? Package Software ambiental Dependências Contratuais (O projecto tem algumas dependências relativamente a produtos ou serviços externos?) Q05 Existem dependências face a produtos ou serviços externos, que possam afectar o produto, o orçamento, ou o prazo? Equipamento ou software fornecido pelo cliente/utilizador Subcontratados Fornecedores 1
1.2. Recursos Atribuídos ao Projecto Prazos (Os prazos são inadequados, ou instáveis?) Q06 Os prazos são realistas? O método de estimativa é baseado em dados históricos? O método foi eficaz no passado? Q07 Existe alguma coisa para a qual não foi planeado um prazo adequado? Análise e estudos Garantia da Qualidade Treino Cursos e treino de manutenção Equipamento capital Sistema de desenvolvimento Q08 Há dependências externas que possam afectar o projecto? Pessoal (O pessoal é inexperiente, falta -lhe conhecimento do domínio aplicacional ou aptidões, ou há falta de pessoal? ) Q09 Existem algumas áreas em que faltem as necessárias aptidões técnicas? Domínio aplicacional Metodologia de análise de requisitos Engenharia de sistemas Desenho e métodos de desenho Linguagens de programação Métodos de integração e testes Gestão da configuração Factores humanos Garantia da qualidade Ambiente de produção do produto Nível de segurança Reutilização de software Sistema operativo Base de dados Análise de desempenho Q10 Tem o pessoal adequado para o projecto? Q11 O pessoal é estável? Q12 Tem acesso às pessoas certas, quando necessita delas? 2
Q13 Os elementos do projecto já implementaram sistemas deste tipo? Q14 O projecto depende de um grupo pequeno de pessoas chave? Orçamento (O orçamento é insuficiente, ou instável?) Q15 O orçamento é estável? Q16 O orçamento baseia-se numa estimativa realista? método de estimativa é baseado em dados históricos? método foi eficaz no passado? Q17 Houve aspectos ou funções que foram abandonados, devido a um esforço de contenção orçamental? Q18 Existe alguma coisa para a qual não foi atribuído orçamento? Análise e estudos Garantia da Qualidade Treino Cursos de manutenção Equipamento capital Q19 As alterações ao orçamento acompanham as alterações dos requisitos? Se SIM Isto constitui um procedimento standard do processo de controlo de alterações? Instalações e Equipamento (As instalações e o equipamento são adequados para o projecto?) Q20 As instalações e o equipamento de desenvolvimento são adequados? Q21 O ambiente de integração é adequado? 1.3. Interfaces do Projecto Cliente / Utilizador (Existem alguns problemas com o cliente / utilizador, tais como: ciclo de aprovação de documentos muito longo; comunicação deficiente; conhecimento inadequado do domínio?) Q22 O ciclo de aprovação do cliente / utilizador é conveniente? Documentação Revisões do projecto Revisões formais Q23 Alguma vez avançou, sem a provação do cliente? Q24 O cliente compreende os aspectos técnicos do sistema? Q25 O cliente entende de software? 3
Q26 O cliente interfere com o processo, ou com as pessoas? Q27 A gestão do projecto trabalha com o cliente, para obter decisões de mútuo acordo, em tempo oportuno? Compreensão dos requisitos Critérios de testes Ajustamentos nos prazos Interfaces Q28 Qual a eficácia dos seus mecanismos para alcançar acordos com o cliente? Grupos de trabalho (contratual?) Reuniões de intercâmbio técnico (contratual?) Q29 Todas as facções do cliente estão envolvidas nos acordos a obter? É um processo formalmente definido? Q30 A gestão do projecto apresenta ao cliente uma imagem realista, ou optimista? Subcontratados (caso hajam) (o projecto está dependente de subcontratados, para alguma área crítica?) Q31 Existem algumas ambiguidades nas definições das tarefas dos subcontratados? Q32 O procedimento de monitorização e relato do subcontratado é diferente dos requisitos de relato do projecto? Q33 A administração e gestão técnica do subcontratado é feita por uma organização separada? Q34 Está altamente dependente de um subcontratado em qualquer área? Q35 Os conhecimentos do subcontratado estão a ser transferidos para a companhia? Q36 Existe algum problema em obter prazos ou dados de interface de algum subcontratado? Fornecedores (Os fornecedores são sensíveis às necessidades do projecto?) Q37 Está dependente de fornecedores, para a entrega de componentes críticos? Compiladores Bases de dados Software aplicacional ( packages ) Hardware Gestão de Topo (Há falta de suporte da gestão de topo?) Q38 A gestão do projecto comunica os problemas à gestão de topo? 4
Essa comunicação aparenta ser eficaz? Q39 A gestão de topo suporta-o, em tempo oportuno, na resolução dos seus problemas? Q40 A gestão do projecto apresenta uma imagem realista ou optimista à gestão de topo? Questões Políticas (Há questões políticas a causar problemas ao projecto?) Q41 Existem políticas que afectam o projecto? Da companhia Do cliente Dos subcontratados Q42 As políticas afectam as decisões técnicas? 2. Ambiente de Desenvolvimento 2.1. Processo de Gestão do Projecto Planeamento (O planeamento é oportuno, são incluídas as chefias técnicas, é feito o planeamento de contingências?) Q43 O projecto é gerido de acordo com o plano? As pessoas têm de abandonar frequentemente as suas tarefas, para apagar fogos? Q44 É feito um replaneamento quando ocorrem disrrupções? Q45 As pessoas, a todos os níveis, são incluídas no planeamento das suas tarefas próprias? Q46 Existem planos de contingência para os riscos conhecidos? Como é que determina o momento de activar essas contingências? Q47 As questões de longo prazo estão a ser adequadamente tratadas? Organização do Projecto (São claros os papéis e as relações hierárquicas?) Q48 A organização do projecto é eficaz? Q49 As pessoas compreendem o seu papel, bem como o dos outros, no projecto? 5
Q50 As pessoas sabem quem tem autoridade e para quê? Experiência de Gestão (Os gestores, a todos os níveis do projecto, são experientes no desenvolvimento de software, na gestão de software, no domínio aplicacional, no processo de desenvolvimento, ou em grandes projectos?) Q51 O projecto tem gestores experientes? Gestão de software Métodos desenvolvimento de software Neste processo de desenvolvimento No domínio aplicacional Na dimensão ou complexidade do projecto Interfaces do Projecto (Há interfaces pobres com o cliente, outros contratados, subcontratados, gestão de topo?) Q52 A gestão comunica problemas em ambos os sentidos da cadeia hierárquica? Q53 Os conflitos com o cliente são oportunamente resolvidos e documentados? Q54 O chefe de projecto envolve os adequados elementos da equipa em reuniões com o cliente? Chefias técnicas Analistas Engenheiros de sistemas Q55 A gestão do projecto trabalha de modo a garantir que todas as facções do cliente são representadas, em decisões respeitantes à funcionalidade e à operação? Q56 É uma boa política apresentar uma visão optimista, ao cliente ou à gestão de topo? 2.2. Métodos de Gestão Monitorização (As métricas de gestão estão definidas e o progresso do desenvolvimento é monitorizado?) Q57 Há relatórios de situação, periódicos e estruturados? As pessoas obtém uma resposta aos seus relatórios de situação? Q58 A informação adequada é relatada aos níveis organizacionais apropriados? Q59 Monitoriza o progresso, face ao plano? A gestão do projecto tem uma visão clara do que se passa? 6
Gestão de Pessoal (O pessoal do projecto é treinado e utilizado de forma adequada?) Q60 As pessoas são treinadas nas aptidões e conhecimentos exigidos para este projecto? Isto faz parte do plano do projecto? Q61 Há pessoas atribuídas ao projecto, que não se ajustam ao perfil e experiência necessários à sua área de trabalho? Q62 É fácil, para os membros do projecto, disporem da atenção da gestão? Q63 Os membros do projecto, a todos os níveis, estão conscientes da sua situação face ao plano? Q64 As pessoas sentem que é importante seguirem o plano? Q65 A gestão do projecto consulta as pessoas, antes de tomar decisões que afectam o seu trabalho? Q66 A gestão do projecto envolve os adequados membros da equipa em reuniões com o cliente? Chefias técnicas Analistas Engenheiros de sistemas Garantia da Qualidade (Há procedimentos e recursos adequados para assegurar a qualidade do produto?) Q67 A função garantia da qualidade do software possui os adequados recursos humanos? Q68 Estão definidos mecanismos para assegurar a qualidade? Todas as áreas e fases têm procedimentos de qualidade? As pessoas estão habituadas a trabalhar com estes procedimentos? Gestão da Configuração (Os procedimentos de alterações, ou o controlo de versões, incluindo sites de instalação, são adequados?) Q69 Existe um sistema adequado sistema de gestão da configuração? Q70 A função gestão da configuração tem as pessoas adequadas e em número suficiente? Q71 É exigida coordenação com o sistema instalado? Existe uma adequada gestão da configuração, para o sistema instalado? sistema de gestão da configuração permite a sincronização do trabalho do 7
projecto, com as alterações do site? Q72 O projecto é para ser instalado em múltiplos sites? O sistema de gestão da configuração prevê sites múltiplos? 2.3. Ambiente de Trabalho Atitude Face à Qualidade (Existe uma falta de orientação para com o trabalho de qualidade?) Q73 Todos os níveis de pessoal estão orientados para procedimentos de qualidade? Q74 A definição dos prazos tomou em conta a questão da qualidade? Cooperação (Há falta de espírito de equipa? A resolução de conflitos obriga à intervenção da gestão?) Q75 As pessoas trabalham de forma cooperante, através das fronteiras funcionais? Q76 As pessoas trabalham eficazmente, para objectivos comuns? Q77 É necessária, por vezes, a intervenção da gestão do projecto, para garantir que as pessoas trabalham em conjunto? Comunicação (Há uma fraca consciência da missão, ou objectivos? Há deficiências de comunicação da informação técnica, entre os gestores e pessoas do mesmo nível? ) Q78 Existe uma boa comunicação entre os membros do projecto? Gestores Chefias técnicas Analistas Pessoal dos testes Gestão da configuração Garantia da qualidade Q79 Os gestores estão receptivos à comunicação do pessoal do projecto? Eles sentem-se à vontade para pedir ajuda aos seus chefes? Os elementos da equipa de projecto são capazes de identificar riscos, sem terem uma solução para eles? Q80 Os elementos do projecto recebem, oportunamente, notificação de eventos que podem afectar o seu trabalho? A notificação é formal, ou informal? 8
Moral (Há uma atmosfera não produtiva, ou não criativa? As pessoas sentem que não existe qualquer reconhecimento ou recompensa para o trabalho de qualidade superior?) Q81 O moral da equipa de projecto é elevado? Qual o principal factor que contribui para o baixo moral? Q82 Há algum problema em manter as pessoas de que necessita? 3. Ambiente Técnico 3.1. Requisitos do Sistema Estabilidade (Os requisitos são alterados, mesmo durante o desenho e programação?) Q83 Os requisitos são estáveis? Qual o efeito no sistema? 1. Qualidade 2. Funcionalidade 3. Prazo 4. Integração 5. Desenho 6. Testes Q84 Os interfaces externos estão a ser alterados? Inteireza (Há requisitos que faltam, ou que estão especificados de forma deficiente ou incompleta?) Q85 Existem, nas especificações, algumas tarefas a serem definidas? Q86 Há alguns requisitos que sabe deviam estar nas especificações, mas que não estão? Consegue inserir esses requisitos no sistema? Q87 O cliente tem requisitos, ou expectativas, não documentadas? Existe algum modo de saber e capturar esses requisitos? Q88 Os interfaces externos estão completamente definidos? 9
Clareza (Existem requisitos que não estejam claros, ou que necessitem de interpretação?) Q89 Consegue compreender os requisitos, do modo como estão escritos? As ambiguidades estão a ser resolvidas de forma satisfatória? Não existem ambiguidades, ou problemas de interpretação? Validade (Os requisitos expressos conduzem ao produto que o cliente tem em mente?) Q90 Existem alguns requisitos que possam não especificar aquilo que o cliente realmente pretende? Como é que vai resolver esta situação? Q91 Você e o cliente têm o mesmo entendimento sobre os requisitos? Existe algum processo para determinar isso? Q92 Como é que valida os requisitos? Prototipagem Análise Simulações Exequibilidade (Os requisitos são exequíveis, de um ponto de vista analítico?) Q93 Existem alguns requisitos que são tecnicamente difíceis de implementar? Quais são? Porque são difíceis de implementar? Foram feitos estudos de viabilidade para esses requisitos? Qual o seu grau de confiança nos pressupostos assumidos nesses estudos? Precedentes (Os requisitos especificam algo nunca feito anteriormente, ou que a empresa não fez antes?) Q94 Há alguns requisitos novos, em termos de: Tecnologias 10
Métodos Linguagens Hardware Alguns destes requisitos são novos para si? O projecto tem conhecimento suficiente nessas áreas? Há algum plano para adquirir conhecimento sobre essas áreas? Escala (Os requisitos especificam um produto maior, mais complexo, ou que requeira uma organização maior que aquelas em que a companhia tem experiência?) Q95 A dimensão e complexidade do sistema constitui uma preocupação? Alguma vez fez algo desta dimensão e complexidade? Q96 A dimensão do projecto exige uma organização superior ao habitual na companhia? 3.2. Desenho do Sistema Funcionalidade (Existem alguns potenciais problemas em satisfazer os requisitos de funcionalidade?) Q97 Há alguns algoritmos especificados que possam não satisfazer os requisitos? Há alguns dos algoritmos ou desenhos, que sejam marginais relativamente à satisfação dos requisitos? Q98 Como é que determina a exequibilidade dos algoritmos e desenhos? Prototipagem Modelização Análise Simulações Dificuldade (Há alguma dificuldade em desenhar e/ou implementar o sistema?) Q99 Algum dos desenhos depende de pressupostos irrealistas ou optimistas? Q100 Alguns dos requisitos ou funções são difíceis de desenhar? 11
Tem soluções para todos os requisitos? Quais são esses requisitos? Porque é que são difíceis? Interfaces (Os interfaces internos hardware e software estão bem definidos e controlados?) Q101 Os interfaces internos estão bem definidos? Software com software Software com hardware Q102 Existe algum processo para definir os interfaces internos? Existe um processo de controlo de alterações para os interfaces internos? Q103 Existe hardware a ser desenvolvido em paralelo com o software? As especificações do hardware estão a ser alteradas? Foram bem definidos todos os interfaces com o software? Haverá protótipos do hardware que possam ser usados para testar o software? Desempenho (Existem tempos de resposta limite, ou requisitos de débito?) Q104 Há alguns problemas no respeitante ao desempenho? Débito ( throughput ) Calendarização de eventos assíncronos em tempo real Tempos de resposta Limites de tempos de recuperação Resposta, acesso, ou conflitos de bases de dados Q105 Foi efectuada alguma análise do desempenho? Qual o seu grau de confiança nessa análise? Utiliza algum modelo para monitorizar o desempenho ao longo do desenho e da implementação? Facilidade de Testes (É difícil, ou impossível, testar o produto?) Q106 O software vai ser fácil de testar? Q107 O desenho inclui aspectos para ajudar e facilitar os testes? Q108 O pessoal dos testes é envolvido na análise dos requisitos? 12
Restrições do Hardware (Há algumas restrições sérias no hardware de produção?) Q109 O hardware limita a sua capacidade para satisfazer os requisitos? Arquitectura Capacidade da memória Débito Resposta em tempo real Tempo de recuperação Desempenho da base de dados Funcionalidade Fiabilidade Disponibilidade Software Não Desenvolvido no Projecto (Há alguns problemas com software usado no projecto, mas que não foi desenvolvido pelo projecto?) Caso exista software reutilizado ou alterado Q110 Está a reutilizar ou a alterar software, não desenvolvido no projecto? Prevê alguns problemas? Documentação Desempenho Funcionalidade Disponibilidade a tempo Adaptação Caso esteja a ser utilizado software comercial (package) Q111 Existem alguns problemas com a utilização do package? Documentação insuficiente para determinação dos interfaces, dimensão, ou desempenho Desempenho pobre Exige muita memória ou espaço de base de dados Dificuldade de interligação com o software aplicacional do projecto Não testado profundamente Não isento de bugs Manutenção não adequada Resposta lenta do fornecedor Q112 Prevê alguns problemas com a integração de actualizações ou revisões a este package? 13
3.3. Testes Parciais do Código Exequibilidade (A implementação do desenho é difícil, ou impossível? ) Q113 Existem algumas partes da implementação do produto que não estejam completamente definidas pelas especificações do desenho? Q114 Os algoritmos e desenhos escolhidos são fáceis de implementar? Testes (O nível e tempo especificados para testes, são adequados?) Q115 Dá início aos testes modulares, antes de verificar o código relativamente ao desenho? Q116 Foram especificados suficientes testes modulares? Q117 Há tempo suficiente para realizar todos os testes modulares que pensa devam ser feitos? Q118 Serão feitos alguns compromissos, no respeitante aos testes modulares, caso haja problemas de prazos? Codificação / Implementação (Há alguns problemas com a codificação e a implementação?) Q119 As especificações do desenho estão suficientemente detalhadas para permitir escrever o código? Q120 Há alterações ao desenho, em simultâneo com a codificação? Q121 Existem limitações do sistema que tornem difícil a escrita do código? Q122 A linguagem é adequada para a produção do software deste projecto? Q123 Há várias linguagens usadas no projecto? Existe compatibilidade nos interfaces entre o código produzido pelos diferentes compiladores? Q123 O ambiente (hardware e software) de desenvolvimento é o mesmo que o ambiente de produção? Existem diferenças importantes entre ambos? 3.4. Integração e Testes Finais Ambiente (O ambiente de integração e testes é adequado?) Q125 Haverá suficiente hardware para efectuar uma adequada integração e testes finais? Q126 Há algum problema com o desenvolvimento de cenários e dados realistas, para 14
demonstrar quaisquer requisitos? Tráfico especificado para os dados Resposta em tempo real Gestão de eventos assíncronos Interacção de múltiplos utilizadores Q127 É capaz de verificar o desempenho no ambiente de desenvolvimento de que dispõe? Produto (A definição dos interfaces é inadequada, os recursos são inadequados, o tempo é insuficiente?) Q128 O hardware de produção estará disponível, quando necessário? Q129 Foram acordados os critérios de aceitação para todos os requisitos? O acordo foi formalizado? Q130 Os interfaces externos estão definidos e documentados? Q131 Há alguns requisitos que sejam difíceis de testar? Q132 Foi atribuído o tempo adequado para integração e testes? Caso esteja a ser utilizado software comercial (package) Q133 Os dados do fornecedor vão ser aceites, sem verificação dos requisitos atribuídos ao package? O contrato é claro sobre este aspecto? Sistema (Integração do sistema descoordenada, definição dos requisitos pobre, recursos inadequados?) Q134 Foi especificada suficiente integração do sistema? Q135 Foi atribuído o tempo adequado para a integração do sistema e para testes? Q136 Todas as partes contratadas fazem parte da equipa de integração? Q137 O produto vai ser integrado com um sistema já existente? Há um período de cutover, em paralelo com o sistema existente? Como é que garante que o produto irá funcionar correctamente, quando integrado? Q138 A integração do sistema é feita no site do cliente? 15
3.5. Engenharia de Software Facilidade de Manutenção (suporte pós instalação) (O produto implementado será de difícil compreensão, ou manutenção?) Q139 A arquitectura, o desenho, ou o código criam alguma dificuldade à manutenção? Q140 O pessoal do suporte pós instalação foi envolvido, desde o início, no desenho? Q141 A documentação do produto é adequada, caso seja uma organização exterior a efectuar a manutenção? Disponibilidade e Fiabilidade (Os requisitos de disponibilidade, ou fiabilidade, são difíceis de satisfazer?) Q142 Há requisitos de fiabilidade atribuídos ao software? Q143 Há requisitos de disponibilidade atribuídos ao software? Os tempos de recuperação exigidos constituem algum problema? Segurança (Os requisitos de segurança para o software, são mais rigorosos que os actualmente praticados na companhia, ou que aqueles de que a equipa de projecto tem experiência?) Q144 Há requisitos de segurança sem precedentes, ou que sejam o state-of-the-art na matéria? Q145 Já implementou alguma vez este nível de segurança? Factores Humanos (O sistema será de difícil utilização, devido a uma definição pobre do interface humano?) Q146 Prevê dificuldades em satisfazer os requisitos de Factores Humanos? Como é que assegura que satisfará os requisitos do interface humano? Se realiza protótipos Q147 É um protótipo reutilizável? Faz desenvolvimento evolucionário? Tem experiência neste tipo de desenvolvimento? Estão disponíveis versões intermédias? Isto complica o controlo das alterações? Especificações (A documentação é adequada para o desenho, implementação e teste do sistema?) 16
Q148 A especificação de requisitos do software é adequada para o desenho e implementação do sistema? Q149 As especificações do hardware são adequadas ao desenho e implementação do software? Q150 Os requisitos dos interfaces externos estão bem especificados? Q151 As especificações dos testes são adequadas para um teste total ao sistema? 17