41
1 Escola Politécnica da Universidade de São Paulo 1 Defeitos de software como erros humanos II WOSES: Workshop Um Olhar Sociotécnico sobre a Engenharia de Software

Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

1

Escola Politécnica da Universidade de São Paulo

1

Defeitos de software como erroshumanosKaren Sandhof

Lucia Filgueiras

Laboratório de Tecnologia de Software

Depto. de Engenharia de Computação e Sistemas Digitais

II WOSES: Workshop Um Olhar Sociotécnico sobre a Engenharia de Software

Page 2: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

2

Escola Politécnica - USP 2

Objetivo

• Olhar para os defeitos de software sob o foco da teoria sobre o erro humano

• Identificar os fatores de influência

• Propor a monitoração dos fatores de influência como recurso para melhoriade qualidade

Page 3: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

3

Escola Politécnica - USP 3

Agenda

• Justificativa

• Erro humano

• Método do trabalho

• Resultados

Page 4: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

4

Escola Politécnica - USP 4

Agenda

• Justificativa

• Erro humano

• Método do trabalho

• Resultados

Page 5: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

5

Escola Politécnica - USP 5

Justificativa

• Modelos de qualidade são centradosnos processos

• Poucos modelos contemplam o desempenho humano

• O ser humano é falível

• O ser humano é influenciado pelocontexto

• Há estudos para o desempenhohumano confiável

Page 6: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

6

Escola Politécnica - USP 6

Agenda

• Justificativa

• Erro humano

• Método do trabalho

• Resultados

Page 7: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

7

Escola Politécnica - USP 7

Da teoria da confiabilidade

• Um erro (error) é aquela parte do estado do sistema que está sujeita a levar a umadisfunção subseqüente (mas pode não levar).

• Disfunção (failure) de um sistema ocorrequando o serviço desejado desvia do atendimento das funções do sistema – aquiloque o sistema objetiva fazer.

• Uma falha (fault) é uma causa adjudicada ao erro.

Definições do IEEE TC FTD/IFIP WG10.4

Almeida Junior, J. R.; Segurança em Sistemas Críticos e em Sistemas de Informação – Um estudo Comparativo. Tese de Livre Docência. Escola Politécnica da USP, 2003.

Page 8: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

8

Escola Politécnica - USP 8

O Homem dentro do sistema

• Disfunção é o sistema não entregar seu serviço. O Homemé contribuinte.

• Erro humano é uma situação (estado) da atuação(*) humana que pode levar a uma disfunção.

(*) atuação inclui ações, omissões, pensamentos, palavras

• Falha é a causa atribuída ao erro. Possíveis causas de erro:� Formação inadequada� Falta de habilidade motora� Mau uso do conhecimento� Mal súbito� Gestos desastrados� Fadiga, stress

Page 9: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

9

Escola Politécnica - USP 9

Confiabilidade humana

• <1980: Therp

• 1980-1990: aspectos cognitivos, violações

• 1990: GEMS, James Reason

• 1990-2000: Contexto e controle

• 2000: Engenharia da resiliência

Page 10: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

10

Escola Politécnica - USP 10

Erro Humano

• Deslizes (Slips) e Lapsos.

� a ação pretendida não atinge seu objetivo

� são provocados por uma falha na atençãodedicada durante a realização de uma tarefa.

• Enganos (Mistakes)

� falha no processo de julgamento e/ou inferência envolvida na seleção de um objetivo ou na especificação de meios para atingi-los

� as ações dirigidas pelo esquema de decisão podem ter sido executadas de acordo com o plano

Page 11: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

11

Escola Politécnica - USP 11

Fatores influenciadores do desempenho (Hollnagel)

• Adequação da organização; • Condições de trabalho;• Adequação da interface homem-sistema e apoio

operacional;• Disponibilidade de procedimentos;• Número de objetivos a serem alcançados

simultaneamente;• Tempo disponível para o atendimento as metas;• Grau de treinamento e experiência;• Eficiência na colaboração dos envolvidos.

• Os FID podem ser controlados por intervençõescomo o treinamento, a gestão da colaboração, sistemas de apoio à operação

Hollnagel, E. Cognitive Reliability and Error Analysis Method. Elsevier, 1998

Page 12: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

12

Escola Politécnica - USP 12

Hoje aceita-se que:

• O erro humano é inerente ao processocognitivo humano

• A atuação humana é afetada pelocontexto.

• A gestão sobre os fatores de influênciapode melhorar o desempenho humano

Page 13: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

13

Escola Politécnica - USP 13

Estudos sobre erro humano e software

• Nakamura (1991): 120 defeitos – 57% pordescuido. Explicar paranão repetir

• Smidts et al. (1998): modelo estocásticopara confiabilidade de software

• Nossa abordagem: controle do contextopara melhoria de qualidade

57%

13%

13%

10%

4% 3%

Humanas

Técnicas

Padrões

Sistema

Ambiente

Outros

Page 14: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

14

Escola Politécnica - USP 14

Agenda

• Justificativa

• Erro humano

