ALOCAÇÃO DE RECURSOS HUMANOS APLICADA A...
Transcript of ALOCAÇÃO DE RECURSOS HUMANOS APLICADA A...
ALOCAÇÃO DE RECURSOS HUMANOS APLICADA A SOLICITAÇÕES DE MUDANÇA
DE SOFTWARE
RICARDO VOIGT
Orientador: Everaldo Artur Grahl
• Introdução
• Objetivo do trabalho
• Fundamentação Teórica
• Desenvolvimento
• Resultados e Discussões
• Conclusão
• Extensões
• Demonstração
Roteiro
Introdução
• Gerenciamento de pessoas
• Manutenção de software corresponde por 60% de todo o esforço
• Processo não sistemático, baseado em experiência pessoal
• Norma ISO/IEC 12207
Objetivo do trabalho
Desenvolver uma ferramenta de apoio à alocação de recursos humanos aplicados a
solicitações de mudança de software
Objetivos Específicos
• Aplicar algoritmo de busca para seleção do melhor recurso humano para a solicitação
• Avaliar a aderência da ferramenta a norma ISO/IEC 12207
Gestão de Mudanças
• Mudanças de software
• Alto custo da manutenção
• Problemas de sistema
• Mudanças de regra de negócio e/ou legislação
Recursos Humanos
• Equipe com experiência, capacitada e qualificada
• As pessoas representam o capital intelectual
• Conhecimento, Habilidade e Atitude (competência)
Algoritmo Genético MultiObjetivo NSGA-II
• Em problemas de engenharia de software são utilizadas metaheurísticas (busca local, busca tabu e algoritmo genético)
• Implementa o conceito de dominância, classificando a população total em fronts de acordo com o grau de dominância
• Retorna um ou mais elementos como melhor solução identificada.
Norma ISO/IEC 12207
Garantir que todos os problemas serão identificados, analisados, gerenciados e controlados até a resolução • é desenvolvida uma estratégia de gestão de problemas
• os problemas são documentados, identificados e classificados
• problemas são analisados e avaliados para identificar soluções aceitáveis
• é implementada a resolução de problemas
• problemas são rastreados até o seu fechamento
• o estado de cada um dos problemas relatados é conhecido
Norma ISO/IEC 12207
Adaptação da norma a solicitação de mudança • é desenvolvida uma estratégia de solicitação de mudanças
• as solicitações de mudanças são documentadas, identificadas e classificadas
• as solicitações de mudanças são analisadas e avaliadas para identificar soluções aceitáveis
• é implementada a resolução da solicitação de mudança
• solicitações de mudanças são rastreadas até o seu fechamento
• o estado de cada solicitação de mudança é conhecido
MVC Framework
• Lógica da interface do usuário pertence à View
• Entrada lógica pertence ao Controller
• Lógica do negócio pertence ao Model
• Concentra em um aspecto da aplicação de cada vez
Desenvolvimento
• Requisitos
• Especificação
– Diagrama de casos de uso
– Diagramas de classes
– Diagrama de seqüência
– Diagrama de atividades
• Implementação
• Resultados
Requisitos Funcionais
• Cadastro de sistemas, módulos, habilidades, competências, conhecimentos, recursos, prioridades, solicitações de mudança, tipos de solicitação
• Alocação manual de recursos
• Alocação automática de recursos com NSGA-II
• Calendário de alocação de recursos
Não Funcionais
• C# ASP.NET utilizando Microsoft Visual Studio 2010
• SQL Server
• Compatível com navegadores IE, Firefox, Chrome
• Atender as diretrizes da norma ISO/IEC 12207
Diagrama de classes
class 4.1 Modelo de classes
Sistema
- Codigo: int
- Descricao: string
Modulo
- Codigo: int
- Descricao: string
- Sistema: Sistema
Requisito
- Codigo: int
- Descricao: string
- Modulo: Modulo
Usuario
- Codigo: int
- Descricao: string
Recurso
- Codigo: int
- Descricao: string
- HorasDia: int
- Funcao: Funcao
Funcao
- Codigo: int
- Descricao: stringHabilidade
- Codigo: int
- Descricao: string
Competencia
- Codigo: int
- Descricao: string
Conhecimento
- Codigo: int
- Percentual: double
Prioridade
- Codigo: int
- Descricao: string
- Ordem: int
Tipo Solicitacao
- Codigo: int
- Descricao: string
SolicitacaoMudanca
- Codigo: int
- Numero: int
- Solicitacao: String
- Descricao: string
- DataSolicitacao: datetime
- PrazoCliente: datetime
- PrazoEntrega: datetime
Feriado
- Codigo: int
- Descricao: string
- DataInicio: datetime
- DataFim: datetime
Restricao
- Codigo: int
- DataInicio: datetime
- Descricao: string
- DataFim: datetime
AlocacaoRecurso
- Codigo: int
- DataInicio: datetime
- DataFim: datetime
TipoRestricao
- Codigo: int
- Descricao: string
Projeto
- Codigo: int
- Descricao: string
Status
- Codigo: int
- Descricao: string
Solicitante
- Codigo: int
- Nome: string
- Email: string
Cliente
- Codigo: int
- Descricao: string
RecursoHabilidade
- percentual: int
0..*
1
0..*
1
0..*
1
0..*
0..*
1
0..*
0..*
1
0..*1
0..*
1
0..*
1
0..*
1
1..*
1
1..*
1
0..*1
1
1..*
0..*1
1..*
1
1..* 1
1
0..*
1
0..*
0..*1
Diagrama de seqüência sd Diagrama de Sequencia
Gerente
«view»
Alocacao
«controller»
AlocacaoController
«Model»
AlocacaoRecurso
ExecutarAlocacao()
Executar()
GeraListaSolicitacoes()
GeraListaRecursos()
CrowdingDistance()
CalculaDiasInicio()
OrdenaCrowd()
CalculaRank()
GravarAlocacao()
Create()
Diagrama de
atividades
act Diagrama de Ativ idades
SistemaGerenteInicio
Seleciona Alocação
Automática
Seleciona todas as
Solicitações de
Mudanças pendentes
Ordena por
ordem de
prioridade
Seleciona os recursos
com funçao de
programador
Itera a lista de solicitações
de mudanças
Itera na lista
de recursos
Calcula a pontucao conforme
competencia, habilidade e
conhecimento
Acabou lista de
recursos?Itera na lista
de recursos
Adiciona na lista de
Dominantes,
Dominados e Geração
conforme a pontuação
Acabou lista de
recursos?
Ordena a lista de recursos
dominantes pela pontuação
Ordena a lista de recursos
geração pela pontuação
Crowding Distance
Dominantes
OrdenaCrowd
CalculaRank
Ordena Recursos pela
pontução
Seleciona o primeiro recurso
Grav a alocação do recurso para a
solicitaçao de mudança
Acabou lista de
solicitaçao de
mudança?
Fim
Gera v isualização da
alocação
[Não]
[Não]
[Sim]
[Não]
[Sim]
[Sim]
Diagrama de
atividades
act Diagrama de Ativ idades
SistemaGerenteInicio
Seleciona Alocação
Automática
Seleciona todas as
Solicitações de
Mudanças pendentes
Ordena por
ordem de
prioridade
Seleciona os recursos
com funçao de
programador
Itera a lista de solicitações
de mudanças
Itera na lista
de recursos
Calcula a pontucao conforme
competencia, habilidade e
conhecimento
Acabou lista de
recursos?Itera na lista
de recursos
Adiciona na lista de
Dominantes,
Dominados e Geração
conforme a pontuação
Acabou lista de
recursos?
Ordena a lista de recursos
dominantes pela pontuação
Ordena a lista de recursos
geração pela pontuação
Crowding Distance
Dominantes
OrdenaCrowd
CalculaRank
Ordena Recursos pela
pontução
Seleciona o primeiro recurso
Grav a alocação do recurso para a
solicitaçao de mudança
Acabou lista de
solicitaçao de
mudança?
Fim
Gera v isualização da
alocação
[Não]
[Não]
[Sim]
[Não]
[Sim]
[Sim]
Implementação
• Microsoft .Net Framework 3.5
• Microsoft ADO.NET Entity Framework
• Microsoft ASP.NET MVC Framework
• Microsoft Visual Studio 2010
• Microsoft SQL Server 2008
Implementação
Alocação automática
Por que NSGA-II ? Pontuação: conhecimentos: (1000 * percentual) recurso x modulo da SMS habilidades: (100 * percentual) recurso x modulo da SMS competências: 10 pontos para cada competência do recurso
Operacionalidade da Implementação
act Fluxo
Cadastros
Alocação
Automática
Alocação
Manual
Visualização da
Alocação
FimInicio
Resultados e discussões
Funcionalidade Voigt Bastos QuickArrow
Plataforma Web Web Web
Idioma Português Português Inglês
Geração automática de alocações
Sim Sim Não
Visualização das alocações através de calendário de recursos
Sim Sim Sim
Cadastro de recursos e atributos Sim Sim Sim
Controle de custos Não Não Sim
Integração com outros sistemas Não Não Sim
Alocação múltipla por dia Sim Não Não
Resultados e discussões
• suporta estratégia de solicitação de mudança de software
• as solicitações de mudança de software são documentadas, identificadas e classificadas
• as solicitações de mudança de software são avaliadas parcialmente para identificar soluções aceitáveis
• as solicitações de mudança de software são identificadas, classificadas e estimadas;
• as solicitações de mudança de software são rastreados até seu fechamento parcialmente
• o estado de cada uma das solicitações de mudança de software é conhecido
Norma ISO/IEC 12207
Resultados e discussões
Teste realizado na Benner Sistemas com recursos reais
Caso real – Benner Sistemas
Conclusão
• Objetivo alcançado
– maior agilidade no processo de alocação de recursos humanos para as solicitações de mudança de software
• NSGA-II (Ganho de tempo + experiência)
• Norma ISO/IEC 12207
– aderente de forma total e parcial a 75% dos resultados previstos pela norma
Conclusão
• Uso de tecnologias atuais
– C# ASP.Net, Entity Framework, LINQ, MVC
• Teste com cenário real na empresa Benner
Extensões
• Exportação dos resultados para outras ferramentas de cronograma de projetos
• Criação de uma API para a entrada de solicitações de mudanças
• Incorporar funções para maior abrangência da norma ISO/IEC 12207
• Comparação do cronograma previsto com o realizado