Gestão da Qualidade de Software
Fatores Humanos na Qualidade de Software
Prof. José Jorge Dias
Departamento de Ciências Exatas
“A maneira como as
pessoas
trabalham no
desenvolvimento de software,
individualmente e
em equipe
, tem um impacto decisivo sobre os
A engenharia de software é entendida como uma
disciplina de natureza
sociotécnica
, baseada na
forte interação entre
fatores pessoais, sociais e
Tríade Processo-Tecnologia-Pessoas
• Tudo o que é relevante para a
produção de software
• Normas e modelos de qualidade
abordam processos
• A indústria dita as tecnologias a
serem utilizadas
• Não há regras ou padrões que
foquem no ser humano
Processo
Pessoas
Tecnologias
Fatores individuais e organizacionais
• Peopleware
• Inteligência emocional
• Liderança
• Motivação
• Comunicação
Peopleware
• Conceito que engloba as pessoas de uma empresa e os diversos
elementos da estrutura organizacional ligados a elas [DeMarco, 1990]
• Políticas e sistemas de RH (remuneração, premiação, carreira), papéis, responsabilidades, etc
• Afeta a produtividade e qualidade
• Má remuneração • Mau gerenciamento • Delegação de tarefas
• Ambiente de trabalho ruim
Peopleware
• Pessoas não são iguais e não podem ser tratadas igualmente
• Perfis, aspirações e capacidades devem ser considerados
Coesão da equipe
• Processo dinâmico que se reflete na tendência que um grupo tem em
estar unido e manter-se unido na procura dos seus objetivos
instrumentais para a satisfação das necessidades afetivas dos seus
membros [Carron et al., 1998]
• Percepções de um membro do grupo como uma totalidade
• Refere-se a integração do grupo
• Proximidade de um membro dentro da equipe
• Atrativos pessoais de um membro para o grupo
Inteligência emocional
• É o conjunto de aptidões básicas necessárias para lidar
adequadamente com as diferentes situações da existência e com
relacionamentos interpessoais e grupais familiares, sociais e no
trabalho [Goleman, 1995]
• QE tão importante quanto QI
• O estado emocional de um desenvolvedor também precisa de
atenção
Inteligência emocional
• Auto-Conhecimento Emocional - reconhecer as próprias emoções e
sentimentos quando ocorrem;
• Controle Emocional - lidar com os próprios sentimentos,
adequando-os a cada situação vivida;
• Auto-Motivação - dirigir as emoções a serviço de um objetivo ou
realização pessoal;
• Reconhecimento de emoções em outras pessoas - reconhecer
emoções no outro e empatia de sentimentos; e
• Habilidade em relacionamentos inter-pessoais - interação com
outros indivíduos utilizando competências sociais.
Liderança
• O gerenciamento de pessoas é um dos fatores que pode afetar muito
a qualidade
• Um dos fatores mais negligenciados
• O gerente (ou líder) é aquele que deve tornar possível o trabalho de
toda a equipe
• Deve assegurar de que nada externo interfira no rendimento de cada um
• Uma liderança está relacionada na força de influência que se exerce
sobre as outras pessoas
Motivação
• Funciona como resultado da
interação entre o indivíduo
e a situação que o envolve
• A mesma pessoa pode ter
diferentes níveis de
motivação que variam ao
longo do tempo
• Está ligada a incentivos
como recompensas
• Também está relacionada a
busca pela aceitação do
grupo e reconhecimento de
sua capacidade profissional
O ciclo motivacional. Fonte: CHIAVENATO, 2004.
Motivação
A pirâmide de necessidades de Maslow e suas implicações. Fonte: CHIAVENATO, 2004.
Motivação
• Motivadores segundo França (2009)
• Benefícios, recompensas e incentivos financeiros;
• Desenvolvimento pessoal (oportunidade de treinamento, especialização etc.); • Variedade de trabalhos (fazer um largo uso das suas habilidades);
• Perspectivas de carreira (promoção ou plano de carreira); • Bom gerenciamento;
• Sensação de pertencimento (relações amigáveis com colegas de trabalho); • Balanceamento do trabalho com a vida pessoal;
• Trabalhar em empresas de sucesso (estabilidade financeira); • Participação, envolvimento, trabalho em equipe;
• Receber feedback (emitir informações e opiniões sobre o desempenho do colaborador);
Motivação
• Reconhecimento pessoal (não necessariamente financeiro);
• Equidade (tratamento igualitário da equipe por parte da gerência); • Identificação com a tarefa (interesses pessoais no trabalho)
• Autonomia (liberdade para gerenciar suas próprias tarefas); • Condições de trabalho apropriadas;
• Confiança/Respeito; • Trabalho desafiador; • Ambiente estável; • Recursos suficientes;
Motivação
• Segurança no trabalho;
• Significado do trabalho (fazer contribuições significativas para a vida das pessoas);
• Condições de trabalho apropriadas; • Resolução de problemas;
• Mudança constante;
• Experimentar coisas novas;
• Aplicação de boas práticas de engenharia de software; • Participação em todo ciclo de vida do projeto;
Motivação
• Desmotivadores
• Risco; • Estresse;
• Inequidade (reconhecimento baseado em fatores subjacentes); • Terceirização do trabalho mais interessante;
• Sistema de recompensas injusto;
• Falta de oportunidade de crescimento; • Falta de identificação com o trabalho; • Falta de comunicação;
Motivação
• Desmotivadores
• Salário abaixo do mercado;
• Metas e objetivos que não são realistas, prazos mentirosos; • Mau relacionamento com usuários ou colegas de trabalho;
• Ambiente de trabalho pobre, falta de investimentos e recursos; • Gerenciamento ruim, reuniões que são perda de tempo;
• Má qualidade do produto;
Comunicação
• O profissional de software passa cerca de 50%
do seu dia se comunicando com pessoas
[Lago, 2000]
• Todos do grupo devem ter em mente os
objetivos do trabalho
• Requisitos, Sprint, produto, arquitetura etc.
• Barreiras:
• Pessoais • Físicas
Fatores humanos que influenciam na
qualidade
• Pressão no desenvolvimento de software
• Prazos apertados geram pressão, desencadeando mais stress
• Segundo uma pesquisa do Standish Group em 1995, a pressão sobre os desenvolvedores pode quadruplicar o número de erros
• Alocar mais recursos para cumprir as atividades talvez não seja a melhor saída.
• Pode aumentar o custo do projeto e a complexidade na interação entre os membros da equipe
Fatores humanos que influenciam na
qualidade
• A cultura de horas extras
• Pela falta de processos definidos, em muitas empresas existe muito retrabalho
• O sucesso dos projetos depende muito do esforço heroico dos profissionais que apagam incêndio
• Para cumprir o prazo, os profissionais se desdobram tentando realizar
atividades as vezes complexas e que envolve concentração após o horário do expediente
• Muitas vezes se torna rotina
• Apesar do ganho financeiro, não se percebe o aumento na produtividade
Fatores humanos que influenciam na
qualidade
• Aplicação de metodologias padronizadas: resistências
• Empresas sem maturidade contratam consultorias externas para auxiliarem em seus processos
• Não envolve corretamente os profissionais da empresa • Há muita resistência por parte desses profissionais
• Pode acontecer também quando existe um departamento de qualidade definindo os processos
• A formação técnica, sem os conhecimentos adequados de engenharia de software, faz com que estes técnicos acreditem que o desenvolvimento de software é uma arte que envolve apenas criatividade
Fatores humanos que influenciam na
qualidade
• Conflitos interpessoais
• Existe um egocentrismo no desenvolvimento de software uma vez que projetar e codificar soluções exige uma certa criatividade
• O desenvolvedor se sente responsável por sua criação a ponto de defende-la até as últimas instâncias
• Defeitos encontrados pelo testador podem ser interpretados como uma crítica pessoal
• Também há conflitos entre as diferentes áreas da empresa
Fatores humanos que influenciam na
qualidade
• Dificuldades da alta gerência em prover incentivos
• Não é uma tarefa trivial para uma empresa de software
• Precisa ser apoiada por dados quantitativos para se calcular produtividade e eficiência
• Existem vários aspectos a serem considerados
Boas práticas para as influências humanas
• Institucionalização dos processos
• Softwares criados sem processos definidos geralmente causam dependência do produto aos profissionais que os desenvolveram
• Os profissionais precisam entender a importância dos processos
• Para alcançar um processo institucionalizado é preciso investimento de recursos financeiros e tempo
Boas práticas para as influências humanas
• Planos realísticos
• Planos realísticos e honestos fazem parte das organizações maduras
• É função do gerente de projeto fazer com que a equipe sinta-se bem no projeto
• Os riscos devem ser analisados e gerenciados continuamente • É necessário buscar métricas mais precisas
• É importante a construção de uma base histórica de projetos anteriores para servir de base para projetos futuros
• O gerente precisa ganhar a confiança da equipe
• Apenas mandar realizar as atividades não ganhará a confiança
• Gerente que tem conhecimentos técnicos x gerente com capacidade de liderança? [Ver vídeo]
Boas práticas para as influências humanas
• Revisão por pares
• É difícil encontrar defeitos no próprio trabalho
• Qualquer artefato pode ser revisado por outra pessoa
• Deixar claro que a revisão é sobre o produto e não sobre o profissional • É interessante que as revisões sejam executadas de acordo com um
Boas práticas para as influências humanas
• Investimentos no profissional de TI
• Atualizar, especializar, certificar são ações comuns e necessárias para qualquer profissional
• Funcionários se sentem valorizados quando há investimento em sua formação contínua