• Método do trabalho

• Resultados

Page 15: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

15

Escola Politécnica - USP 15

Método

1. Identificar FIDs

2. Observar FIDs e os defeitos de software

3. Classificar os defeitos de software como erros humanos

4. Estabelecer correlação

Page 16: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

16

Escola Politécnica - USP 16

Etapas

• Pesquisa exploratória (2002)� Quais variáveis de contexto afetam o

desempenho humano?

� Como os defeitos de software sãoreconhecidos como erros humanos pelosdesenvolvedores?

• Segunda etapa (2004)� Aperfeiçoamento do protocolo

� Inclusão da dimensão temporal

Page 17: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

17

Escola Politécnica - USP 17

Desenvolvedores

• 10 desenvolvedores, 19 dias úteis

• Equipe de desenvolvimento de aplicações emcomércio eletrônico e automação bancária da Itautec

• Engajamento em atividades de melhoria de qualidade

• Participação voluntária e confidencial

• Autorização da empresa para a participação napesquisa

• Protocolo enviado diariamente por email e disponibilizado na intranet

Page 18: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

18

Escola Politécnica - USP 18

Instrumento da pesquisa

• Fatores organizacionais� Existência de processos de

desenvolvimento

� Visão do desenvolvedor sobre cooperaçãonas equipes de trabalho

� Satisfação com políticas de remuneração e recompensa

� Visão sobre a capacidade do líder da equipe

Page 19: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

19

Escola Politécnica - USP 19

Page 20: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

20

Escola Politécnica - USP 20

Fatores individuais

• Variáveis dependentes do tempo

• etapa do projeto

• grau de envolvimento com o projeto

• tipo das dificuldades experimentadas pelodesenvolvedor

• nível de cooperação com outros elementos do grupo de projeto

• existência de problemas (particulares/ financeiros/ de saúde)

• estado emocional

• percepção da carga de trabalho.

Page 21: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

21

Escola Politécnica - USP 21

Page 22: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

22

Escola Politécnica - USP 22

Page 23: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

23

Escola Politécnica - USP 23

Acompanhamento do erro

• Diariamente, por defeito encontrado

• Quem fez, quem achou

• Fase do projeto (se possível)

• Tempo desde o erro

• Processo de detecção

• Tipo de erro (lista com os maiscomuns)

• Causa atribuída ao erro

Page 24: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

24

Escola Politécnica - USP 24

Page 25: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

25

Escola Politécnica - USP 25

Page 26: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

26

Escola Politécnica - USP 26

Agenda

• Justificativa

• Erro humano

• Método do trabalho

• Resultados

Page 27: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

27

Escola Politécnica - USP 27

Resultados

• 84 erros, 10 desenvolvedores, 19 dias

• Caracterização da organização:� 50% dos projetos eram informalmente

conduzidos, sem processo de desenvolvimento

� A atitude de relacionamento era boa

� Forte insatisfação com política de RH

� Tensões entre desenvolvedores e liderança

� Demanda por maior competência gerencial

Page 28: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

28

Escola Politécnica - USP 28

ResultadosCaracterização dos projetos

• Projetos interessantes, desafiadores (10% consideravam seu projetoentediante)

• Equipe com maioria naconstrução do código(68%)

• 56% apontam estar com algum problema (24% problemas profissionais)

• Estado emocional tende a ser positivo

• Carga de trabalhopercebida como normal (26% excessiva)

Motivação do Projeto

53%

10%

10%

27%Interessante

Desafiador

Chato

Normal

Etapas do Projeto

0%

20%

40%

60%

80%

100%

Testes

Implementação

Documentação

Manutenção

Especificação

20%

2%

24%

9%

46%

0%

10%

20%

30%

40%

50%

Problemas

Problemas particulares

Problemas de saúde

Problemas profissionais

Problemas financeiros

Sem problemas

Estado Emocional

90%

10%

Positivo

Negativo

Carga de Trabalho

74%

26% 0%

Normal

Excessiva

Baixa

Page 29: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

29

Escola Politécnica - USP 29

Carga de trabalho

• Carga excessivaestá associada àfalta de conhecimento

• Carga de trabalhonão é consideradaalta se há motivação(Nasa-TLX)

Normal ExcessivaFalta de documentação 17% 23%Interrupções 24% 20%Omissão de requisitos 5% 11%Falta de conhecimento técnico 17% 23%Requisito errado 3% 3%Outros 34% 20%

Page 30: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

30

Escola Politécnica - USP 30

Resultados: erros

02468

1012141618

Dig

itaçã

o

Inte

graç

ão

Na

veg

açã

o

Inte

rface

Re

dun

dân

cia

Imp

lem

enta

ção

inco

mpl

eta

Imp

lem

enta

ção

erra

da

Outros

Requis ito errado

Falta de conhecimentotécnico

Omissão de requisitos

Interrupções

Falta de documentação

Tipo do Defeito

4%

18%

2%4%1%

23%

47%

1%

Digitação Integração

Navegação Interface

Redundância Implementação incompletaImplementação errada Outro

