Engenharia de Software de Ian Sommerville
Gerenciamento de Pessoas
Bons engenheiro de software
Não necessariamente são bons gerentes de pessoas
Possuem fortes habilidades técnicas
Podem não ter as habilidades mais flexíveis que lhes permitam motivar e liderar uma equipe de desenvolvimento de projeto
Aprendizado baseado na experiência
Fatores críticos
Consistência
Mesmo tratamento para todos os membros
Respeito
Oferecer oportunidades aos membros
Inclusão
Todas as opiniões devem ser consideradas
Honestidade
Reconhecer os progressos e erros da equipe
Motivação de pessoas
Significa organizar o trabalho e o seu ambiente
Ajuda na realização de um trabalho mais eficaz
Falta de motivação
Desinteresse pelo trabalho
Propensão a erros
Execução do trabalho de forma lenta
Pouco apoio nos objetivos da equipe ou organização
Dificuldades pessoais
Qualidade do trabalho cai
As pessoas são motivadas por
satisfazer suas necessidades
Principais necessidades de um Eng. Software
Autorrealização
Propor desafios
Atribuir responsabilidades
Desenvolver habilidades
Autoestima
Ter reconhecimento
Social
Criar relações entre os membros do grupo
Tipos de personalidades
A maneira de motivar uma pessoa depende de sua personalidade
Pessoas orientadas a tarefas
Realização do trabalho
Pessoas automotivadas
Sucesso e reconhecimento pessoal
Pessoas orientadas a interações
Presença e ações dos colegas de trabalho
Trabalho em equipe
Características de um grupo
Menos de 10 membros
Comunicação melhor em grupos pequenos
Equilíbrio entre habilidades técnicas, experiência e personalidades
Grupo coeso
Tem espírito de equipe
Membros motivados pelo sucesso do grupo e objetivos pessoais
Membros são leais ao grupo
O grupo é mais importante que os indivíduos
Benefícios
Próprios padrões de qualidade
Apoio e aprendizado entre os membros
O conhecimento é compartilhado
Refatoração e melhorias contínuas são incentivadas
Promover a coesão do grupo
Estabelecer uma relação entre os membros
Criar uma identidade do grupo
Tratar os membros do grupo como responsáveis e confiáveis
Disponibilizar informações livremente
Fatores que afetam o trabalho de equipe
Os membros
A organização
Comunicações técnicas e gerenciais
O grupo
Seleção dos membros
Buscar equilíbrio entre habilidades técnicas e personalidades
Às vezes, é impossível escolher um grupo com personalidades complementares
Organização
Afeta
As decisões tomadas
Maneira como as informações são trocadas
Interações entre grupos de desenvolvimento e os stakeholders
Escolher a liderança ideal
Decidir quem tomará as decisões técnicas críticas e como estas serão tomadas
Definir membro para interações externas
Estabelecer métodos de comunicação para membros que não partilham do mesmo ambiente físico
Determinar o método de compartilhamento de informações
Grupo informal
Tarefas distribuídas de acordo com habilidades e experiências
Extreme Programming
Estrutura formal inibe troca de informações
Programadores trabalham juntos e dividem responsabilidades
Decisões de gerenciamento atribuidas ao grupo
Tomadas de decisão em consenso
Melhora o desempenho e a coesão
Participação do líder no desenvolvimento
Ajuda no compartilhamento de informações
Memros experientes e competentes
Grande chance de sucesso
Grupo Hierárquico
Líder do grupo está no alto da hierarquia
Decisões são tomadas em direção ao topo da hierarquia
Implementações são feitas por pessoas nos níveis inferiores da hierarquia
Instruções partem de cima para baixo na hierarquia
Indicado quando um problema bem compreendido pode ser divido em subproblemas
As soluções dos subproblemas são desenvolvidas em vários níveis da hierarquia
Estrutura raramente utilizada
As alterações no software requerem mudanças em várias partes do sistema
Necessita de discussão e negociação em todos os níveis hierárquicos
Os mais jovens geralmente sabe mais sobre as tecnologias atuais
Frustração por terem que implementar tecnologia ultrapassadas
Programador-chefe
O desenvolvimento é de responsabilidade do pessoal qualificado e experiênte
Concentração no software a ser desenvolvido e não gastar muito tempo em reuniões externas
Grande dependência do programador-chefe e seu assistente
Outros membros podem ficar desmotivados por falta de responsabilidades
Comunicação
Troca de informações
Sobre status do trabalho
As decisões do projeto
As alterações nas decisões de projeto anteriores
Informar os stakeholders sobre mudanças no sistema, no grupo e nos planos de entrega
Ajuda a reforçar a coesão de grupo
Eficiência e eficácia
Tamanho do grupo
Estrutura do grupo
Composição do grupo
Ambiente físico de trabalho
Canais de comunicação disponíveis
Uma comunicação eficaz
Comunicação deve ocorrer em dois sentidos
Discussão de problemas e informações
Estabelecer um entendimento comum sobre as propostas e problemas
Pode ser feita por meio de reuniões
Utilizar tecnologias da Web para troca de informações
Ajudam a gerenciar informações e manter o controle de segmentos de discussão
Blogs
Wikis
Mensagens instantâneas
Teleconferências