Resumos
Riscos são fatores de incerteza que afetam a atividade humana em vários níveis. Gerenciá-los é uma questão chave para o sucesso dos projetos em que podem ocorrer. No campo do desenvolvimento de software, uma área em que é inerente um alto grau de incerteza e onde há a participação de vários profissionais envolvidos, gerenciar variáveis de risco se tornou uma necessidade. O presente estudo mostra a obtenção de uma categorização de riscos no desenvolvimento de software por meio de análise fatorial exploratória utilizando a técnica de análise de componentes principais (PCA - Principal Component Analysis). Para aplicar esta técnica foram coletadas estimativas de gravidade dos riscos e de probabilidade de ocorrência dos mesmos entre gerentes de projeto e desenvolvedores membros de comunidades virtuais na internet. A categorização de variáveis de riscos permite uma maior compreensão das suas relações e a possibilidade do tratamento das mesmas em um nível mais alto, lidando com fatores de maior grau de abrangência ao invés de se pulverizar esforços controlando muitas pequenas variáveis simultaneamente. Foram identificados sete fatores, sendo que seis deles revelaram boa confiabilidade interna: Gerência de Projetos, Equipe de Desenvolvimento, Escopo e Requisitos, Conhecimento e Incerteza Tecnológica, Relacionamento com o Ambiente Externo, Relacionamento com o Cliente/ Usuário e Valor/ Importância Atribuídos ao Projeto. O texto discorre sobre os resultados obtidos e aponta linhas de investigação para aprimoramento do arcabouço teórico da área, destacando possibilidades que podem ser aplicadas por Gerentes de Projetos e Desenvolvedores de Software nos seus processos cotidianos de gestão de riscos.
ARTIGOS CIENTÍFICOS
Cláudio Bezerra LeopoldinoI; Denis BorensteinII
IUniversidade Federal da Bahia - Salvador, BA/Brasil. cbleopoldino@ea.ufrgs.br
IIUniversidade Federal do Rio Grande do Sul - Porto Alegre, RS/Brasil. denisb@ea.ufrgs.br
RESUMO
Riscos são fatores de incerteza que afetam a atividade humana em vários níveis. Gerenciá-los é uma questão chave para o sucesso dos projetos em que podem ocorrer. No campo do desenvolvimento de software, uma área em que é inerente um alto grau de incerteza e onde há a participação de vários profissionais envolvidos, gerenciar variáveis de risco se tornou uma necessidade. O presente estudo mostra a obtenção de uma categorização de riscos no desenvolvimento de software por meio de análise fatorial exploratória utilizando a técnica de análise de componentes principais (PCA - Principal Component Analysis). Para aplicar esta técnica foram coletadas estimativas de gravidade dos riscos e de probabilidade de ocorrência dos mesmos entre gerentes de projeto e desenvolvedores membros de comunidades virtuais na internet. A categorização de variáveis de riscos permite uma maior compreensão das suas relações e a possibilidade do tratamento das mesmas em um nível mais alto, lidando com fatores de maior grau de abrangência ao invés de se pulverizar esforços controlando muitas pequenas variáveis simultaneamente. Foram identificados sete fatores, sendo que seis deles revelaram boa confiabilidade interna: Gerência de Projetos, Equipe de Desenvolvimento, Escopo e Requisitos, Conhecimento e Incerteza Tecnológica, Relacionamento com o Ambiente Externo, Relacionamento com o Cliente/ Usuário e Valor/ Importância Atribuídos ao Projeto. O texto discorre sobre os resultados obtidos e aponta linhas de investigação para aprimoramento do arcabouço teórico da área, destacando possibilidades que podem ser aplicadas por Gerentes de Projetos e Desenvolvedores de Software nos seus processos cotidianos de gestão de riscos.
Palavras-chave: Gerência de Projetos, Gestão de riscos, Desenvolvimento de Software, Análise de Componentes Principais, Tecnologia da Informação.
ABSTRACT
Risks are factors of uncertainty that affect human activity on various levels. Manage them is a key issue for the success of projects that may occur. In the field of software development, an area that has inherently a high degree of uncertainty and where there is participation of various professionals involved, manage risk variables has become a necessity. The present study shows the obtaintion of a categorization of risks in software development by means of exploratory factor analysis using the technique of principal component analysis (PCA - Principal Component Analysis). To apply this technique were collected estimates of severity of risk and probability of their occurrence between project managers and developers members of virtual communities on the Internet. The categorization of risk variables allows a greater understanding of their relationship and the possibility of treating them in a higher level, dealing with factors of greater extent rather than spraying efforts managing many small variables simultaneously. Seven factors were identified, and six of them showed good internal reliability: Project Management, Team Development, Scope and Requirements, Knowledge and Technological Uncertainty Relationship with the External Environment, Relationship with the Client / User and value / importance attributed for the Project. The text discusses the results and points to lines of research for improvement of the theoretical area, highlighting opportunities that may be implemented by Project Managers and Software Developers in their daily processes of risk management.
Keywords: Project Management, Risk Management, Software Development, Principal Component Analysis, Information Technology.
1. Introdução
Riscos são fatores de incerteza que afetam a atividade humana em vários níveis. Gerenciá-los é uma questão chave para o sucesso do desempenho dos projetos em que podem ocorrer. No campo do desenvolvimento de software, uma área em que é inerente um alto grau de incerteza e onde há participação de vários profissionais e envolvidos, gerenciar variáveis de risco se tornou uma necessidade. Existem evidências empíricas de que os riscos impactam o desempenho dos projetos desenvolvidos (JIANG et al., 2002).
Através de técnicas de gerência de riscos, as variáveis de potencial danoso são identificadas, analisadas e uma resposta apropriada é desenvolvida (KENDALL et al., 2007; SOUZA, 2007; BABOK, 2006). Pressman (1996) afirma que a gerência de riscos é crucial para um bom gerenciamento de projeto de software. Esta não é uma tarefa trivial em virtude da multiplicidade de ameaças do meio ambiente interno e externo aos projetos.
A lista de variáveis potencialmente danosas a ser gerenciada pode ser bastante extensa, gerando custos e consumindo tempo precioso dos gestores. A complexidade das soluções implementadas está em constante crescimento, o que dificulta o controle dos riscos relacionados. Souza (2007) afirma que à medida que "tamanho e a complexidade dos sistemas de software crescem, aumenta a necessidade da utilização de metodologias para o gerenciamento de riscos". Neste sentido, ferramentas e processos como a categorização de riscos permitem uma melhor gestão por agregar um grande número de variáveis em um número menor de componentes de maior abrangência.
O presente trabalho visa apresentar uma classificação alternativa de fatores abrangentes de risco com base em análise fatorial exploratória, utilizando o método PCA (Principal Component Analysis), na área de desenvolvimento de software. A pesquisa se desenvolveu no sentido de encontrar uma categorização de riscos por meio de fatores identificados na avaliação de riscos de gerentes de projeto e desenvolvedores e levou em conta tanto a probabilidade de ocorrência quanto a gravidade potencial das variáveis de risco na obtenção dos fatores de risco.
Como benefícios adicionais do desenvolvimento e aplicação destas categorizações podem ser citados: um maior grau de integração em uma área ainda fragmentada do conhecimento, a maior compreensão das relações entre as variáveis de risco pesquisadas e a possibilidade do tratamento das mesmas em um nível mais alto, trabalhando-se com componentes principais de maior grau de abrangência ao invés de se pulverizar esforços controlando muitas pequenas variáveis simultaneamente. Acredita-se que o "agrupamento de riscos segundo causas-base comuns pode conduzir ao desenvolvimento de respostas mais eficazes aos riscos" (PEREIRA, 2005, p. 17). Jiang e Klein (1999) acrescentam que a habilidade de segmentar as categorias de risco permitirá direcionar recursos e atenção para mitigar aquelas áreas de maior grau de dificuldade.
Na pesquisa realizada foram identificados sete fatores, sendo que seis deles revelaram boa confiabilidade interna: Gerência de Projetos; Equipe de Desenvolvimento; Escopo e Requisitos; Conhecimento e Incerteza Tecnológica; Relacionamento com o Ambiente Externo; Relacionamento com o Cliente/ Usuário; Valor/ Importância Atribuídos ao Projeto.
O texto trata como sinônimos os termos componente de risco e fator de risco, para caracterizar a visão mais abrangente composta por itens mais gerais. As palavras "variável" e "item de risco" também são tratadas no texto como sinônimos, indicando os riscos individualmente. As variáveis podem estar ou não contidas em um fator mais abrangente, dependendo dos resultados do processo de classificação de riscos. Após uma breve discussão sobre a gerência de riscos no desenvolvimento de software é apresentado o método empregado na investigação, a caracterização da amostra e os fatores de risco obtidos. Em seguida são apresentados os procedimentos de validação e a discussão dos resultados.
2. Gerência de riscos em desenvolvimento de software
O desenvolvimento de software é uma área onde a incerteza afeta o resultado dos projetos. São vários os relatos de projetos fora das especificações, entregues fora do prazo, que ultrapassam os custos previstos ou que simplesmente são cancelados, consumindo uma grande quantidade de recursos sem a obtenção dos resultados desejados (KENDALL et al., 2007; THE STANDISH GROUP, 1995; JIANG e KLEIN, 1999; BARKI et al., 2001; ROPPONEN e LYYTINEN, 2000; JIANG et al., 2002).
Os problemas na condução dos projetos se refletem em várias referências que atestam a necessidade de se aprimorar a condução dos projetos de software. Os cancelamentos de projetos podem chegar a 25%, e os projetos que excedem o orçamento previsto chegam a 80% (KENDALL et al., 2007, p. 7). Segundo a pesquisa de Barki et al. (2001), mais de 50% dos projetos analisados ultrapassaram os valores previstos no orçamento, enquanto que 42% ultrapassaram o tempo previsto para sua conclusão. De acordo com o Standish Group (1995), apenas 16,2% dos projetos de software foram completados dentro do cronograma e do prazo estipulado, sendo que a taxa de cancelamento antes da sua conclusão atingiu 31,1%. Tais dados atestam que a gerência de riscos em projetos é uma necessidade dos desenvolvedores de software tanto evitá-los ou mitigar seus efeitos.
Outro indício da importância de gerência de riscos em software é a sua agregação a padrões de desenvolvimento e de gerência de projetos. O PMBOK - Project Management Body of Knowledge (2002) coloca a gerência de riscos como uma das principais áreas de conhecimento em gerência de projetos, composta por seis processos: planejamento da gestão de riscos; identificação de riscos; análise quantitativa de riscos; análise qualitativa de riscos; planejamento de resposta ao risco e por fim monitoramento e controle de riscos.
O BABOK - Business Analysis Body of Knowledge (2006) inclui entre as práticas recomendadas procedimentos de gestão de riscos adaptados de acordo com a complexidade dos projetos. O SWEBOK - SoftWare Engineering Body of Knowledge (2001) apresenta 79 citações à palavra risco, dispersas entre as várias áreas da engenharia de software. A IEEE definiu um padrão de gerência de riscos no ciclo de vida de software (2001). A Microsoft colocou a gerência de riscos com uma das três disciplinas do seu padrão MSF - Microsoft Solutions Framework (MSF, 2003).
A própria evolução da engenharia de software teve como um dos principais direcionadores a disciplina de gestão de riscos (KENDALL et al., 2007, p. 7). A gestão de riscos acompanha praticamente todo o ciclo de vida do desenvolvimento de programas e sistemas.
Dentro do processo de desenvolvimento de software, Boehm (1991) apresenta divide o gerenciamento de riscos em dois blocos principais:
Avaliação - nesta etapa os riscos são identificados e listados (podem ser geradas listas específicas por projeto, por exemplo), analisados em função da sua ocorrência, gravidade e relacionamentos com outras variáveis e por fim ordenados em ordem de prioridade de tratamento; Controle - planejamento das atividades de gerenciamento de risco, implementação de ações de resolução do risco, com eliminação dos mesmos ou a sua minoração, com o constante monitoramento das variáveis identificadas na fase de avaliação.
Um terceiro bloco pode ser identificado (IEEE, 2001), contendo as atividades relacionadas à avaliação e melhoria do próprio processo de gerenciamento de riscos utilizado. São procedimentos que envolvem a aquisição de informação a respeito do processo de gestão de riscos, levantamento e implementação de aprimoramentos no mesmo.
Avaliar os riscos envolve a sua identificação, análise e priorização. A identificação dos riscos pode ser feita por consulta a tomadores de decisão, checklists, consulta a experiência própria, entre outras possibilidades. (BOEHM, 1991). A análise de riscos levanta estimativas de probabilidade de ocorrência dos riscos identificados e do grau de impacto negativo dos mesmos caso ocorram, seja por procedimentos quantitativos e/ou qualitativos. Algumas técnicas de análise de riscos são modelos de custo, análise em rede, modelos de performance, etc. (BOEHM, 1991).
A priorização dos riscos compreende a definição dos riscos mais relevantes através de algum processo sistemático formal, envolvendo métodos quantitativos ou qualitativos. Esta atividade apresenta grande importância para a condução dos projetos de software (PEREIRA, 2005, p. 181). Os riscos prioritários são candidatos a um controle maior por parte da liderança do projeto. Pode ser feita utilizando-se análise de exposição ao risco, análise de custo-benefício e método Delphi, etc (BOEHM, 1991) e durante vários momentos no transcorrer do projeto. A análise pode envolver ainda outras dimensões tais como o grau de dificuldade em se identificar o risco no projeto, o custo de mitigação entre outras possibilidades.
Um problema da gerência de riscos é o fato de se poder levantar dezenas de variáveis de risco para cada projeto, oriundas de várias fontes. A grande quantidade de riscos nos projetos dificulta o seu gerenciamento. Para ilustrar a variabilidade dos riscos no ambiente de desenvolvimento, pode-se citar a taxonomia desenvolvida pelo SEI (Software Engineering Institute) para seus projetos de desenvolvimento de softwares científicos e de engenharia englobando sistemas para rotinas de alta precisão e alta performance(KENDALL et al., 2007, p. 3). Hierarquizada em classes de riscos, elementos de riscos e atributos de riscos, engloba tanto riscos gerenciáveis quanto os que são oriundos de forças externas que estariam fora do controle do gestor do projeto, situação que dificulta ainda mais a sua mitigação (KENDALL et al., 2007, p. 27).
Caso se deseje lidar com múltiplas variáveis de risco, as medidas de controle teriam de ser pulverizadas entre cada um dos itens identificados, consumindo mais tempo e recursos. Um fator motivador desta pesquisa foi a necessidade de se levantar opções para a categorização de riscos como ferramenta para a agilização da sua gestão. A agregação dos riscos em categorias oferece aos gestores de projeto a possibilidade de manipular um grupo menor de objetos representativos do risco inerente aos projetos.
O Quadro 1 apresenta alguns estudos que envolvem categorizações de riscos em software e que serviram de base para a realização deste estudo. Esta pesquisa apresenta uma classificação diferente das apresentadas no Quadro 1, com o mérito de ser fundamentada tanto na estimativa de probabilidade quanto na de ocorrência de riscos por parte dos profissionais de desenvolvimento de software brasileiros, obtida por meio de uma análise fatorial exploratória.
Esta breve revisão bibliográfica coloca a gestão de riscos como elemento central do desenvolvimento de software, como parte tanto da gerência de projetos como da engenharia de software. O detalhamento dos processos de gestão de riscos está fora do escopo desta seção.
3. Método
Para obter informações mais detalhadas e proceder às análises estatísticas, decidiu-se por uma coleta de dados via questionário disponível na internet e divulgada nas comunidades de gestão de projetos de software. O instrumento de coleta foi inicialmente concebido em três partes, contendo a caracterização da amostra, as estimativas de gravidade e de ocorrência dos riscos.
Para cada variável de risco foi perguntada separadamente a probabilidade de ocorrência do mesmo e o grau de impacto negativo que a mesma poderia trazer, utilizando-se escalas de 1 a 5. Para a caracterização da amostra foram recolhidos dados sobre a empresa, o entrevistado, sua experiência profissional e sobre o projeto atual. Após o desenvolvimento do instrumento de coleta, foi construída e validada a versão web para aplicação em campo.
No sentido de subsidiar a construção do instrumento de coleta, foi realizada uma revisão bibliográfica em busca de estudos que apresentassem a identificação e/ou enumeração de variáveis de risco e com bom número de citações. Para a definição da lista de riscos utilizada na confecção do instrumento, foram colocados como critérios a quantidade de itens de risco, que não podia ser excessiva (maior que 40 itens) ou pequena demais (menor de 12 itens), a sua atualidade e o fato de se aplicarem a múltiplos contextos, e não a categorias específicas de projetos de software como projetos acadêmicos e orientados para o reuso de código.
Dentre as várias opções levantadas na bibliografia disponível, o trabalho de Schmidt et al.(2001) se adequou perfeitamente aos critérios propostos, apresentando ainda a característica de ter sido realizado simultaneamente em três países (Estados Unidos, Finlândia e Hong Kong) com base nas percepções de gerentes de projeto de software. Esta foi, portanto a listagem inicial adotada para a confecção do instrumento de coleta utilizado nesta pesquisa.
Para validação da lista, de sua tradução para o português e eliminação de itens desnecessários, uma versão do instrumento foi submetida à apreciação de dois especialistas, gerentes de projeto de software com experiência em exportação indicados pelo agente Softex do Rio Grande do Sul, SOFTSUL, os quais preencheram o questionário e avaliaram as variáveis utilizadas. As entrevistas foram gravadas com autorização dos respondentes e posteriormente transcritas e analisadas, o que resultou em algumas modificações feitas no instrumento de coleta proposto. Os testes indicaram que os riscos da lista apresentada eram compatíveis com os que eram vivenciados na sua rotina profissional e apenas uma variável adicional foi sugerida e adicionada ao instrumento. Nenhuma variável de risco foi retirada em virtude de todas serem consideradas relevantes.
O protótipo do sítio de coleta foi construído e um teste piloto foi feito na Procergs (Companhia de Processamento de Dados do Rio Grande do Sul), com funcionários do DPRO (Departamento de Projetos) resultando em correções para facilitar no entendimento e reduzir o tempo de preenchimento.
O último teste feito antes da aplicação em campo foi feito com acadêmicos de mestrado e doutorado da área de sistemas de informação do PPGA/UFRGS com a versão web do questionário. Como resultado foram feitas as últimas alterações na navegação da aplicação e a enquete foi colocada no ar e divulgada nas comunidades de gerentes de projeto e desenvolvedores de software na internet.
A versão final do instrumento de coleta contou com 32 variáveis de risco (vide Tabela 7) e a coleta de dados tomou aproximadamente dois meses.
3.1 Caracterização da Amostra
Foram coletados em dois meses 89 questionários, dos quais 81 foram considerados corretamente preenchidos, sendo 56 de gerentes de projeto e 25 de desenvolvedores de software de todo o país.
Os 56 gerentes de projeto que responderam o questionário apresentam em média uma boa experiência em projetos de software (aproximadamente 13 anos). Também participaram de muitos projetos distintos (média de 28,13), incluindo projetos de média/ longa duração (média de 18,89 meses) e com equipes numerosas (média de aproximadamente 16,86 para o maior projeto).
A duração média para o projeto atual dos respondentes no momento do preenchimento foi de 12,91 meses, para equipes com 7,85 integrantes em média. Acrescenta-se que apenas o projeto corrente dos profissionais de software foi utilizado como referência para o preenchimento das respostas relativas aos riscos de modo a evitar viés retrospectivo por parte dos respondentes (BARKI et al., 2001).
Uma das questões específicas para gerentes de projeto perguntou aos respondentes a respeito de sua formação em Gerência de Projetos. Cada gestor tinha espaço para indicar cursos, certificações, suas cargas horárias e as instituições que os ofereciam à comunidade. Constatou-se que mais de 44% dos respondentes possuíam pelo menos um curso na área, além da experiência prática. Cerca de 44,6% dos 56 gerentes possuíam alguma formação específica em Gerência de Projetos (vide Tabela 1).
Quanto ao tipo de formação, foram encontrados cursos de pequena e média duração, certificações, especializações e mestrado. Sendo que em vários casos os respondentes tinham mais de uma formação em Gerência de Projetos (vide Tabela 2).
Os 25 Desenvolvedores que responderam o questionário apresentam em média uma boa experiência em projetos de software (aproximadamente 7,7 anos). Também participaram de muitos projetos distintos (média de 14,5). Participaram de projetos de média/ longa duração (média de 18,1 meses, similar à dos gerentes de projeto) e com equipes razoavelmente numerosas (média de aproximadamente 10,8 para o maior projeto).
Para o projeto atual dos Desenvolvedores, utilizado como referência para o preenchimento das respostas relativas aos riscos, a duração média foi de 13,2 meses, para equipes com 7 integrantes em média, valor muito similar ao encontrado para os gerentes de projeto (vide Tabela 3).
Os dados relativos à experiência dos gerentes e desenvolvedores foram considerados satisfatórios, com indicadores de experiência significativos, o que permitiu a exploração das respostas coletadas.
3.2 Fatores Obtidos
Foram identificados sete fatores principais, representando 69,61% da variância. Cada fator deve ser visto como uma forma mais abrangente de classificar/ entender/ trabalhar com um conjunto maior de riscos através de um número menor de grandes componentes. Os componentes extraídos foram: Gerência de Projetos, Equipe de Desenvolvimento, Escopo e Requisitos, Conhecimento e Incerteza Tecnológica, Relacionamento com o Ambiente Externo, Relacionamento com o Cliente/ Usuário e Valor/ Importância Atribuídos ao Projeto.
A obtenção destes fatores foi realizada utilizando-se a técnica de Análise de Componentes Principais (PCA). O PCA é um procedimento de transformação de variáveis que permite identificar as que são responsáveis pela maior parte da variância encontrada na amostra (LANDIN, 2002). A utilização do PCA em análise fatorial exploratória identificou os sete fatores apresentados acima, seis dos quais validados por teste de confiabilidade interna da escala.
A aplicação do PCA obteve sete fatores a partir de trinta e duas variáveis. O padrão resultante se revelou bem mais claro e sintético que o rol inicial de variáveis, resumindo boa parte da variabilidade dos riscos em um número pequeno de fatores.
Para agregar na análise as dimensões de probabilidade de ocorrência e gravidade, antes da aplicação da técnica, foi criada, para cada uma das variáveis de risco, uma nova variável com o seu valor consolidado, resultante da soma da estimativa da ocorrência com a gravidade, subtraídas de uma unidade. Desta forma, duas variáveis com uma escala de 1 a 5 geram uma só variável composta, em uma escala variando de 1 a 9, para análise fatorial, gerando uma variável estatística composta por várias variáveis com peso igual, procedimento descrito por Hair Jr. et al. (2005, p. 27). Nos casos em que o respondente não indicou a probabilidade ou ocorrência de um risco ou utilizou a opção "não se aplica", a variável gerada ficou com valor nulo. Sua fórmula é calculada da seguinte forma:
GO(X.Y) = O(X.Y)+G(X.Y)-1
Onde:
GO(X.Y) = Peso do risco número Y da categoria X
O(X.Y) = Estimativa da probabilidade de ocorrência do risco
G(X.Y) = Estimativa da gravidade do risco
A técnica PCA foi então aplicada no conjunto das novas variáveis criadas, sendo que os poucos valores nulos das variáveis GO(X.Y) foram substituídos pelas médias das mesmas. Os resultados quanto à confiabilidade das análises foram satisfatórios e estão descritos na próxima seção.
O indicador utilizado para teste da adequação da amostra à análise de componentes principais foi o teste de Kaiser-Meier-Olkin, que de uma escala de 0 a 1 atingiu 0,794, valor considerado na fronteira entre o médio e bom. O teste indica o grau de adequação da amostra e valores acima de 0,6 são considerados aceitáveis (PESTANA e GAGEIRO, 2000).
O primeiro ponto a se esclarecer após a aplicação da técnica foi à definição do método para indicar o número de fatores extraídos. O PCA permite o uso de vários métodos para definir quantos dos fatores gerados serão utilizados, cada um aplicável em um certo número de situações, cabendo ao pesquisador a tarefa de identificar o critério mais adequado a cada situação. O método utilizado nesta pesquisa foi o Critério dos Autovalores.
Segundo a literatura, um valor igual ou superior a 1 indica que um fator representa a variância total de pelo menos uma variável. Utilizando-se este critério, todos os autovalores inferiores a 1 são considerados não significantes, sendo desconsiderados. Este critério não deve ser aplicado indiscriminadamente (HAIR, 2005). Para a sua aplicação deve ser considerado o número de variáveis do modelo, o que se revelou adequado para a aplicação do método (entre 20 e 50 variáveis, temos os resultados mais confiáveis).
Os sete fatores gerados explicam 69,61% da variância da amostra, valor mais que adequado. Enquanto que para ciências naturais a variância explicada deve ser maior que 95%, nas ciências humanas valores acima de 60% são aceitos e, em certos casos, valores menores podem ser considerados (HAIR, 2005).
A relação entre as variáveis de risco e os fatores está especificada na tabela 4, com os valores mais significativos destacados em cinza. Em poucos casos uma variável chegou a estar ligada a mais de um componente principal e em apenas um caso uma variável ficou relacionada a três fatores. A matriz com as cargas fatoriais é o resultado da rotação Varimax em conjunto com a normalização de Kaiser, métodos consagrados de tratamento de dados em PCA. Após estes tratamentos as cargas fatoriais das variáveis ficam mais facilmente interpretáveis. A Tabela 5 apresenta um sumário dos resultados obtidos.
Para fazer a ligação com os componentes de risco, foram selecionadas as variáveis cujos valores de carga fatorial obtidos estivessem acima de 0,4. Ropponen e Lyytinen (2000) citam que a literatura aceita valores acima de 0,30 para amostras maiores que 50. Nos poucos casos em que uma variável estava em mais de um fator houve uma amarração com base na afinidade conceitual entre cada variável e os nomes atribuídos aos fatores.
3.3 Análise da Confiabilidade Interna
Para verificar a confiabilidade interna dos componentes identificados foi feito o teste Alfa de Crombach. A consistência interna indica a proporção da variabilidade nas respostas que resulta nas diferenças de opinião entre os entrevistados (PESTANA e GAGEIRO, 2000). Caso a confiabilidade da escala seja muito baixa, provavelmente o questionário seja confuso ou os itens tenham várias interpretações. Foram feitos testes por variável e por construto levantado na análise de componentes principais.
Os resultados mostraram que seis dos sete construtos apresentando valores sempre bem acima de 0,6, valor aceitável (ROPPONEN e LYYTINEN, 2000). O Alfa de Crombach varia entre 0 e 1. Apenas o sétimo componente, "Valor/ Importância Atribuídos ao Projeto", não obteve um valor satisfatório de confiabilidade interna. Tal situação possivelmente se deve ao fato do mesmo possuir apenas duas variáveis e o Alfa de Crombach ser muito influenciado pela correlação entre as variáveis e pelo seu número (PESTANA e GAGEIRO, 2000). O pequeno número de variáveis não permitiu que níveis mais altos de confiabilidade fossem obtidos.
Poderia ser considerada a retirada o último dos resultados do estudo por uma questão de parcimônia, mas o mesmo foi mantido, deixando a pergunta a respeito da real validade deste componente é deixada para futuras investigações. Outras variáveis possam ser adicionadas ao fator posteriormente, melhorando a consistência interna do construto, ou o mesmo possa ser eliminado ou agregado a outro componente mais abrangente.
Os resultados obtidos (vide tabela 6) indicam que o questionário foi suficientemente bem compreendido pelos respondentes, atestando a validade do instrumento utilizado.
1.4 Os Fatores Identificados
Os fatores identificados sumarizam os riscos e destacam fatores chave para que os processos de desenvolvimento de software transcorram com sucesso. Englobam não só a esfera técnica, mas também o ambiente externo e interno à equipe de desenvolvimento e o fator humano, o que caracteriza o desenvolvimento de software como um empreendimento complexo envolvendo múltiplos fatores de incerteza.
O componente "Gerência de Projetos" (Fator 1) envolve funções desempenhadas pelo administrador do desenvolvimento do programa/ sistema. Apenas uma gestão de projetos de qualidade vai assegurar o atendimento das metas propostas. Considera-se responsabilidade da gerência de projetos o cuidar dos custos, a estimação de prazos e tempo de execução de tarefas, definição papéis e responsabilidades, controle e planejamento do desenvolvimento de software utilizando uma metodologia efetiva de desenvolvimento.
Podendo ser acarretados por várias causas, problemas de gestão de projetos se relacionam à má formação do gestor, falta de comprometimento, a mudanças na gestão durante o projeto, sobrecarga de trabalho sobre o gerente, entre outros fatores. Este é um fator crítico pelo fato de o gerente de projetos ser o responsável pela coordenação de esforços na equipe de desenvolvimento e pelo adequado uso dos recursos disponíveis.
A "Equipe de Desenvolvimento" (Fator 2) é um componente importante em uma área em que os projetos dependem da interação entre várias pessoas. Mais do que bons profissionais, os projetos de software exigem um trabalho em equipe eficaz. Equipes desmotivadas, insuficientes numericamente, sem estrutura ou ferramentas adequadas dificilmente podem ser eficazes. A liderança do projeto é importante para que os membros da equipe atinjam o máximo dos seus potenciais e as habilidades interpessoais do gestor são vitais para criar um ambiente produtivo e ao mesmo tempo promover a motivação dos membros das equipes.
A questão do controle sobre "Escopo e Requisitos" (Fator 3) dos projetos é recorrente em pesquisas sobre projetos de software e sobre riscos em projetos (KENDALL et al., 2007; SWEBOK, 2004; SCHMIDT et al., 2001). Diferentemente de áreas, que trabalham sobre plantas e projetos formais estáveis, os desenvolvedores de softwares trabalham implementando sistemas sobre requisitos relativamente pouco estáveis. Falhas no levantamento de requisitos, mudanças organizacionais, o imperativo de requisitos legais e novas solicitações dos clientes geram impacto caracterizado como necessidade mais esforço de implementação para novos requisitos e também para integrar o que está sendo adicionado ao sistema já em desenvolvimento. Perder o controle sobre os requisitos e/ ou o escopo de um sistema é colocar em risco todo o projeto.
Lacunas em "Conhecimento e Incerteza Tecnológica" (Fator 4) são ocorrências frequentes em projetos de software. A incerteza decorrente da falta de informação/ conhecimento pode ser reduzida através de aprendizagem sobre lógicas de negócio, metodologias e/ou tecnologias de implementação. O fato de se utilizar tecnologias de vários fornecedores aumenta a incerteza tecnológica pela necessidade de integração das plataformas.
Para minorar esta incerteza, todo novo assunto, metodologia ou tecnologia deve ser criteriosamente avaliado, antes de ser agregado ao projeto, por ser um fator de aumento da incerteza tecnológica. Quando identificadas tempestivamente, as lacunas de conhecimento, sejam sobre o negócio ou sobre a tecnologia empregada, são mais fáceis de gerenciar e de atuarem como oportunidade de aprendizagem e de agregação de qualificação à equipe.
O componente "Relacionamento com o Ambiente Externo" (Fator 5) destaca a permeabilidade para um projeto de eventos e decisões tomadas fora do ambiente de equipe e o potencial impacto danoso. Ainda que dificilmente tenha poder para lidar com este tipo de risco sozinho, o gerente deve estar atento ao ambiente externo ao projeto, cuidando do relacionamento com os clientes e com a alta gerência, obtendo o comprometimento necessário ao transcorrer do projeto. Apenas desta forma conseguirá forjar alianças para gerenciar as mudanças necessárias e as inevitáveis.
O Relacionamento com o Cliente/ Usuário (Fator 6) é crítico para o sucesso do projeto um relacionamento rico com o cliente/ usuário do software produzido (JIANG et al., 2002). Ainda que haja obstáculos como conflitos de interesse entre departamentos do usuário e envolvimento de grande número de unidades organizacionais do cliente, o entrosamento e a cooperação dos mesmos devem ser conquistados. Não levar em conta a experiência do cliente é importante fator de risco (JIANG e KLEIN, 1999), e os gerentes contam com um grande arsenal de recursos e programas de comunicação para minorar a sua ocorrência desde as fases iniciais dos projetos.
O "Valor/ Importância Atribuídos ao Projeto" (Fator 7) ganha importância em organizações com grandes escritórios de projetos, em que recursos como licenças de software e desenvolvedores experientes podem ser escassos ou limitados. Também tem relação com a relação com o usuário e o cliente financiador do projeto, e suas perspectivas a respeito do produto.
Durante as várias fases do ciclo de vida do desenvolvimento, a expectativa a respeito do projeto não deve ser exagerada ficar ou abaixo do que o mesmo promete, o que pode gerar decepção ou a não adoção do produto (seja em parte ou total). A mudança da propriedade do produto ou no comando da alta gerência pode colocar em evidência um projeto ou reduzir sua importância drasticamente, retirando do mesmo, recursos importantes, ou até forçando o seu adiamento ou cancelamento. Em ambos os casos, há uma mudança em potencial na importância e no valor atribuído ao projeto que pode retirar deste, recursos vitais à sua concretização. Este componente possui apenas dois itens, o que aparentemente influiu negativamente na sua consistência interna.
Os sete fatores encontrados sumarizam um conjunto maior de itens e permitem uma visão geral dos riscos encontrados no desenvolvimento de software. A sua gestão claramente exige um tripé entre a esfera técnica, a gerencial e a social. O envolvimento de gestores de projeto, desenvolvedores, usuários e clientes, a correta aplicação das ferramentas e técnicas de gestão e o uso de tecnologias avançadas, mas estáveis, formam o embrião para a condução de projetos menos sujeitos a riscos.
4. Conclusões e Considerações Finais
Este trabalho contribui para a literatura de gestão de riscos em software por realizar uma identificação de categorias de risco que sumariza as ameaças aos projetos em um número menor de fatores mais facilmente gerenciáveis, uma lacuna atestada pela revisão da literatura sobre o tema. Segundo Ropponen e Lyytinen (2000), a maioria dos estudos de gerenciamento de riscos lida com técnicas normativas para sua gestão, enquanto poucos estudos apresentam classificação de itens de risco. A importância deste tipo de procedimento se reflete no fato de que o domínio da teoria são os relacionamentos entre variáveis, não apenas listas de variáveis não correlacionadas (WHETTEN, 1989). A pesquisa foi baseada na avaliação bidimensional de variáveis de risco por gerentes de projeto de software e desenvolvedores brasileiros abrangendo a sua probabilidade de ocorrência e a gravidade associada à sua ocorrência.
Os sete fatores identificados se revelam parcialmente diferentes dos encontrados na literatura e vêm ajudar a minorar uma necessidade no campo do estudo de gestão de riscos e na prática dos profissionais de desenvolvimento. O fato de ser um dos poucos estudos quantitativos a tratar da questão dos riscos em projetos nacionais de software contribui para uma maior a relevância dos achados e estimula a utilização efetiva da categorização de riscos aqui apresentada e a realização de mais pesquisas neste campo.
Não deve ser considerada a possibilidade de generalização direta destes fatores de riscos para outros tipos de projetos como os acadêmicos ou os de construção civil, por exemplo, sem uma adaptação criteriosa. Cada projeto é único e cada tipo de projeto tem características que os aproximam de certos tipos de risco. No entanto, a investigação de categorias de projetos que apresentam características em comum, como os projetos de data warehouse ou portais web, podem revelar similaridades significativas com os fatores elencados neste texto e constitui em oportunidade para pesquisas futuras relacionadas.
A identificação de componentes de risco descrita neste artigo pode ser aplicada em termos práticos de pelo menos duas formas diferentes. A primeira é como um redutor de quantidade de riscos. Uma vez que a literatura já levantou dezenas de variáveis de riscos, torna-se difícil gerenciar cada uma individualmente. Boehm (1991) sugeriu uma lista de 10 riscos mais relevantes, mas a revisão bibliográfica revelou várias visões alternativas com listas bem maiores. A necessidade de listas menores e mais efetivas de riscos deriva do fato do gerenciamento de riscos em um projeto de software ser apenas uma entre as várias atividades desempenhadas, não devendo tomar tempo significativo. Lidar com múltiplas variáveis exige um esforço redobrado do gestor, o que pode afetar o ritmo das atividades. Ao se lidar com componentes abrangentes de risco pode-se trabalhar com menos fatores ao mesmo tempo sem que se deixe de reduzir os efeitos possíveis dos riscos.
Outra forma de utilizar os componentes encontrados se faz no sentido de melhorar o processo de identificação e gestão de variáveis individuais de risco. Aos fatores mais abrangentes podem ser associadas variáveis individuais de risco com base em checklists, padrões vigentes ou pela reflexão sobre o ambiente de desenvolvimento em que transcorrem os projetos. Adicionalmente, novos fatores podem ser adicionados, levando-se em conta as peculiaridades dos projetos e da organização.
A identificação e gestão de variáveis de risco também pode ser facilitada pelo uso de tecnologias relativamente simples, como matrizes de risco baseadas nos fatores identificados ou diagramas de Pareto que empreguem os fatores identificados. Diagramas de causa-efeito, os chamados diagramas de Ishikawa, também podem ser adaptados à gestão de risco, e podem utilizar os componentes de risco elencados neste estudo. Os diagramas de Ishikawa representam eventos, problemas e situações como função (ou efeito) de causas e subcausas de primeiro e segundo nível que são encadeadas, formando um gráfico tipo "espinha de peixe". São bastante utilizados na gestão de projetos em geral.
A figura 1 apresenta um esquema típico de diagrama de Ishikawa, adaptado à gestão de riscos no desenvolvimento de software. Outras possibilidades como novas ferramentas podem ainda ser propostas ou adaptadas de acordo com a necessidade identificadas pelos dos gestores.
A utilização das dimensões probabilidade de ocorrência e gravidade estimada do risco não esgota todos os aspectos relacionados ao risco que podem ser considerados nas análises. Características como a dificuldade de percepção se um risco está ocorrendo são relevantes e relativamente pouco exploradas na bibliografia consultada.
Os fatores encontrados podem ainda ser utilizados em pesquisas futuras como foco de investigações que aprofundem separadamente suas características. O fator Gerência de Projetos, por exemplo, pode ser um insumo auxiliar para a avaliação do modo como os projetos estão sendo conduzidos. Salienta-se também a importância de procedimentos básicos para a obtenção dos objetivos estipulados. O fator Conhecimento e Incerteza Tecnológica é instigante e induz a estudos mais profundos das relações entre incerteza, riscos, inovação tecnológica, informação, conhecimento e desempenho de projetos. Outra linha de investigação que pode ser aprofundada é o estudo do impacto dos riscos sobre o sucesso de projetos.
O estudo do impacto dos fatores de risco em projetos de software com características específicas pode trazer achados relevantes, que associem componentes específicos de risco a determinados características dos projetos. Estudos qualitativos, especialmente de natureza longitudinal, sobre a gestão de riscos envolvendo componentes mais abrangentes em situações reais são uma lacuna de conhecimento a ser preenchida em futuras investigações, podendo revelar os processos pelos quais a gestão de riscos se refletem no ambiente de desenvolvimento. Uma possibilidade adicional seria o desenvolvimento de ferramentas de gerência de riscos em software baseadas no controle de fatores abrangentes, extraindo o potencial de ganho com a redução de complexidade na gestão de riscos.
Agradecimentos
Este trabalho recebeu o suporte do CNPQ por meio de bolsa de mestrado.
Recebido em 20/11/2008
Aprovado em 27/07/2010
Disponibilizado em 11/04/2011
Leave a comment