• Erros de digitação são atribuídos a interrupções (deslizes)

• Erros de integração são mais freqüentes e atribuídos a causas múltiplas

• Erros de implementação incompleta são atribuídos a faltade tempo, a interrupções e falta de atenção (deslizes)

• Erros de implementação errada são atribuídos a falta de documentação e falta de conhecimento técnico (enganos)

Page 31: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

31

Escola Politécnica - USP 31

Outras causas de errosmencionadas

• Falta de atenção

• Falta de tempo para análise do problema

• Falta de tempo

• Falta de testes específicos

• Comunicação

• Erro de lógica

Page 32: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

32

Escola Politécnica - USP 32

Resultados individuais

• Há casos de desenvolvedores desmotivados e insatisfeitos

Estado emocional+2

Estado emocional-3

Page 33: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

33

Escola Politécnica da Universidade de São Paulo

33

Respondendo ao erro humano

Como é hoje . . . Como deveria ser . . .Você é humanoVocê foi muito bem treinado

e

Se você agisse conforme seutreinamento, não cometeria

erros

Seres humanos cometemerros

então

Você não foi suficientementecuidadoso!

Vamos também explorar por que o sistema permitiu ou falhou em

evitar seu erroentão

Você deve ser PUNIDO! Vamos MELHORAR O SISTEMA!

e

então

e

Fonte: [GAIN,2004]

Page 34: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

34

Escola Politécnica - USP 34

Conclusões

• Para identificação e previsibilidade, deve-se levar em conta os 3 maioreselementos na produção de um erro:� A natureza da tarefa e as circunstâncias do

ambiente

� O mecanismo que gerencia o desempenho

� A natureza do indivíduo

Page 35: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

35

Escola Politécnica - USP 35

Conclusões

• A monitoração das variáveis de contexto podeser usada para:

� Identificar situações requerendo intervenção da empresa

� Reforçar os testes em determinados produtos

• Devem ser investigadas as causas e removidosos problemas comuns

• Intervenções como CRM, RELPER e análises de causas podem contribuir

• Inúmeras são as oportunidades em que o erroé corrigido

Page 36: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

36

Escola Politécnica da Universidade de São Paulo

36

Agradecemos!

[email protected]

[email protected]

Laboratório de Tecnologia de Software

Page 37: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

37

Escola Politécnica - USP 37

Erros e fatores

Digitação Navegação RedundânciaImplementação errada

Implementação incompleta Interface Integração Outros

Comunicação X X X X XRelacionamento X X X XControle sobre processos X X X X X X XPolíticas de RH X X X X XReconhecimento X X X X XProblemas pessoais X X X XProblemas financeiros X X X XProblemas profissionais X X X X X X X XProblemas de saúde X X X X XCarga de trabalho X X X X X X X XMotivação X X X XLiderança X X XEstado Emocional X X X X X X X X

Erros

Po

ssív

eis

Cau

sas

Page 38: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

38

Escola Politécnica - USP 38

Homem e Sistema

• Sistema entrega serviço ao usuário

• Homem é componente do sistema

� Exemplo: o “piloto”, visto pelo passageiro do avião� Serviço: transporte� Sistema: aeronave + tripulação� Usuário: passageiro

• Homem é operador do sistema

� Exemplo: o piloto, visto pelo projetista do cockpit� Serviço: informações, resposta aos comandos� Sistema: aeronave� Usuário: piloto

• O Homem é o sistema.

� Abordagem da psicologia

Page 39: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

39

Escola Politécnica - USP 39

Modos (Reason)

Deslize de dupla captura

Omissão após interrupção

Redução de intencionalidade

Confusão perceptiva

Erros de interferência

Omissão

Repetição

Inversão

Erros em nível de Habilidade Primeiras exceções

Countersigns e nonsigns

Sobrecarga informacional

Força de regra

Regras gerais

Redundância

Rigidez

Deficiências na Codificação

Ação deficiente

Regras erradas

Regras não elegantes

Regras não aconselháveis

Erros em nível de Regras

Page 40: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

40

Escola Politécnica - USP 40

Modos (cont)

Seletividade

Limitação da memória de trabalho

Longe dos olhos longe da mente

Viés de confirmação

Excesso de confiança

Revisão enviesada

Correlação ilusória

Efeito halo

Problemas com causalidade

Problemas com complexidade

Problemas com feedback atrasado

Consideração insuficiente do processo no tempo

Dificuldades com desenvolvimento exponencial

Pensamento em série causal e não em redes causais

Divagação temática

Enquistar

Erros em nível de Conhecimento.

Page 41: Defeitos de software como erros humanos · Classificar os defeitos de software como erros humanos 4. Estabelecer correlação. 16 Escola Politécnica - USP 16 Etapas ... Falta de

41

Escola Politécnica - USP 41

No caso deste trabalho

• Serviço: entregar software de qualidade

• Sistema: processo de desenvolvimentode software + desenvolvedores

• Usuário: clientes

• Defeitos de software: conseqüênciasdos erros humanos