anais do wtdqs 2015

Transcrição

anais do wtdqs 2015
ANAIS DO WTDQS 2015
XIII Workshop de Teses e Dissertações em Qualidade de Software
17 de agosto de 2015
Manaus  Amazonas  Brasil
Apresentação do WTDQS
Esta coletânea reúne os trabalhos selecionados para apresentação no XIII Workshop
de Teses e Dissertações em Qualidade de Software (WTDQS 2015). O workshop é parte
integrante das atividades do Simpósio Brasileiro de Qualidade de Software que está
atualmente em sua 14ª edição. O objetivo do WTDQS é permitir que alunos de pósgraduação stricto sensu (mestrado e doutorado), apresentem trabalhos, ainda em
andamento, para que sejam discutidos com especialistas da área. É uma oportunidade
para que os pós-graduandos possam receber críticas e sugestões que venham a
aprimorar seus trabalhos.
O comitê de programa do WTDQS é formado por professores especialistas em
Qualidade de Software que fazem parte de grupos de pesquisa reconhecidos da área.
Este ano o WTDQS recebeu 14 trabalhos provenientes dos vários programas de pósgraduação do Brasil. Dessas, 12 foram selecionadas para apresentação e publicação
nesta coletânea, sendo 6 propostas de doutorado e 6 propostas de mestrado. Cada
trabalho foi avaliado por 3 (três) membros do comitê de programa, que forneceram
suas valiosas contribuições para a melhoria da qualidade dos trabalhos de pesquisa.
Agradecemos, especialmente, à organização geral do SBQS, na pessoa da professora
Tayana Conte (UFAM), à coordenação técnico-científica, na pessoa do professor
Marcello Thiry (UNIVALI), aos autores e orientadores dos trabalhos submetidos ao
WTDQS 2015 e aos membros do Comitê de Avaliação.
Curitiba, 17 de agosto de 2015.
Sheila Reinehr
Coordenadora do Comitê de Programa do WTDQS 2015
Coordenadora
Sheila Reinehr possui Doutorado em Engenharia pela Escola Politécnica da
USP (2008), Mestrado em Informática pela Pontifícia Universidade Católica do
Paraná (2001) e Graduação em Engenharia Mecânica pela Universidade
Federal do Paraná (1986). Atualmente é Diretora de Cultura e Esporte na
PUCPR, professora da PUCPR, Pesquisadora do PPGIa/PUCPR na qual é líder
do grupo de pesquisa em Engenharia de Software, é consultora em melhoria
de processos e qualidade de software. Foi Diretora de Educação Continuada
na PUCPR no período 2012-2013. Tem experiência na área de Ciência da
Computação, com ênfase em Engenharia de Software, atuando
principalmente nos seguintes temas: melhoria de processos de software,
qualidade de software, gerência de projetos e portfólio de projetos, reuso de
software, linhas de produto de software e métricas de software. Possui
certificação PMP, ITIL e SCRUM. É implementadora e avaliadora líder MPS.BR
autorizada pela SOFTEX e membro da Equipe Técnica do Modelo (ETM) na
área de MPS para Serviços. Foi membro da Comissão de Gerenciamento de
Ciclo de Vida de Software da ABNT, participando de elaboração de normas
nacionais e internacionais, como a ISO/IEC 12207 e a ISO/IEC 15288.
COMITÊ DE AVALIAÇÃO
Adriano Albuquerque - Universidade de Fortaleza
Alexandre Vasconcelos - Universidade Federal de Pernambuco
Ana Regina Rocha - COPPE/UFRJ
Andreia Malucelli - PUCPR
Gleison Santos - Unirio
Humberto Marques - PUC Minas
Juliano Lopes de Oliveira - Universidade Federal de Goiás
Kathia Marçal de Oliveira - Université de Valenciennes et du Hainaut-Cambrésis
Raul Wazlawick – Universidade Federal de Santa Catarina
Ricardo Falbo - Universidade Federal do Espírito Santo
Rodrigo Reis – Universidade Federal do Pará
Toacy Oliveira - COPPE/UFRJ
Uirá Kulesza - Universidade Federal do Rio Grande do Norte
XIII Workshop de Teses e Dissertações em Qualidade de Software
Sistema de Recomendação de APIs na Engenharia de Software
Luisa Hernández, Heitor Costa
Programa de Pós-Graduação em Ciência da Computação (PPGCC)
Universidade Federal de Lavras (UFLA) - Lavras, MG - Brasil
[email protected], [email protected]
Resumo. A maioria dos sistemas de software depende de bibliotecas externas
para alcançar seus objetivos, conhecidas como Application Programming
Interfaces (Application Programming Interfaces - APIs). Neste trabalho, o
objetivo é apresentar uma análise empírica de sistemas de software quanto à
utilização de APIs e elaborar uma metodologia para apoiar o
desenvolvimento de software com qualidade. Essa metodologia considera
categorias de aplicação de software e recomenda APIs para desenvolvedores
com sistemas em estado inicial (podem ou não ter código, mas não usam
APIs). Além disso, recomenda APIs para sistemas em desenvolvimento que
utilizam APIs. Nessa metodologia, a técnica de filtragem colaborativa e o
método de itens mais frequentes são utilizados. Desse modo, as
recomendações serão mais "exatas" e úteis aos desenvolvedores. Um sistema
de recomendação de APIs será desenvolvido para avaliar a metodologia
proposta, utilizando medidas, por exemplo, Precision, Recall e MissRate. Os
resultados podem ser utilizados para apoiar Engenheiros de Software na
tomada de decisões sobre quais APIs utilizar. Com isso, espera-se ter
benefícios como o aumento na produtividade dos desenvolvedores e na
qualidade de sistemas de software.
Palavras-chave: Sistema de recomendação, reúso de APIs, filtragem
colaborativa.
Abstract. Software depends on external libraries to achieve their goals known
as Application Programming Interfaces (APIs). This work aims to propose an
empirical analysis of software about APIs usage and to elaborate a
methodology to support software development with quality. This methodology
considers software categories and recommends APIs to developers with
systems in initial state (which do not use APIs). Besides, it recommends APIs
for software on development that uses a few APIs. In this methodology, we will
use collaborative filtering technique and frequent itemset mining method.
Thus, recommendations are more "accurate" and useful for developers. We
will develop a recommendation system of APIs to evaluate the proposed
methodology. In that evaluation, we will use metrics, for example, Precision,
Recall, and MissRate. The results can support Software Engineers in making
decisions about which APIs to use. Thus, we expected to have benefits, such
as, increase the developers’ productivity and the software quality.
Keywords: Recommendation system, APIs reuse, collaborative filtering.
1
XIII Workshop de Teses e Dissertações em Qualidade de Software
1. Caracterização do Problema
Desenvolvimento de software não é uma tarefa fácil. Prova disso é a existência de várias
propostas metodológicas que afetam diversos componentes e aspectos do processo de
desenvolvimento [Canós et al., 2003]. Entre os diferentes componentes, há bibliotecas
de software conhecidas como Interfaces de Programação de Aplicativos (Application
Programming Interfaces - APIs). Muitos sistemas de software dependem de funções
reutilizáveis fornecidas pelas APIs e o desenvolvimento de software moderno é
inseparável desse reúso [Duala-Ekoko; Robillard, 2012]. Entre as vantagens de utilizar
APIs, está o fato dos desenvolvedores não reconstruírem recursos existentes [Teyton et
al., 2013], proporcionando uma forma rentável para construir sistemas de software com
melhora na (i) produtividade dos programadores, fornecendo variedade de funções
desejadas e na (ii) qualidade de software, pois são geralmente "bem-testadas" e
utilizadas por grande quantidade de usuários (desenvolvedores) [Sun et al., 2011].
Para os Engenheiros de Software, é difícil selecionar de forma eficaz as APIs
durante o desenvolvimento e verificar o uso correto depois da construção do sistema.
Por causa do aumento do tamanho e da quantidade de APIs, os desenvolvedores devem
frequentemente aprender como usar APIs desconhecidas [Acharya et al., 2007]. Isso
significa que, antes de aproveitar os benefícios de uma API para determinadas tarefas,
um desenvolvedor deve descobrir e entender o comportamento e as relações entre os
elementos de uma API [Duala-Ekoko; Robillard, 2012]. Para ajudar os desenvolvedores,
foi proposta uma engine de busca de desenvolvedores especialistas em APIs Java
chamada LIBTIC, que utiliza mineração no repositório GitHub [Teyton et al., 2013a].
No entanto, contratar especialistas em APIs requer investimento, disponibilidade e
recursos humanos que podem não estar no escopo do projeto de desenvolvimento. Por
outro lado, uma metodologia que combina Mineração de Regras de Associação e
Filtragem Colaborativa foi apresentada para analisar as APIs utilizadas por sistemas de
software e sugerir APIs aos desenvolvedores [Thung et al., 2013].
A motivação deste trabalho é apoiar Engenheiros de Software na tomada de
decisões sobre quais APIs utilizar em seus projetos. Assim, o objetivo é apresentar uma
metodologia de recomendação de APIs que considere categorias de domínios de
aplicação de software. Essa metodologia pode ser utilizada para sistemas em estado
inicial (sem uso de APIs) ou em desenvolvimento (utilizam APIs). Além disso, um
sistema de recomendação de APIs será desenvolvido para automatizar a recomendação.
Este artigo está organizado da seguinte forma. Técnicas e medidas de avaliação
para sistemas de recomendação são apresentadas na Seção 2. Contribuições do trabalho
proposto são abordadas na Seção 3. Trabalhos relacionados estão resumidos na Seção 4.
O estado atual do trabalho e a proposta da metodologia adotada para o desenvolvimento
de um sistema de recomendação são discutidos na Seção 5. A metodologia para
avaliação dos resultados é apresentada na Seção 6.
2. Fundamentação Teórica
2.1. Sistemas de Recomendação na Engenharia de Software
Sistemas de recomendação para engenharia de software (Recommendation Systems for
Software Engineering - RSSEs) são aplicações de software que fornecem itens de
2
XIII Workshop de Teses e Dissertações em Qualidade de Software
informação considerados valiosos para tarefas de engenharia de software em
determinados contextos. A maior parte desses sistemas está surgindo para ajudar os
desenvolvedores em diversas atividades, desde reúso de código à escrita de relatórios
eficazes de bugs [Robillard et al., 2010]. Hoje em dia, mais esforços são necessários
para realizar essas atividades por causa de novas tecnologias, componentes e ideias que
desenvolvedores são continuamente introduzidos [Robillard et al., 2010].
Entre as vantagens do uso de RSSEs, podem ser citadas a diminuição do esforço,
o aumento da produtividade e o auxílio nas tomadas de decisões [Robillard et al., 2010].
Para desenvolver esses sistemas, são comumente utilizadas técnicas que dependem do
contexto do problema e dos itens a serem recomendados, por exemplo: i) Filtragem
Baseada no Conteúdo: fundamentada nas características ou palavras-chave dos itens e
nas preferências do usuário; e ii) Filtragem Colaborativa: utilizada para recomendar
itens com base nos outros usuários que interagem com o software. A Filtragem
Colaborativa será utilizada neste estudo e há dois principais métodos [Breese et al.,
1998]: i) baseado na memória, opera sobre a base de dados inteira para fazer
recomendações; e ii) baseado no modelo, utiliza parte da base de dados do usuário para
aprender um modelo e realiza predições sobre preferências dos usuários sobre os itens.
2.2. Avaliação de Sistemas de Recomendação
Sistemas de recomendação (Recommendation Systems - RSs) tornaram-se populares em
diversos cenários de aplicações, desde a modelagem de processos de negócio à
manipulação de código. Diferentes abordagens e medidas foram propostas para
avaliação por causa da variedade de domínios de aplicação [Robillard et al., 2010].
A qualidade dos RSs pode ser definida em termos de avaliação centrada no
usuário ou de métodos centrados no sistema. Na avaliação centrada no usuário, os
usuários interagem com RS e recebem recomendações. As medidas são calculadas
perguntando ao usuário e observando o seu comportamento durante a utilização ou
automaticamente registrando suas interações. Com métodos centrados no sistema, o RS
é avaliado em relação a um dataset de avaliações pré-construído. Os usuários não
interagem com o sistema em teste, mas a avaliação, em termos de precisão, baseia-se na
comparação entre as avaliações dos usuários sobre os itens estimados pelo RS e
coletadas de usuários reais sobre os mesmos itens [Cremonesi et al., 2013].
A qualidade dos sistemas de recomendação pode ser definida e avaliada em
termos de medidas. Nos métodos centrados no sistema, são utilizadas [Cremonesi et al
2013]: i) medidas de precisão, por exemplo, Precision, Recall e MissRate; ou ii)
medidas de erro, por exemplo, Raiz do Erro Médio Quadrático (Root Mean Square
Error - RMSE) e Erro Médio Absoluto (Mean Absolute Error - MAE). Essas medidas
permitem avaliar as recomendações e determinar a qualidade delas e do RS.
3. Contribuições
Espera-se apoiar Engenheiros de Software na tomada de decisões sobre quais APIs
utilizar em seus projetos. Entre as contribuições, podem ser citadas (i) o
desenvolvimento de um apoio computacional à recomendação automatizada de APIs,
(ii) a identificação das APIs mais utilizadas para as categorias de domínio de aplicação
sugeridas pelo SourceForge e (iii) avaliação da qualidade das recomendações geradas
3
XIII Workshop de Teses e Dissertações em Qualidade de Software
pelo apoio desenvolvido. Com isso, espera-se ter alguns benefícios, por exemplo,
aumento na (i) produtividade dos desenvolvedores, pois serão reutilizadas funções,
evitando a reconstrução e, consequentemente, minimização do tempo de
desenvolvimento e na (ii) qualidade do software, sendo que, o uso de APIs populares é
um indicador da qualidade das APIs e, portanto, da qualidade dos sistemas de software.
Espera-se divulgar os avanços da pesquisa em futuras publicações.
4. Trabalhos Relacionados
Os trabalhos relacionados consistem em entender e recomendar APIs, seus métodos,
suas versões, etc. Por exemplo, foi desenvolvida APIExample, uma ferramenta que
fornece uma visão completa sobre os exemplos de uso de uma API java com base em
pesquisa na web. Essa ferramenta auxilia ao programador no entendimento do uso de
APIs para aprender a usar a API de forma eficiente [Wang et al., 2011]. Por outro lado,
para apoiar desenvolvedores na escolha das APIs e sua respectiva versão, foi
desenvolvida uma metodologia que utiliza uma técnica baseada no voto popular da
maioria. Essa técnica baseia-se na tendência do uso de cada versão da biblioteca [Mileva
et al., 2009]. De modo similar, com a finalidade de auxiliar os desenvolvedores na
escolha correta das APIs, foram combinadas técnicas de mineração de regras de
associação e de filtragem colaborativa. Desse modo, a partir das bibliotecas utilizadas
por outros projetos, é possível recomendar determinada quantidade de APIs para
sistemas de software em desenvolvimento que usa algumas APIs [Thung et al., 2013].
Este trabalho diferencia-se dos demais por utilizar critérios das categorias de
domínio de aplicação, técnicas de filtragem colaborativa e itens mais frequentes. Assim,
são realizadas recomendações de APIs para desenvolvedores com sistemas em estado
inicial (não usam APIs) ou em desenvolvimento (utilizam APIs).
5. Estado Atual do Trabalho
O cronograma das atividades é apresentado na Tabela 1. As atividades realizadas são
representadas pelos números 1 a 4 e as atividades em andamento pelos números 5 a 9.
Tabela 1. Cronograma
As atividades do cronograma são: 1) Pesquisa de artigos científicos e livros; 2)
Especificação dos objetivos e estabelecimento de uma metodologia para implementar
um sistema de recomendação de APIs para sistemas em desenvolvimento e em estado
inicial; 3) Participação nas disciplinas; 4) Exame de qualificação; 5) Desenvolvimento
de um plug-in para a mineração de APIs para sistemas em um repositório principal - P e
a recomendação de APIs para um sistema alvo - SA; 6) Coleta de sistemas para construir
o repositório P (~1.000 sistemas de software), classificando-os segundo critérios
4
XIII Workshop de Teses e Dissertações em Qualidade de Software
estabelecidos e as categorias indicadas pelo repositório SourceForge; 7) Coleta de
sistemas de teste para simular usuários reais (alvos da recomendação); 8) Teste da
metodologia e do plug-in por meio de medidas de avaliação para sistemas de
recomendação; e 9) Escrever a dissertação e realizar a defesa.
A metodologia proposta aprovada no exame de qualificação é apresentada na
Figura 1. Essa metodologia permitirá recomendar APIs, sendo composta por duas fases:
Fase A) Recomendação de APIs para os desenvolvedores em etapa inicial do
desenvolvimento de um sistema de software (sem uso de APIs), considerando uma ou
mais categorias de aplicação; e Fase B) Recomendação de APIs para sistemas de
software em desenvolvimento que utilizam algumas APIs e que podem ser classificados
em uma ou mais categorias de aplicação.
Figura 1. Proposta da Metodología de Desenvolvimento da Pesquisa
Por causa do contexto do problema deste projeto e das necessidades da Fase A,
as técnicas de recomendação não são uma boa escolha, pois não têm APIs para
relacionar. No entanto, existe a possibilidade de recomendar APIs para os
desenvolvedores determinando a popularidade, identificando APIs mais frequentes para
cada categoria do repositório principal de sistemas de software e relacionando esses
resultados com as categorias consideradas pelo desenvolvedor alvo de recomendação.
Por outro lado, quanto à Fase B, será utilizada a filtragem colaborativa. Isso implica que
as categorias serão consideradas e a similaridade será estabelecida entre os projetos do
repositório principal e o sistema alvo (SA) de recomendação, obtendo os sistemas "mais
próximos". Em seguida, será estabelecida a similaridade entre as APIs do SA e as APIs
dos sistemas mais próximos, permitindo gerar uma lista de possíveis APIs a
recomendar. Nessa fase, poderá ser feita a união entre a lista gerada por itens mais
frequentes e a lista gerada pela técnica de filtragem colaborativa.
5
XIII Workshop de Teses e Dissertações em Qualidade de Software
6. Avaliação dos Resultados
Para avaliar os resultados e retirar a necessidade de usuários reais, dois repositórios de
teste serão criados (Teste A - TA e Teste B - TB) com os sistemas alvo de recomendação
segundo as necessidades de cada fase. Para a Fase A (Figura 1), os sistemas alvo de
recomendação não utilizam APIs e consideram as categorias do domínio de aplicação.
Para simular a Fase A, n sistemas de TA serão selecionados. Quanto à Fase B (Figura 1),
os sistemas alvo de recomendação utilizam algumas APIs e consideram uma ou mais
categorias de domínio de aplicação. Portanto, sistemas de TB serão coletados para
simular a Fase B, sendo que diferentes percentagens de APIs serão retiradas, avaliando
a qualidade das recomendações em cada caso. Em ambas as fases, as informações sobre
as APIs removidas serão guardadas para, posteriormente, aplicar as medidas de
avaliação (Precision, Recall e MissRate) entre as APIs removidas e as APIs recomendas.
Referências
Acharya, M.; Xie, T.; Pei, J.; Xu, J. (2007). Mining API Patterns as Partial Orders from
Source Code : From Usage Scenarios to Specifications. In: Joint Meeting of the
European Software Engineering Conference and the ACM SIGSOFT Symposium on
the Foundations of Software Engineering. pp. 25-34.
Breese, J. S.; Heckerman, D.; Kadie, C. (1998). Empirical Analysis of Predictive
Algorithms for Collaborative Filtering. In: Conference on Uncertainty in Artificial
Intelligence. V. 40, pp. 43-52.
Canós, J. H.; Letelier, P.; Penadés, C. (2003). Metodologías Ágiles en el Desarrollo de
Software. In: DSIC Universidad Politécnica De Valencia. pp. 1-8.
Cremonesi, P.; Garzotto, F.; Turrin, R. (2013) User-Centric vs. System-Centric
Evaluation of Recommender Systems. In: Lecture Notes in Computer Science
(including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in
Bioinformatics), part 3. pp. 334-351.
Duala-Ekoko, E.; Robillard, M. P. (2012). Asking and Answering Questions about
Unfamiliar APIs: An Exploratory Study. In: International Conference on Software
Engineering. pp. 266-276.
Robillard, M. P.; Walker, R. J.; Zimmernann, T. (2010). Recommendation Systems for
Software Engineering. IEEE Software, pp.80-86.
Sun, C.; Khoo, S.; Zhang, S. J. (2011). Graph-Based Detection of Library API
Imitations. In: International Conference on Software Maintenance. pp. 183-192.
Teyton, C.; Falleri, J.-R.; Morandat, F.; Blanc, X. (2013a). Find your Library Experts.
In: Working Conference on Reverse Engineering. pp. 202-211.
Teyton, C.; Falleri, J.-R.; Palyart, M.; Blanc, X. (2013). A Study of Library Migration in
Java Software. The Computing Research Repository (CoRR). University Bordeaux,
LaBRI. pp. 1-20. Software Engineering.
Thung, F.; Lo, D.; Lawall, J. (2013). Automated Library Recommendation. In: Working
Conference on Reverse Engineering. pp. 182-191.
Wang, L.; Fang, L.; Wang, L.; Li, G.; Xie, B.; Yang, F. (2011). APIExample: An
Effective Web Search Based Usage Example Recommendation System for Java
APIs. In: International Conference on Automated Software Engineering. pp. 592-595.
6
XIII Workshop de Teses e Dissertações em Qualidade de Software
MSECO Cert: Uma Abordagem Baseada em Processo
para Apoiar a Certificação de Apps em Ecossistemas de
Software Móvel
Awdren de Lima Fontão, Arilo Claudio Dias-Neto
Mestrado em Informática – Programa de Pós-Graduação em Informática
Instituto de Computação (IComp) – Universidade Federal do Amazonas (UFAM)
Av. General Rodrigo Octávio, 6.200, Campus Universitário Senador Arthur Virgílio
Filho – Setor Norte - Manaus - CEP 69.077-000 – Manaus – AM – Brasil
[email protected], [email protected]
Abstract. Software organizations began to open its structure to external
developers, impacting the traditional development process. In mobile
applications (apps), this scenario is called Mobile Software Ecosystem
(MSECO), in which the App Store, through acceptance criteria, certifies the
quality of apps. However, these criteria do not ensure that apps get the desired
performance against the number of downloads and positive reviews. In this
paper, we propose an approach for quality certification of apps in MSECO
through processes, practices and recommendations before the app is
submitted to the app store.
Resumo. Organizações de software passaram a abrir a sua estrutura para
desenvolvedores externos, impactando o processo de desenvolvimento
tradicional. Em aplicações móveis (apps), este cenário é chamado
Ecossistemas de Software Móvel (MSECO), no qual a Loja de Apps, por meio
de critérios de aceitação, certifica a qualidade de apps. No entanto, estes
critérios não garantem que as apps obtenham o desempenho desejado em
relação a número de downloads e avaliações positivas. Neste trabalho, é
proposta uma abordagem para certificação de qualidade de apps no contexto
de MSECO por meio de processos, recomendações e práticas na fase de prépublicação, ou seja, antes da aplicação ser submetida à loja de apps.
Palavras-chave: ecossistemas de software, aplicações móveis, modelagem de
processos, processos de software.
1. Caracterização do Problema
Um Ecossistema de Software Móvel (em inglês, Mobile Software Ecosystem –
MSECO) é formado por diversos elementos que possuem responsabilidades distintas
dentro do MSECO e que precisam se relacionar de forma harmônica dentro do
ecossistema. Dentre esses elementos, podem ser citados a Aplicação Móvel,
Desenvolvedores, Usuários, Keystone (representante da organização que mantém o
MSECO), Evangelistas (especialista da organização no suporte aos desenvolvedores) e
7
XIII Workshop de Teses e Dissertações em Qualidade de Software
a Loja de Aplicações. Todos eles possuem um papel fundamental para o sucesso do
MSECO, definindo políticas de aceitação de aplicações móveis que irão ser
disponibilizadas aos usuários do MSECO [Fontão et al. 2015].
O desempenho destes elementos precisa ser acompanhado com o objetivo de
identificar e prever áreas de melhoria, assim como validar mudanças. Este cenário na
literatura técnica se refere ao conceito de saúde de ecossistema. Manikas e Hansen
(2013) definem saúde de um ecossistema como a sua habilidade em suportar e
permanecer variável e produtivo durante o tempo.
Em MSECO, os elementos já citados focam no desenvolvimento de aplicações
móveis de qualidade de forma a impactar positivamente na saúde do ecossistema. No
entanto, não se pode garantir que aplicações móveis aprovadas pelos critérios de
aceitação de uma loja resultarão em um número alto de downloads e nem que serão
reconhecidas como “populares” entre usuários e desenvolvedores. Desta forma, a
submissão de uma aplicação baseada somente em critérios da loja, pode causar a
“doença” em elementos do MSECO. A desmotivação do usuário para adquirir uma
aplicação, a desmotivação dos desenvolvedores para criar novas aplicações e a
adaptação constante de estratégias pelo keystone podem ser citados como sintomas.
A partir desta constatação, observa-se que a prevenção para não gerar impacto
negativo na saúde do MSECO não deve ser somente focada na qualidade do produto,
mas deve levar em consideração a qualidade dos processos executados pelo
desenvolvedor (durante a criação e desenvolvimento da aplicação móvel), pelo keystone
(durante a orquestração do ecossistema) e pelo evangelista (durante o suporte e
efetivação de elo entre a organização e o desenvolvedor), uma vez que a saúde do
MSECO é diretamente influenciada por todos os elementos que o compõe.
Logo, há a necessidade de estruturar processos que permitam a definição e
organização das atividades realizadas pelos elementos mencionados e que adotem
mecanismos de qualidade de forma a se obter aplicações móveis que impactem
positivamente na saúde do MSECO. A qualidade do processo impacta na qualidade do
produto que está sendo desenvolvido e, assim, há o impacto na saúde do MSECO. A
utilização de processos pode, então, contribuir para a certificação de que uma aplicação
poderá impactar positivamente na saúde do ecossistema.
2. Fundamentação Teórica
O MSECO consiste então de um sistema de evolução cooperativa de aplicações móveis,
desenvolvedores e usuários que formam complexos relacionamentos preenchendo
nichos, competindo e cooperando, de uma forma similar a ecossistemas biológicos [Lin
e Ye 2009].
Em um MSECO, empresas precisam agregar valor a seus produtos, neste caso,
os dispositivos móveis, através das aplicações disponibilizadas em suas lojas. No
entanto, dificilmente estas empresas conseguem atender toda a demanda da sociedade
somente com sua estrutura interna [Bosch 2009]. Neste contexto, as comunidades de
desenvolvedores atuam diretamente na solução para esta limitação [Cusumano 2010].
2.1. Elementos e atividades de MSECO
A seguir são listados os principais elementos que atuam em um MSECO:
8
XIII Workshop de Teses e Dissertações em Qualidade de Software
•
•
•
•
•
•
•
Plataforma: Uma plataforma é a base na qual vários elementos técnicos de um
MSECO são construídos [Taylor 2013]. Ela deve prover o suporte para a
customização em larga escala [Berger et al. 2014].
Aplicações Móveis (Apps): um artefato produzido por desenvolvedor(es) e
adquirido por usuários [Bentley 2014]. Uma app deve obedecer padrões
mínimos de qualidade impostos pelas organizações através da Loja de Apps
[Santos et al. 2014].
Loja de Aplicações Móveis (Loja de Apps): um canal de distribuição utilizado
para publicar, armazenar, buscar e recuperar apps [Fontão et al. 2014]. É um
mercado altamente competitivo [Lim et al. 2014].
Usuário: representa o núcleo de um MSECO. É responsável por adquirir
conteúdo de uma loja de apps e criar novas formas de interação [Fontão et al.
2014].
Desenvolvedor: responsável por novas ideias e o desenvolvimento de apps no
MSECO, respondendo aos requisitos dos usuários [Fontão et al. 2014].
Evangelista: elemento interno da organização patrocinadora do MSECO que
participa em treinamentos, palestras e competições de desenvolvimento com o
objetivo de ajudar na expansão do MSECO e na formação de novos
desenvolvedores [Fontão et al. 2014].
Keystone: cria uma comunidade para adicionar valor aos usuários e aumenta o
número de usuários [Hyrynsalmi et al. 2012].
O desempenho destes elementos precisa ser acompanhado com o objetivo de
identificar e prever áreas de melhoria, assim como validar mudanças [Manikas e Hansen
2013]. A Figura 1 sumariza as etapas necessárias para a organização do trabalho no
contexto de desenvolvimento de aplicações móveis em MSECO.
Na primeira etapa (E1), o keystone precisa empreender esforços na disponibilização
de uma estrutura de base para que o MSECO possa se expandir (Processo de
Orquestração). Isso é pode ser feito por meio de diretrizes que formam o fundamento
para a atração de novos desenvolvedores e, consequentemente, a criação de apps, além
do fornecimento de ferramentas e suporte à comunidade.
Na segunda etapa (E2), o evangelista precisa motivar e engajar outros
desenvolvedores externos e suportá-los para ajudar na expansão da comunidade e,
consequentemente, na disponibilização de uma maior quantidade de apps para os
usuários (Processo de Suporte). Ainda nesta etapa, o desenvolvedor precisa criar e
disponibilizar apps que atendam da melhor forma os nichos existentes de usuários
(Processo de Construção) e, também, obter visibilidade dentro da loja de apps devido à
qualidade das apps por ele desenvolvidas.
9
XIII Workshop de Teses e Dissertações em Qualidade de Software
Fig. 1.Processos e Etapas em MSECO
Na terceira etapa (E3), acontece a publicação da app na Loja de Aplicações Móveis
(Processo de Construção). Assim, a app poderá ser adquirida por usuários e já
contribuirá para as metas do keystone, como: quantidade de aplicações e avaliações do
usuário. Essas métricas de quantidade de apps, média de avaliações dos usuários e
quantidade de desenvolvedores que publicam apps alimentam os indicadores do
MSECO, na etapa E4.
A etapa E5 compreende as análises de estratégias que podem ser realizadas pelo
keystone para a adequação de modos de trabalho com a comunidade de
desenvolvimento e com a equipe de evangelismo. A proposta dessas etapas e processos
responde à categoria 1 de desafios de qualidade em ECOS, Processos de Software e
Padrões, indicada em [Santos et al. 2014].
As etapas E1 e E2 compreendem uma fase de Pré-Publicação, ou seja, antes da
aplicação ser submetida à loja, na etapa E3. Esta pesquisa possui como foco essas etapas
(E1 e E2), propondo a abordagem MSECO Cert (Mobile Software Ecossystem app
Certification), composta pelos processos de Orquestração, Suporte e Construção e o
conjunto de recomendações e práticas, com o objetivo de certificar aplicações antes da
submissão à loja de forma a impactar positivamente a saúde do MSECO. Isso poderá ser
avaliado por meio de indicadores de saúde de MSECO, tais como: número de
downloads e avaliação das apps que foram desenvolvidas a partir da abordagem.
3. Trabalhos Relacionados
Os trabalhos relacionados a esta pesquisa estão sumarizados na Tabela 1, com as
seguintes colunas: (1) Trabalho: referência do estudo; (2) Contribuição: o resultado
principal provido no estudo; (3) Certificação: como o trabalho trata a questão de
certificação de qualidade em software; e (4) ECOS (Ecossistemas de Software)? Se o
trabalho faz alguma utilização do conceito de ECOS.
O foco da garantia de qualidade nos trabalhos apresentados é a qualidade do
produto, que neste caso, é a aplicação móvel. Assim, existe a necessidade da definição
de recomendações para desenvolvimento para lojas de apps, de modelos, processos,
práticas, abordagens ou metodologias que permitam gerenciar as contribuições, neste
caso, a aplicação móvel. Observou-se ainda a necessidade de envolver os outros
elementos, como evangelista, desenvolvedor e keystone, para certificar a qualidade de
aplicações no contexto de MSECO.
10
XIII Workshop de Teses e Dissertações em Qualidade de Software
Tabela 1. Sumarização de trabalhos relacionados.
Trabalho
Contribuição
Certificação de qualidade
ECOS?
Costan et al.
(2013).
Processo de Evolução
de Aplicação
Deve considerar as contribuições dos usuários.
A Loja tem a “missão” de certificar a qualidade.
Sim
Fontão et al.
(2012)
Metodologia para
desenvolvimento
Visa atender às necessidades dos usuários,
levando em consideração os requisitos da Loja.
Não
Corral et al.
(2014)
Análise da literatura
sobre práticas de
qualidade de apps
Menciona o avanço de ecossistemas móveis,
mas não utiliza esse contexto na análise de
uma forma aprofundada envolvendo a
certificação de qualidade.
Não
Jansen et al.
(2013)
Abordagem que
envolve políticas de
Loja de Apps
Visão geral de características e políticas que
determinam a estrutura de uma loja de apps.
Sim
Bettenburg
et al. (2013)
Modelo de
gerenciamento de
contribuições
Modelo de gerenciamento de contribuições com
fases de gerenciamento de software.
Sim
Franco et al.
(2014)
Modelo de qualidade
para Ecossistemas de
Software Livre
Modelo de qualidade como uma forma de
prevenir decisões ruins, desviar problemas e
permitir a verificação com requisitos e objetivos
de negócios.
Sim
MCTI-BR
(2013)
CERTICS:
Metodologia para
certificação de
software
Certifica se um software é produzido a partir de
atividades de desenvolvimento e inovação
tecnológica do país.
Não
4. Método de Pesquisa e Estado Atual do Trabalho
Esta pesquisa foi estruturada em duas fases principais, concepção e avaliação, conforme
descrito nas subseções.
4.1. Fase de Concepção
•
•
•
•
C1) Mapeamento sobre MSECO, seguindo os princípios de um mapeamento
sistemático [Kitchenham et al. 2007]. Os resultados deste mapeamento
sistemático foram publicados e estão disponíveis em [Fontão et al. 2015].
C2) Definição de processos que estruturam as atividades dentro de um MSECO
com o objetivo de entender as atividades, elementos e artefatos envolvidos.
C3) Definição de recomendações e práticas para cada atividade como forma de
suportar a execução da atividade visando impactar positivamente na saúde do
MSECO. A definição dos processos de Orquestração (seguido pelo keystone),
Suporte (seguido pelo evangelista) e Construção (seguido pelo desenvolvedor) e
o conjunto de recomendações e práticas estão disponíveis em:
http://1drv.ms/1Ikokmw.
C4) Estudos Experimentais: dois estudos foram realizados nesta fase da pesquisa
o Revisão por Pares: com objetivo de avaliar se os processos especificados
neste trabalho estão adequados para atender às necessidades de
orquestração, desenvolvimento de aplicações móveis e evangelismo, do
ponto de vista de profissionais com experiência nas áreas de
11
XIII Workshop de Teses e Dissertações em Qualidade de Software
•
conhecimento dos processos (keystones - gerentes ou coordenadores de
MSECO, desenvolvedores de aplicações móveis e evangelistas).
o Questionários: com o objetivo de analisar os processos em suas práticas
e recomendações para analisar os benefícios percebidos por especialistas
(evangelistas e desenvolvedores). Estes questionários avaliarão os
processos de Suporte e Construção, uma vez que são processos onde
pode-se atuar diretamente neste trabalho por meio de treinamentos
ministrados por evangelistas para comunidades de desenvolvedores.
C5) Definição da abordagem MSECO Cert a partir dos resultados da etapa C4,
visando certificar aplicações móveis em MSECO com o objetivo de impactar
positivamente na saúde do MSECO.
A Fase de Concepção descrita neste trabalho já foi concluída. Neste momento da
pesquisa, está sendo iniciada a fase de avaliação, descrita na próxima subseção.
4.2. Fase de Avaliação
Para avaliação desta pesquisa, faz-se necessária a realização de estudos experimentais
visando caracterizar a abordagem proposta em relação ao seu objetivo, identificar
defeitos, visando permitir a transferência dessa tecnologia para o contexto industrial.
A análise da qualidade dos processos se dará a partir do impacto que a utilização
deles gera em indicadores, como: número de desenvolvedores treinados (a partir de
survey sobre o conhecimento adquirido), qualidade das apps desenvolvidas (avaliação
da app pelos usuários), quantidade de apps geradas e desenvolvedores que se tornaram
publicadores de apps. Para isso, duas etapas foram definidas:
•
•
(A1) Aplicação da MSECO Cert no cenário da indústria: em treinamentos para
desenvolvimento de apps ministrados por evangelistas para comunidade de
desenvolvedores;
(A2) Refinamento da MSECO Cert: a partir dos resultados de A1, aprimorar a
abordagem (atividades, artefatos, recomendações e práticas) para a adequação a
atividades de desenvolvimento e evangelismo no contexto de MSECO.
Serão executadas 3 rodadas das atividades A1 e A2 no MSECO Microsoft,
especificamente para a plataforma Windows Phone, conforme a descrição a seguir:
•
•
1ª) (Junho e Julho) e 2ª) (Agosto e Setembro) rodadas: aplicação em paralelo
da MSECO Cert: serão realizados treinamentos em paralelo com 2 turmas de
desenvolvedores, sendo 1 turma com aplicação da MSECO Cert pelo
responsável pela pesquisa (que possui essa função dentro de uma organização de
software que atua no MSECO Microsoft) e 1 turma sem aplicação da MSECO
Cert, por outro evangelista da mesma organização.
3ª) (Outubro e Novembro) rodada: aplicação da MSECO Cert por outro
evangelista (diferente do pesquisador responsável por este trabalho) com uma
turma de desenvolvedores a fim de avaliar a aplicabilidade da abordagem por
outros profissionais.
A abordagem pode ser aplicada a qualquer MSECO como forma de apoio ao
evangelista para o alcance das metas organizacionais definidas pelo keystone. A partir
de cada rodada avaliaremos o impacto da abordagem no alcance de metas através dos
indicadores já citados.
12
XIII Workshop de Teses e Dissertações em Qualidade de Software
5. Resultados Esperados
Em resumo, espera-se como contribuição deste trabalho a definição de uma abordagem
de certificação de qualidade de aplicações móveis para MSECO. Essa abordagem
resultará na modelagem dos processos (Orquestração, Suporte e Construção), definição
de atividades, papéis responsáveis, artefatos e relacionamentos, definição de um
conjunto de recomendações que servirão como base para a realização de uma atividade
de um dos processos definidos e elaboração de um conjunto de práticas visando a
aplicação de uma regra para a obtenção de resultados concretos.
Referências
Bentley, P. J. (2012). How to be a Successful App Developer: Lessons from the
Simulation of an App Ecosystem. Em: GECCO 2012, Philadelphia, pp. 129-136.
Berger, T., Pfeiffer, R.-H., Tartler, R., et al. (2014). Variability mechanisms in software
ecosystems. Information and Software Technology, v. 56, n. 11, p. 1520–1535.
Bosch, J. (2009). From Software Product Lines to Software Ecosystems. Em SPLC ’09
Proceedings of the 13th International Software Product Line Conference, Pittsburgh.
Cusumano, M. A. (2010). Platforms and Services: Underständing the Resurgence of
Apple. Communications of the ACM, v. 53, p. 22–24.
Fontão, A., Bonifácio, B., Dias-Neto, A., Bezerra, A. and Santos, R. (2014). MSECO
Skill: Construção de Competências de Desenvolvedores em Ecossistemas de
Software Móvel. Em: 17th CIBSE, Pucón, Chile.
Fontão, A., Santos, R. P. and Dias-neto, A. C. (2015). Mobile Software Ecosystem
(MSECO): A Systematic Mapping Study. Em: COMPSAC 2015, Taichung, Taiwan.
Hyrynsalmi, S., Mäkilä, T., Järvi, A., et al. (2012). App store, marketplace, play! an
analysis of multi-homing in mobile software ecosystems. Em: 4th IWSECO.
Kitchenham, B. and Charters, S. (2007). Guidelines for performing Systematic
Literature reviews in Software Engineering Version 2.3.
Lim, S. L., Bentley, P., Kanakam, N., Ishikawa, F. and Honiden, S. (2014).
Investigating Country Differences in Mobile App User Behavior and Challenges for
Software Engineering. IEEE Transactions on Software Engineering, v. 5589, n. c, p.
1–1.
Lin, F. L. F. and Ye, W. Y. W. (2009). Operating System Battle in the Ecosystem of
Smartphone Industry. 2009 International Symposium on Information Engineering
and Electronic Commerce,
Manikas, K. and Hansen, K. M. (2013). Reviewing the Health of Software Ecosystems
– A Conceptual Framework Proposal. Em: 5th IWSECO.
Santos, R., Valença, G., Viana, D., et al. (2014). Qualidade em Ecossistemas de
Software: Desafios e Oportunidades de Pesquisa. Em:VIII WDES, CBSoft, Maceió,
2014, pp. 41-44.
Taylor, R. N. (2013). The role of architectural styles in successful software ecosystems.
Em ACM International Conference Proceeding Series.
13
XIII Workshop de Teses e Dissertações em Qualidade de Software
Estratégia de Apoio à Seleção de Elementos de Elicitação
de Requisitos
Renata Magalhães Rêgo (Aluna), Arilo Cláudio Dias-Neto (Orientador)
Instituto de Computação (IComp) – Universidade Federal do Amazonas (UFAM)
Av. General Rodrigo Octávio, 6.200, Campus Universitário Senador Arthur Virgílio
Filho – Setor Norte - Manaus - CEP 69.077-000 – Manaus – AM – Brasil
[email protected], [email protected]
Resumo. A elicitação de requisitos é uma atividade fundamental em um projeto
de software e geralmente depende de três elementos chaves: a técnica usada
para identificar/coletar os requisitos, os analistas alocados para realizar essa
tarefa e os patrocinadores disponíveis para fornecer as necessidades dos
clientes. A seleção adequada desses elementos durante o processo de elicitação
tem impacto direto sobre o sucesso/fracasso do projeto. Neste trabalho propõese desenvolver uma estratégia que auxilie o Engenheiro de Software na seleção
destes elementos durante a fase de elicitação de requisitos de um projeto,
considerando as suas particularidades, utilizando estratégias de SBSE
multiobjetivo que visa maximizar a adequação e reduzir os custos de tais
elementos em relação ao projeto de software. Foi realizado um estudo empírico
utilizando dados de um projeto real comparando os resultados providos por um
algoritmo evolutivo multiobjetivo (NSGA-II) e um algoritmo Randômico. Os
resultados sugerem a viabilidade de aplicar algoritmos evolutivos, pois o
mesmo forneceu as melhores soluções de compromisso para este problema.
Abstract. Requirements elicitation is a fundamental activity in a software
project that depends on three key elements: the technique used to identify/collect
the requirements, the analysts allocated to accomplish this task and the
available suppliers to provide customer´s needs. The adequate selection of these
elements during the elicitation process has a direct impact on the software
project’s success/failure. This work proposes to develop a strategy to assist the
software engineer in selecting the most appropriate combination of elicitation
elements for each project, considering their particularities, using a
multiobjective SBSE strategies that aims to maximize the suitability and reduce
the costs of these elements in a software project. An empirical study was
performed using data from a real software project comparing the results
provided by a multi-objective evolutionary algorithm (NSGA-II) and a Random
algorithm. The results suggest the feasibility of applying evolutionary
algorithms, because it provided the best compromise solutions to this problem.
Palavras-Chave: Elicitação de Requisitos, Seleção de Tecnologias, Otimização
Combinatória, Metaheurísticas, SBSE.
14
XIII Workshop de Teses e Dissertações em Qualidade de Software
1. Introdução e Caracterização do Problema
A Engenharia de Requisitos (ER) é uma fase comum em processos de desenvolvimento
de software, pois trata da concepção do projeto e permite que seja examinado o contexto
de negócio, as necessidades específicas do cliente e os comportamentos que terão um
impacto profundo no projeto, dentre outros [Sommerville, 2011]. Pressman (2014) divide
esta fase em algumas tarefas: Concepção, Elicitação, Negociação, Especificação e
Validação. Esta pesquisa concentra-se na tarefa de ER, que consiste em descobrir e extrair
as informações sobre o sistema a ser desenvolvido.
A ER é realizada de forma recorrente durante o projeto de software e existem
vários elementos envolvidos na sua realização, tais como: analistas responsáveis pela
coleta de requisitos; os patrocinadores que têm as informações sobre os requisitos; e as
técnicas que serão utilizadas para apoiar a elicitação. Cada elemento possui características
próprias que podem influenciar a ER [Carrizo et al. 2014].
Com base neste cenário, este trabalho descreve o problema de selecionar três
elementos presentes nas atividades de ER (técnicas, analistas e patrocinadores)
considerando as peculiaridades de cada elemento e as características do projeto de
software. Acredita-se que a seleção adequada de tais elementos pode contribuir para a
qualidade da informação coletada para um projeto de software e, consequentemente, a
qualidade do produto final.
O Problema de Seleção de Elementos de ER (em inglês, Selection of Requirements
Elicitation Elements – SREE) pode ser caracterizado como um cenário onde o gerente de
um projeto de software possui (ver Figura 1): (1) um conjunto de técnicas de elicitação
de requisitos; (2) um conjunto de patrocinadores ou usuários do software a ser
desenvolvido; e (3) um conjunto de analistas disponíveis para realizar a elicitação. Esse
gerente precisa encontrar uma combinação entre técnicas, patrocinadores e analistas que
possibilite a coleta do maior número de requisitos sem que isso exceda o custo destinado
a elicitação.
Considerando o número crescente de técnicas de elicitação publicadas na
literatura técnica, o conjunto de analistas e patrocinadores disponíveis para um projeto e
as características envolvidas no contexto do projeto, o SREE torna-se uma tarefa
complexa em um projeto de software, pois quando são feitas todas as possíveis
combinações, o conjunto de soluções aumenta significativamente, inviabilizando a
análise manual.
Nesse contexto, diversos problemas de Engenharia de Software (ES) possuem
natureza complexa e que não podem ser tratados por técnicas convencionais, pois
envolvem a seleção de uma solução dentro de um grande conjunto [Freitas et al., 2009].
Tais problemas requerem soluções automatizadas que tratem seus diversos aspectos de
forma eficiente [Harman et al., 2010]. Algoritmos com estratégias avançadas de busca,
especialmente metaheurísticas, podem ser utilizados para resolver esses problemas. A
aplicação de metaheurísticas em tais problemas se intensificou nos últimos anos, dando
origem a uma nova e promissora área, conhecida como Engenharia de Software Baseada
em Busca (do inglês, Search-Based Software Engineering – SBSE). Segundo Colanzi et
al., (2013), SBSE é o campo de pesquisa e prática que aplica técnicas baseadas em busca
para resolver diferentes problemas de otimização em ES. Para Harman et al. (2010), as
abordagens de SBSE oferecem um conjunto de soluções adaptativas para situações em
que o problema envolve múltiplos objetivos concorrentes e conflitantes.
15
XIII Workshop de Teses e Dissertações em Qualidade de Software
Figura 1: Problema da Seleção de Elementos de Elicitação de Requisitos.
Este artigo apresenta uma proposta de dissertação de mestrado sendo
desenvolvida no Programa de Pós-Graduação em Informática da Universidade Federal do
Amazonas. Nesta pesquisa, pretende-se construir e avaliar uma abordagem para a
recomendação de elementos de elicitação utilizando estratégias de SBSE, a fim de auxiliar
ao Engenheiro de Software na seleção dos elementos de elicitação de requisitos. Neste
problema são considerados dois objetivos: maximizar a adequação dos elementos ao
projeto e minimizar o custo de alocação e utilização desses elementos.
2. Fundamentação Teórica
Nesta seção, serão apresentados os conceitos relevantes relacionados ao desenvolvimento
dessa pesquisa.
2.1. Elicitação de Requisitos
A Elicitação de requisitos é um conjunto de ações que ocorrem junto aos patrocinadores
e usuários visando capturar as informações que subsidiarão o entendimento do problema
e a modelagem do software a ser desenvolvido [Dias et al., 2006]. Executar essas ações
não é uma tarefa trivial, e se ela não for feita de forma adequada, poderá comprometer as
demais fases do processo, inviabilizando o projeto como um todo [Sadiq et al., 2009].
Figura 2: Identificação das técnicas de Elicitação (Zhang, 2007).
As técnicas de elicitação são utilizadas para dar apoio ao processo de ER. De
acordo com Zhang (2007) e Tiwari et al. (2012), elas podem divididas em 4 categorias,
conforme apresentado na Figura 2. As técnicas conversadas são as baseadas em perguntas
de respostas, as colaborativas são aplicadas em grupos e precisam de um moderador, as
16
XIII Workshop de Teses e Dissertações em Qualidade de Software
cognitivas são baseadas em conhecimentos e as observacionais são para coletar
informações difíceis de serem verbalizadas.
2.2. Fatores de Influência
Existem elementos de elicitação que podem influenciar a aplicação das técnicas, e por
consequência a elicitação de requisitos. Esses elementos, chamados de fatores de
influência, são: o patrocinador ou usuário, o analista e o projeto de software a ser
desenvolvido. Na Tabela 1 são apresentados esses elementos e os atributos que foram
utilizados para fazer a sua caracterização.
Essa caracterização foi definida seguindo os trabalhos de [Carrizo et al., 2014],
[Kausar et al., 2010] e [Tiwari et al., 2012]. Nela, o analista possui 11 atributos, o
patrocinador possui 10 atributos e o projeto possui 8. Para cada um dos atributos, foi
apresentada uma possível classificação, ou seja, quais valores esse atributo pode assumir
na caracterização.
Tabela 1. Fatores de influência e seus atributos.
Projeto
Patrocinador (Informante)
Analista
Ele. ID
A01
A02
A03
A04
A05
A06
A07
A08
A09
A10
A11
I01
I02
I02
I04
I05
I06
I07
I08
I09
I10
P01
P02
P03
P04
P05
P06
P07
P08
Atributo
Treinamento em técnicas de elicitação
Experiência com elicitação
Experiência com técnicas de elicitação
Familiaridade com o domínio
Habilidade na condução de conversas
Habilidades na resolução de conflitos
Habilidades com liderança e motivação
Habilidades com trabalho em equipe
Habilidade em registrar eventos
Habilidade com e captura de ideias
Habilidade analítica
Pessoas por sessão
Consenso entre os patrocinadores
Interesse do patrocinador
Nível de Experiência
Capacidade de Articulação
Disponibilidade de tempo
Localização/ Acessibilidade
Habilidade de comunicação
Habilidade de trabalho em equipe
Habilidade em expressar ideias
Tipo de informação a ser coletada
Disponibilidade da informação
Definição do problema
Restrição de Tempo do Projeto
Tempo de processo
Status do Projeto
Escopo do Projeto
Tipo de projeto
Possível Classificação
Alto, Médio, Baixo
Alto, Médio, Baixo
Alto, Médio, Baixo
Alto, Médio, Baixo
Alto, Médio, Baixo
Alto, Médio, Baixo
Alto, Médio, Baixo
Alto, Médio, Baixo
Alto, Médio, Baixo
Alto, Médio, Baixo
Alto, Médio, Baixo
Individual, Grupo (2-5), Muitos (+5)
Alto, Baixo
Alto, Médio, Baixo
Especialista, Conhecedor, Iniciante
Alto, Médio, Baixo
Alto, Baixo
Longe, Perto
Alto, Médio, Baixo
Alto, Médio, Baixo
Alto, Médio, Baixo
Estratégica, Tática, Básica
Muito, Pouco, Zero
Alto, Baixo
Alto, Baixo, Zero
Início, Meio, Fim
Novo, Existente
Específico, Genérico
Críticos, Tempo Real, Distribuídos,
Interativos, Pequeno e médio porte.
3. Trabalhos Relacionados
Os trabalhos correlatos identificados abordam a seleção de elementos da fase de ER (em
geral, técnicas) e outros que tratam a seleção de tecnologias em geral, utilizando
17
XIII Workshop de Teses e Dissertações em Qualidade de Software
estratégias de SBSE), cujas contribuições são úteis para essa pesquisa, conforme
apresentado na Tabela 2.
Como se pode observar na Tabela 2, os trabalhos de Kausar et al. (2010) e Tiwari
et al. (2012) tratam da seleção de técnicas ER. Eles utilizam como estratégia de solução
função matemática e mapeamento, e as soluções são apresentadas, respectivamente, em
forma e ranking e lista de técnicas. O trabalho de Carrizo et al. (2014) também trata da
seleção de técnicas e ainda considera os outros elementos (analistas e patrocinadores)
para a seleção. Como limitação, ele não faz a combinação entre esses, mas apenas o
mapeamento que torna possível fazer o ranking das técnicas. Os trabalhos de Dias-Neto
et al. (2011) e Grande et al. (2014) tratam a seleção de tecnologias de software em geral
aplicando estratégias de SBSE (metaheurísticas) e em ambos, as respostas são
apresentadas em forma de gráfico, apresentando os itens considerados na seleção.
Esta pesquisa visa recomendar ao engenheiro de software soluções que contenham
a combinação dos elementos de elicitação adequados ao projeto utilizando estratégias de
SBSE (metaheurísticas) para encontrar o conjunto soluções. Elas serão apresentadas no
Gráfico da Frente de Pareto de forma a identificar a adequação e o custo de cada solução
ao projeto, facilitando assim a tomada de decisão.
Tabela 2. Trabalhos Relacionados e Proposta de Pesquisa.
Trabalho
Contribuição
Kausar, et. al.
(2010)
Tiwari et al.
(2012)
Seleção de técnica de elicitação de
requisitos
Seleção de técnica de elicitação de
requisitos
Seleção de técnica de elicitação de
Carrizo et al.
requisitos considerando perfil de
(2014)
analistas e patrocinadores
Dias-Neto et
Seleção de tecnologias de software
al. (2011)
Grande et al.
Seleção de tecnologias de software
(2014)
Combinação e Seleção de elementos
Esta Proposta
de elicitação de requisitos
Estratégia
Utilizada
Função
matemática
Solução
Ranking
Mapeamento
Lista de Técnicas
Mapeamento
Ranking
Metaheurísticas SBSE
Metaheurísticas –
SBSE
Metaheurísticas –
SBSE
Gráfico da Frente
de Pareto
Gráfico de radar
Gráfico da Frente
de Pareto
Na próxima seção será apresentado a metodologia e o estado atual do trabalho.
4. Metodologia e Estado Atual do Trabalho
A metodologia empregada para o desenvolvimento deste trabalho de pesquisa está
dividida em duas fases: Concepção e Avaliação. Estes encontram-se descritos a seguir.
4.1. Fase de Concepção
 C1) Levantamento na Literatura Técnica acerca das Técnicas e Metodologias
utilizadas para Elicitação de Requisitos de Software. Nesta atividade, foram
encontradas 23 técnicas divididas em 4 categorias (Figura 2).
 C2) Levantamento na Literatura Técnica acerca dos Atributos e Fatores
contextuais que podem influenciar a seleção das técnicas de elicitação. Foram
encontrados 3 fatores de influência, que juntos somam 29 atributos (Tabela 1).
18
XIII Workshop de Teses e Dissertações em Qualidade de Software




C3) Definição da estratégia para caracterizar os elementos de requisitos e coletar
a situação contextual do projeto e dos elementos de elicitação. Foram definidas
perguntas para cada um dos 29 atributos dos fatores de influência.
C4) Definição do modelo de Matemático para o problema SREE para tornar
possível a utilização de metaheurísticas. Foram definidos: o modelo dos
cromossomos e as duas funções objetivo (f1 = função de maximização da
adequação e f2 = função de minimização do custo).
C5) Análise, definição e implementação de metaheurísticas para realização dos
experimentos. Foram definidas para implementação as Metaheurísticas: NSGAII,
MOCell, e SPEA2, por serem algoritmos evolutivos multiobjetivo.
C6) Implementação da Ferramenta de Apoio para que o Engenheiro de Software
possa inserir os dados do projeto, dos analistas e dos patrocinadores/usuários e
solicitar a recomendação visando obter como resposta um conjunto de possíveis
soluções, para que ele possa tomar as decisões de projeto conforme a adequação
e custo dos elementos para o projeto. Esta ferramenta torna-se importante no
contexto da proposta pois, em geral, engenheiros de software não possuem tempo
suficiente em um projeto real para configurar ambientes e dados para a execução
de metaheurísticas, pois estas requerem um conhecimento aprofundado em tais
conceitos. Desta forma, a ferramenta servirá como interface entre o engenheiro de
software e os algoritmos a serem modelados nesta pesquisa, facilitando sua
aplicação em projetos de software. Além disso, a sua construção possibilitaria a
realização de experimentos comparando os dados providos pelos algoritmos com
dados oriundos de especialistas na área. A arquitetura dessa ferramenta encontrase na Figura 3.
Figura 3: Arquitetura da Ferramenta de Apoio.
4.2. Fase de Avaliação
 A1) Condução do Estudo de Viabilidade com um algoritmo randômico e uma
metaheurística. Esse estudo foi realizado com o algoritmo NSGA-II, no qual, os
resultados do algoritmo NSGA-II superaram o algoritmo randômico em todas as
instancias.
 A2) Condução do Estudo comparativo do resultado do primeiro estudo com outras
metaheurísticas. Para esse estudo serão utilizados o NSGA-II (avaliado no passo
anterior), MOCell e SPEA2. A pesquisa encontra-se atualmente nesta fase.
 A3) Refinamento da abordagem e calibragem dos pesos de características,
penalidades e restrições. A partir dos experimentos, identificar pontos de melhoria
nos parâmetros dos algoritmos.
 A4) Avaliação da abordagem por meio da sua comparar com outras propostas da
literatura, por exemplo, com Carrizo et al. (2014), em relação ao apoio provido
para a seleção das técnicas de ER segundo a visão de especialistas em ER.
19
XIII Workshop de Teses e Dissertações em Qualidade de Software
5. Resultados Esperados
Espera-se como resultado dessa pesquisa: (i) a Modelagem de um novo problema em
SBSE, Seleção de Elementos de Elicitação de Requisitos, uma vez que esse problema não
havia sido tratado por essa perspectiva; (ii) Ferramenta de apoio a seleção de elementos
de elicitação, onde o engenheiro de software poderá inserir os dados relacionados ao
projeto, analistas e patrocinadores e recebe como resposta um conjunto de soluções
apresentado por meio do gráfico da Frente de Pareto, seguindo os objetivos de maior
adequação e menor custo.
Referências
Carrizo, D.; Dieste, O; Juristo, N. (2008). Study of Elicitation Techniques Adequacy. In
Workshop on Engenharia de Requisitos (WER), Barcelona, Espanha.
Carrizo, D.; Dieste, O.; Juristo, N. (2014). “Systematizing requirements elicitation
technique selection”, In: Information and Software Technology. Vol, 56, 6 (June
2014), pp. 644-669.
Colanzi, T.E.; Vergilio, S. R.; Assunção, W. K. G. E Pozo, A. (2013). Search Based
Software Engineering: Review and analysis of the field in Brazil. Journal of Systems
and Software, Volume 86, Issue 4, Pages 970-984.
Dias-Neto, A. C., Rodrigues, R. F., Travassos, G. H. (2011). Porantim-opt: optimizing
the combined selection of model-based testing techniques. In 2011 IEEE Fourth
International Conference on Software Testing, Verification and Validation
Workshops, pp. 174-183.
Freitas, F. G. de; Maia, C. L. B.; Coutinho, D. P. G.; Campos, A. L. de, e Souza, J. T. de.
(2009) "Aplicação de Metaheurísticas em Problemas da Engenharia de Software:
Revisão de literatura", II Congresso Tecnológico Infobrasil (Infobrasil 2009).
Grande, A. S.; Rodrigues, R. F.; Dias-Neto, A.C. (2014) “A Framework to Support the
Selection of Software Technologies by Search-Based Strategy”, 2014 IEEE 26th
International Conference on Tools with Artificial Intelligence (ICTAI), pp. 979-983.
Harman, M. e Mansouri, A. (2010). "Search Based Software Engineering”, IEEE
Transactions on Software Engineering , vol.36, no.6, pp.737, 741.
Kausar, S.; Tariq, S.; Riaz, S.; Khaum, A. (2010). “Guidelines for the selection of
elicitation techniques”, 6th International Conference on Emerging Technologies
(ICET), pp. 265-269.
Pressman, R. (2014). Software Engineering: A Practitioner's Approach (8th ed.).
McGraw-Hill Higher Education.
Sadiq, M.; Ghafir, S.; Shahid, M., (2009) "An Approach for Eliciting Software
Requirements and its Prioritization Using Analytic Hierarchy Process", International
Conference on Advances in Recent Technologies in Communication and Computing.
Sommerville, I. "Engenharia de Software". 9ª Ed.–SP: Pearson Prentice Hall, 2011.
Tiwari, S.; Rathore, S. S.; Gupta, A. (2012). “Selecting requirement elicitation techniques
for software projects”, 6th International Conference on Software Engineering.
Zhang, Z. (2007). “Effective Requirements Development – A Comparison of
Requirements Elicitation techniques”. In: INSPIRE 2007, Tampere, Finland.
Zowghi, D.; Coulin, C. (2005). “Requirements Elicitation: A survey of Techniques,
Approaches and Tools”. In: Engineering and Managing Software Requirements. pp:
19-46. Springer, Verlag.
20
XIII Workshop de Teses e Dissertações em Qualidade de Software
Aprendizagem Organizacional em Instituições Implementadoras e
Avaliadoras do MPS.BR
Raphael Freire, Gleison Santos
Programa de Pós-Graduação em Informática - Universidade Federal do Estado do Rio de Janeiro
(UNIRIO) - Av. Pasteur, 458, Urca, CEP 22290-240 - Rio de Janeiro, RJ
{raphael.freire, gleison.santos}@uniriotec.br
Abstract. The successful implementation of software process improvement (SPI) initiatives
depends fundamentally on the strategies adopted to support them. In the literature, there are
several studies that use Knowledge Management (KM) to support software development
organizations. However, there are few studies that approach how the KM can support the
consultants and appraisers of MPS initiatives. The objective of this study is to verify the
necessity of training of consultants and appraisers and, thus, create a strategy to facilitate
the Organizational Learning (OL) of Implementation and Assessment Institutions.
Resumo. O sucesso na implementação de iniciativas de melhoria de processos de software
(MPS) depende fundamentalmente de estratégias adotadas para apoiar a execução de tais
iniciativas. Na literatura existem diversos estudos que utilizam a Gerência de Conhecimento
(GC) para apoiar organizações desenvolvedoras de software. Porém, há uma carência de
trabalhos que tratam de como a GC pode apoiar os consultores e avaliadores de iniciativas
de MPS. O objetivo deste trabalho é entender as necessidades de capacitação dos
consultores e avaliadores e, assim, criar uma estratégia para facilitar o Aprendizado
Organizacional (AO) de Instituições Implementadoras e Instituições Avaliadoras.
1. Introdução e Caracterização do Problema
Uma das premissas para que uma organização seja competitiva é ter know-how para identificar,
gerenciar, proteger e explorar os seus recursos de forma eficiente [BASILI et al. 2001]. Em muitas
dessas organizações, o conhecimento é o mais importante, valioso, e crítico dos recursos [BASILI et
al. 2001]. Resultados de um estudo feito em 2005 [ROCHA et al. 2005] apontaram que uma das
maiores dificuldades encontradas na implantação dos processo está relacionada às competências das
equipes das empresas, em particular o pouco conhecimento em Engenharia de Software. Um novo
estudo realizado em 2014 pela SOFTEX [Rocha, 2014] também reforça essa constatação. Neste
sentido, torna-se essencial desenvolver uma estratégia efetiva para transferência do conhecimento
necessário para a execução dos processos [BARRETO et al. 2006].
Da mesma forma como na execução de um projeto de desenvolvimento, uma implantação de
processos de software em uma organização é fortemente baseada em conhecimento. É de fundamental
importância não apenas para a implantação de uma iniciativa de melhoria, mas também para sua
continuidade, que as pessoas responsáveis por executar os processos a serem implantados sejam
capacitadas para isso [BARRETO et al. 2006]. A perda do conhecimento, seja com a saída de
membros, esquecimento de soluções ou avanços tecnológicos, gera problemas significativos para as
21
XIII Workshop de Teses e Dissertações em Qualidade de Software
organizações. Neste sentido, torna-se essencial desenvolver uma estratégia efetiva para transferência
do conhecimento necessário para a execução dos processos [BARRETO et al. 2006].
Montoni (2010) realizou uma investigação sobre fatores críticos de sucesso em iniciativas de
melhoria de processos de software. Um dos fatores de sucesso identificados está relacionado à
adequação da implementação dos processos e procedimentos com as especificidades da organização.
Segundo o autor, para alcançar este fator, os consultores devem possuir conhecimento adequado em
engenharia de software, além de serem flexíveis para lidar com situações críticas durante a
implementação [MONTONI, 2010]. No entanto, na literatura há carência de estudos relacionados ao
apoio da Gerência de Conhecimento para consultores em melhoria de processos de software. Diante
deste problema, esta pesquisa visa suprir esta lacuna e criar mecanismos de Aprendizagem
Organizacional para consultores neste sentido.
2. Fundamentação Teórica
2.1 Aprendizagem Organizacional e Gerência de Conhecimento
De acordo com Senge (1994), Aprendizagem Organizacional (AO) pode ser definida como o ciclo
contínuo de experiência e sua transformação em conhecimento acessível por toda organização e que
seja relevante para suas finalidades básicas. Em outras palavras, AO é um processo adaptativo de
mudança influenciado pela experiência no passado, e é centralizado no desenvolvimento ou
modificação de rotinas e apoiado pela memória organizacional. O conhecimento é criado por
indivíduos, e suas capacidades, crenças, e experiências, e cristalizado como parte do conhecimento
organizacional [Menolli et al, 2013].
Segundo Takeuchi e Nonaka [2008], existem dois tipos de conhecimento: tácito e explícito. O
conhecimento explícito pode ser expresso em palavras, números ou sons, e compartilhado na forma de
dados, fórmulas científicas, recursos visuais, fitas de áudio, especificações de produtos ou manuais. O
conhecimento explícito pode ser rapidamente transmitido aos indivíduos, formal e sistematicamente.
O conhecimento tácito, por outro lado, não é facilmente visível e explicável. Pelo contrário, é
altamente pessoal e difícil de formalizar, tornando-se de comunicação e compartilhamento dificultoso.
As instituições e os palpites subjetivos estão sob a rubrica do conhecimento tácito. O conhecimento
tácito está profundamente enraizado nas ações e na experiência do indivíduo, assim como nos ideais,
valores ou emoções que ele incorpora.
Ainda segundo os autores, existem quatro modos de conversão de conhecimento. São eles: (i)
de conhecimento tácito em conhecimento tácito, que é chamada de socialização, (ii) de conhecimento
tácito em conhecimento explícito, que é denominada de externalização, (iii) de conhecimento explícito
em conhecimento explícito, ou combinação, e por fim, (iv) de conhecimento explícito para tácito, ou
internalização [NONAKA e TAKEUCHI, 2008].
2.2 Gerência de Conhecimento Aplicada em Iniciativas de Melhoria de Processos de
Software
O MPS.BR, criado em dezembro de 2003, é um programa mobilizador, de longo prazo, coordenado
pela Associação para Promoção da Excelência do Software (SOFTEX), que conta com o apoio do
Ministério da Ciência, Tecnologia e Inovação (MCTI), Financiadora de Estudos e Projetos (FINEP),
Serviço Brasileiro de Apoio às Micro e Pequenas Empresas (SEBRAE) e Banco Interamericano de
Desenvolvimento (BID/FUMIN) [SOFTEX, 2012]. O MPS.BR é um programa voltado para Melhoria
do Processo de Software Brasileiro. Seu objetivo é definir e aprimorar um modelo de melhoria e
22
XIII Workshop de Teses e Dissertações em Qualidade de Software
avaliação de processo de software e serviços, visando preferencialmente às micro, pequenas e médias
empresas [SOFTEX, 2012].
A utilização de Gerência de Conhecimento (GC) é um dos resultados esperados nas
organizações que implantam o nível E do Modelo de Referência MPS para Software (MR-MPS-SW),
devido à existência do processo de Gerência de Recursos Humanos. O objetivo deste processo é
prover a organização e os projetos com os recursos humanos necessários e manter suas competências
adequadas às necessidades do negócio [SOFTEX, 2012]. De forma complementar, o processo requer
uma manutenção do conhecimento organizacional através de estratégias de GC. Assim como
empresas de desenvolvimento necessitam aplicar GC, implementadores e consultores MPS.BR
também carecem desta disciplina.
A GC em uma organização de software é vista como uma oportunidade de criar uma
linguagem comum de entendimento entre desenvolvedores de software, de tal forma que eles possam
interagir, negociar e compartilhar conhecimento e experiências [AURUM, 2003]. A necessidade de
desenvolver cada vez mais práticas de Engenharia de Software dentro das organizações aumenta a
demanda pelo conhecimento sistemático e gestão de competências em todas as fases de um ciclo de
vida de software [AURUM, 2003].
No que diz respeito à implantação de processos de software em uma organização, o
conhecimento daqueles que executarão os processos é de fundamental importância para que a
iniciativa de melhoria seja bem sucedida e produza os resultados esperados. Considerando que
organizações de consultoria em melhoria de processos de software têm a implementação de melhoria
de processos como seu negócio principal, e que o seu sucesso implica diretamente no sucesso das
iniciativas de melhoria de organizações de software que contratam seus serviços, é fundamental
fornecer mecanismos adequados de GC para apoiar organizações de consultoria em melhoria de
processos no estabelecimento de estratégias de implementação de melhorias de processos de software.
Para tanto, é essencial que as estratégias adotadas levem em consideração as condições
organizacionais favoráveis para implementar melhorias, bem como apóiem de forma adequada o
tratamento dos fatores críticos que podem influenciar o sucesso de iniciativas de melhoria ao longo da
sua condução [Montoni et al., 2008] .
3. Trabalhos Relacionados
Um estudo coordenado pela SOFTEX em 2014 [Rocha, 2014] buscou compreender dificuldades de
capacitação de implementadores e avaliadores MPS.BR (tanto para o MPS-SW quanto para MPS-SV).
Para isso, foram aplicados dois questionários: um deles direcionado aos coordenadores de Instituições
Implementadoras (IIs) e Instituições Avaliadoras (IAs), e o outro para avaliadores e implementadores.
Como resultado, foram encontrados dois principais problemas: (i) carências na formação teórica e
experiência prática de implementadores e avaliadores MPS-SW e MPS-SV e (ii) dificuldades de
comparecer a cursos e workshops longe da cidade de origem por custo. Os detalhes destes resultados
serão detalhados a seguir.
Após ser feita uma análise quantitativa dos resultados destes questionários, observou-se que os
temas onde as equipes de Software ou parte delas tem carências foram: Desenvolvimento para
Reutilização e Controle Estatístico de Processos. Para as equipe de Serviços, o tema com maior
carência foi Controle Estatístico de Processos. Essa carência diz respeito à formação teórica e
experiência prática com o tema.
23
XIII Workshop de Teses e Dissertações em Qualidade de Software
Em relação à dificuldade em implementar e avaliar os níveis do MPS.BR, o resultado obtido
foi que para as IIs e IAs que estão no contexto MPS-SW, a maioria das equipes apontou que poucos
membros de suas equipes possuem formação teórica suficiente e experiência prática para implantar os
níveis A e B. No contexto MPS-SV, cerca de 50% (metade) das equipes que responderam o
questionário apontaram pouca formação teórica nos níveis A e B, e pouca experiência prática nos
mesmo níveis A, B, C e D. Em ambos contextos (Software e Serviços) foi possível verificar que as
equipes não possuem dificuldade alguma nos níveis mais baixos G e F.
Além dos resultados mencionados anteriormente, foi feita também uma análise qualitativa com
base nas respostas dos avaliadores e implementadores onde a pergunta foi “Como o MPS pode ajudar
na capacitação?”. A maioria dos respondentes apontou que eventos científicos como WAMPS e
SBQS auxiliam na capacitação de implementadores e avaliadores do modelo MPS. Uma sugestão que
foi amplamente citada é que poderia haver mais cursos na modalidade à distância, isso se justifica
principalmente devido à problemas de logística (deslocamento). Outro ponto citado é de que os cursos
e artigos científicos deveriam ter aspectos mais práticos, e não somente teóricos. Para o caso dos
artigos, em especial para relatos de experiência, percebe-se uma necessidade de que sejam
apresentados cases de implementação que não reflitam apenas resultados positivos, mas também
demonstrem erros de implementação, problemas encontrados e sugestões de soluções para contornar
e/ou resolver os problemas durante a implantação e/ou avaliação . Os assuntos em que se percebeu
maior relevância e necessidade de mais cursos e discussões foram: Controle Estatístico de Processos,
Gerência de Reutilização, Gerência de Configuração e Gerência de Portfólio.
Outra questão subjetiva feita foi “Como o MPS pode ajudar na capacitação de profissionais
das empresas?”. A partir das respostas, concluiu-se que o principal problema apontado é que há uma
deficiência cultural nas organizações que impede a institucionalização dos processos. Nesse contexto,
alguns respondentes relataram que a maioria das empresas não percebe o retorno sobre investimento
(ROI) que os modelos proporcionam, limitando-se apenas na obtenção da certificação. Outro ponto
citado refere-se ao pouco conhecimento em Engenharia de Software por parte dos membros das
empresas. Então, uma sugestão dada é que o MPS poderia estabelecer requisitos mínimos - além do
curso C1 de Introdução - para o profissional da organização que for conduzir a implementação.
Viana (2015) propôs o framework KL-SPI (Knowledge and Learning to Facilitate Software
Process Improvement) que contém três componentes: (1) processo de diagnóstico do estado da prática
de AO e GC nas organizações; (2) catálogo de práticas de AO e GC; e, (3) ferramentas de apoio à AO
e GC que foram desenvolvidas durante a execução deste estudo e identificadas na literatura. Este
modelo é genérico, ou seja, pode ser aplicado em qualquer organização desenvolvedora de software,
porém, pode também ser aplicado no contexto desta pesquisa.
4. Metodologia de Pesquisa e Estado Atual do Trabalho
Até o momento, a metodologia de pesquisa deste trabalho está composta pelos seguintes métodos:
entrevistas e estudos de caso. Os seguintes passos serão adotados: (1) revisão da literatura, (2)
entrevistas com implementadores e avaliadores, (3) aplicação do método KL-SPI no contexto das IIs
ou IAs, (4) solução proposta e (5) projeto de avaliação da solução por meio de um estudo de caso.
O passo 1 foi realizado e será continuamente feito ao longo da pesquisa. O passo 2 foi iniciado
através de uma entrevista-piloto com dois consultores com experiência em implementação e avaliação
do MPS-SW (vide Seção 4.1). Pretende-se aplicar o questionário para um número maior de
consultores a fim de se obter ganho de conhecimento neste contexto de capacitação. O passo seguinte
24
XIII Workshop de Teses e Dissertações em Qualidade de Software
será aplicar o método KL-SPI [VIANA, 2015] em uma II ou IA para verificar os resultados iniciais.
Tendo estes passos concluídos, pretende-se construir a solução proposta deste estudo, que é criar
mecanismos de AO para consultores MPS.BR. Ao final, pretende-se realizar um Estudo de Caso em
alguma organização para confirmar se a solução proposta é válida e gera benefícios tanto para as IIs e
IAs quanto para a própria organização. Este Estudo de Caso confirmatório seria o Projeto de
Avaliação da Solução desta pesquisa.
Um exemplo prático da solução proposta seria investigar que tipo de conhecimento um
implementador deve possuir para apoiar ações a serem tomadas em situações críticas de implantação
de MPS com base na aplicação do KL-SPI. Entende-se por situação crítica, como toda situação
desfavorável à implantação da iniciativa de MPS. Diirr e Santos (2013) identificaram fatores críticos
para melhoria de processos de serviços de TI, alguns exemplos são: apoio gerencial, experiência e
competência dos envolvidos no projeto, e gerência adequada da condução do projeto. Dessa forma, na
etapa de entrevistas, pode-se verificar com implementadores como lidar com estes fatores, de acordo
com a experiência e entendimento de cada um. Ao coletar essas informações e efetuar uma série de
análises, será possível criar um corpo de conhecimento, por exemplo, com lições aprendidas (caso
indicado pela aplicação do KL-SPI). Estas lições aprendidas poderão servir de insumo para as IIs, IAs
e para os próprios consultores e implementadores de MPS. No entanto, a forma como o conhecimento
será tratado ou que abordagens de aprendizagem organizacional serão adotadas ainda depende da
aplicação do KL-SPI nesse contexto, o que será feito em um dos próximos passos da condução da
dissertação.
4.1. Entrevistas
Com o objetivo de compreender melhor as dificuldades de capacitação, um dos pontos iniciais deste
trabalho foi a criação de um questionário com perguntas mais específicas e direcionadas para o
contexto desta pesquisa objetivando entender, por exemplo, que tipo de conhecimento é necessário
durante a implementação de uma iniciativa MPS, e como o conhecimento é disseminado nas IIs e
IAs. Foram entrevistados dois consultores com experiência em implementação e avaliação do MPSSW. Alguns exemplos de perguntas foram:
● “Além do conhecimento em Engenharia de Software, que outros tipos de conhecimento um
implementador MPS.BR deve ter (na execução do seu trabalho diário)? E um avaliador?”
● “Você tem costume de ler o Guia de Implementação do MPS? Na sua opinião, o conhecimento
que está presente nele é suficiente para implementar MPS na prática? Que tipo de
conhecimento seria interessante estar contido nele e não está presente hoje?”
Em relação ao conhecimento que um implementador deve possuir, a resposta obtida foi que
um implementador deve ter conhecimento tácito durante a condução da melhoria de processos de
software. Este conhecimento caracteriza-se pela habilidade do consultor em apontar falhas, dar
sugestões e críticas para os membros da organização evitando ao máximo algum tipo de resistência ou
contrariedade por parte destes. Segundo a entrevistada, várias empresas não reconheciam que o
consultor atuava na iniciativa de MPS como um facilitador. Para a segunda pergunta, os respondentes
afirmaram, por exemplo, que o Guia de Implementação não contempla orientações e exemplos
práticos de implementação de abordagens ágeis de desenvolvimento de software.
5. Resultados Esperados
A partir das carências de capacitação de implementadores e avaliadores do MPS.BR identificadas
através de questionários, entrevistas e relatórios de IIs e IA, pretende-se verificar quais práticas e
25
XIII Workshop de Teses e Dissertações em Qualidade de Software
técnicas de AO e GC levantadas pelo framework KL-SPI são aplicáveis no contexto de IIs e IAs.
Posteriormente, busca-se elaborar uma abordagem, framework, ou processo que possa apoiar a AO de
consultores. Por fim, propõe-se avaliar esta solução proposta por meio de um Estudo de Caso, para
assim, verificar se a solução é válida.
A principal contribuição esperada neste trabalho é facilitar a AO de implementadores e
avaliadores na condução de iniciativas de melhoria de processos de software. Como consequência, as
organizações desenvolvedoras de software também irão se beneficiar do produto deste estudo.
Referências
Aurum, A., Jeffery, R., Wohlin, C., Handzic, M. (2003) Managing Software Engineering Knowledge, Springer, Germany.
Bandeira de Mello, R., Cunha, C., 2003, “Operacionalizando o método da Grounded Theory nas Pesquisas em Estratégia: técnicas e
procedimentos de análise com apoio do software ATLAS/TI”. Encontro de Estudos em Estratégia. Curitiba, Brasil.
Barreto, A., Montoni M., Santos G., Rocha A. R., (2006) . “Gerência de Conhecimento como Apoio para a Implantação de Processos de
Software”. Workshop de Implementadores MPS.BR, Rio de Janeiro. ProQuality - Qualidade na Produção de Software. Lavras:
ProQuality, 2006. v. 2. p. 45-50.
Basili V., Costa P., Lindvall M., Mendonca M., Seaman C., Tesoriero R., Zelkowitz M.,(2001). "An Experience Management System
for a Software Engineering Research Organization," sew, pp.29, 26th Annual NASA Goddard Software Engineering Workshop.
Diirr, T.; Santos, G. “Fatores Críticos de Sucesso para Melhoria de Processos de Serviços de TI: Um Mapeamento Sistemático” .
Simpósio Brasileiro de Qualidade de Software, 2013, Salvador, BA.
Menolli, A., Reinehr, S., Malucelli, A. “Organizational Learning Applied to Software Engineering: a Systematic Review”, International
Journal of Software Engineering and Knowledge Engineering, Vol. 23, No. 8 (2013) 1153-1175.
MONTONI, M. ; CERDEIRAL, C. ; ZANETTI, D. . Uma Abordagem para Condução de Iniciativas de Melhoria de Processos de
Software. In: VII Simpósio Brasileiro de Qualidade de Software (SBQS), 2008, Florianópolis. VII Simpósio Brasileiro de Qualidade
de Software (SBQS), 2008. p. 263-277.
Montoni, M.; Santos, G.; Figueiredo, S.; Filho, R. C. S.; Barcelos, R.; Barreto, Ahilton.; Barreto, Andrea; Cerdeiral, C.; Lupo, P.;
Rocha, A. R. “Uma Abordagem de Garantia de Qualidade de Processos e Produtos de Software com Apoio de Gerência de
Conhecimento na Estação TABA”. Simpósio Brasileiro de Qualidade de Software, 2006, Vila Velha - ES.
Montoni, M. A. (2010) “Uma Investigação sobre os Fatores Críticos de Sucesso em Iniciativas de Melhoria de Software de Processos”.
Tese (Doutorado em Engenharia de Sistemas e Computação) – Universidade Federal do Rio de Janeiro.
Nardi, J.; Falbo, R. A. “Apoio de Gerência de Conhecimento na Engenharia de Requisitos”. Simpósio Brasileiro de Qualidade de
Software - SBQS 2007.
Oliveira, J. F.; Andrade, G. F.; Tavares, L. C.; Reis, C. A. L. (2009).“Planejamento e Execução de Gerência do Conhecimento em um
Ambiente de Desenvolvimento de Software”. Simpósio Brasileiro de Qualidade de Software - SBQS 2009. Ouro Preto, MG.
Rocha, A. R. Painel „Melhorias no Programa MPS.BR e no Modelo MPS‟ - GT/T4: Melhorias na Capacitação de Pessoas). Simpósio
Brasileiro de Qualidade de Software - SBQS 2014. Blumenau, SC.
Senge, P., Kleiner, A., Roberts, C., Ross, R. and B. J. Smith, The Fifth Discipline Field Book (Doubleday, New York, 1994).
SOFTEX (2012). “MR-MPS-SW – Guia Geral MPS de Software”. Disponível em: www.softex.br/mpsbr
Takeuchi H., Nonaka I., “Gestão do Conhecimento”; tradução Ana Thorell. Porto Alegre : Bookman, 2008.
Viana, D. “FACILITANDO A APRENDIZAGEM ORGANIZACIONAL EM MELHORIA DE PROCESSO DE SOFTWARE”. Tese
de Doutorado - UNIVERSIDADE FEDERAL DO AMAZONAS – UFAM. Manaus, Amazonas, Março de 2015.
Watson, I., 2003, Applying Knowledge Management Techniques for Building Corporate Memories, Morgan Kaufmann Publishers,
Estados Unidos.
26
XIII Workshop de Teses e Dissertações em Qualidade de Software
Um Método para Seleção de Indicadores de Serviços de TI
1
Bianca Trinkenreich, 1Gleison Santos, 2Monalessa Perini Barcellos
1
Programa de Pós-Graduação em Informática, Departamento de Informática Aplicada,
Universidade Federal do Estado do Rio de Janeiro (UNIRIO), , Rio de Janeiro, Brasil
2
Departamento de Ciência da Computação, Universidade Federal do Espírito Santo
(UFES), Vitória, ES, Brasil
{bianca.trinkenreich, gleison.santos}@uniriotec.br,
[email protected]
Abstract. Effective measurement processes help organizations to understand their
capabilities to develop workable plans to execute and deliver agreed services.
Many organizations consider measures and indicators selection a difficult task.
This work proposes a method to select IT services indicators, supporting IT services measurement initiatives, in service maturity models context inclusive. It will
be based on GQM+Strategies approach, COBIT framework, RSMO ontology,
processes and relationships evaluation and goals and indicators reuse.
Resumo. Um processo de medição eficaz ajuda a compreensão da habilidade de
uma organização desenvolver planos viáveis para executar e entregar serviços
acordados. Muitas organizações consideram a seleção de medidas e indicadores
uma tarefa difícil. Esta dissertação apresenta um método para selecionar indicadores de serviços de TI nas organizações, apoiando iniciativas de medição de
serviços de TI, inclusive em modelos de maturidade de serviços. O método será
baseado no GQM+Strategies, no framework COBIT, na ontologia ORMS, em
avaliação de processos e relacionamentos e reuso de objetivos e indicadores.
1. Introdução e Caracterização do Problema
Prestadores de serviços de TI estão continuamente à procura de métodos mais eficientes
para melhorar o desempenho dos processos de suporte ao cliente e reduzir os custos de
suporte e manutenção. Ser capaz de fazer previsões em relação aos serviços que entrega é
um fator de sucesso para uma organização. Um processo de medição eficaz ajuda a organização a compreender suas capacidades para que possa desenvolver planos viáveis para
executar e entregar os serviços acordados com seus clientes. Medições também ajudam a
detectar tendências e antecipar problemas, proporcionando, assim, um melhor controle de
custos, redução de riscos, melhoria da qualidade e garantia de alcance dos objetivos de
negócio [FLORAC e CARLETON, 1997]. Uma dificuldade que as organizações prestadoras de serviços de TI apresentam é fazer a seleção de indicadores alinhados aos objetivos
de serviços de TI. A falta de uma abordagem estruturada para seleção de indicadores de
serviços de TI e exemplos práticos são dois fatores que causam tal dificuldade, além de as
ferramentas em uso pelas equipes geralmente não incluírem a medição [JANTTI et al.,
2010] [CATER-STEEL e LEPMETS, 2014].
Considerando o provimento de serviços como uma cadeia de processos relacionados, mais do que selecionar os processos a serem medidos e entregar apenas indicadores
isolados de cada processo, também é preciso conhecer e controlar esses relacionamentos.
Para isso é necessário conhecer os processos e seus relacionamentos com outros processos,
27
XIII Workshop de Teses e Dissertações em Qualidade de Software
além de avaliar o impacto de um serviço em outro [TRINKENREICH e SANTOS, 2015].
Em [TRINKENREICH e SANTOS, 2014], o processo de medição de uma organização foi avaliado sob a luz dos resultados esperados do processo Medição (MED) do MRMPS-SV [SOFTEX, 2012a] e a qualidade de informação de dois indicadores em uso e o
alinhamento deles com os objetivos da organização. Observou-se a dificuldade que a organização apresenta em selecionar os indicadores de desempenho mais adequados para atender o negócio e dificuldade do processo atual em atender aos indicadores existentes. Foi
observado um resultado positivo de apoio mútuo entre integrantes de uma equipe e entre
diferentes equipes quando são usados indicadores cruzados de diferentes serviços. Percebeu-se que um método de seleção de indicadores e um catálogo de indicadores serão úteis
na seleção anual que a organização realiza de indicadores de desempenho de serviços.
Em [TRINKENREICH et al., 2015a] foi apresentado um mapeamento sistemático
para encontrar medidas que podem ser usadas em iniciativas de modelos de maturidade de
serviços de TI. Este trabalho resultou em uma lista de medidas, que por meio do entendimento do significado de cada uma, foram classificadas por processo do modelo de maturidade de serviços e foram encontradas medidas relacionadas a mais de um processo. Em
[TRINKENREICH e SANTOS, 2015], estes resultados foram usados para: (i) validar o uso
das medidas encontradas em uma empresa real, (ii) incluir novas medidas que não foram
encontradas na literatura, (iii) avaliar o relacionamento entre as medidas e (iv) apresentar o
uso de testes estatísticos de correlação para apoiar análise de causa-efeito entre serviços
que possuem relacionamento entre si. Observou-se a dificuldade de selecionar indicadores
adequados que tragam visibilidade sobre o alcance dos objetivos da organização.
Contar com um catálogo de medidas a partir do qual seja possível escolher aquelas
que sejam adequadas para a organização ou inspirar a criação de novas medidas pode reduzir o esforço e acelerar a seleção de indicadores [KANEKO et al., 2011] [JANTTI et al.,
2010] [KILPI, 2001]. Entretanto, isso não é suficiente. É preciso definir medidas que possam ser usadas como indicadores, ou seja, medidas relacionadas a objetivos e que apoiam o
monitoramento do seu alcance [BARCELLOS, 2009]. Desta forma, é necessário alinhar
medidas com objetivos para definir os indicadores de serviços de TI [PARMENTER,
2013]. Para fazer este alinhamento é preciso compreender as necessidades de informações
das partes interessadas, a forma como os processos de serviços de TI foram projetados e
são executados na organização e, então, detectar quais são os processos críticos e as estratégias a serem seguidas para alcançar as metas estabelecidas.
O objetivo deste trabalho é criar um método para apoiar a seleção de indicadores de
serviços de TI através da derivação dos objetivos da organização em objetivos de serviços
de TI, estratégias e indicadores. O método será baseado em componentes do
GQM+Strategies [BASILI et al., 2007], considerará os conceitos da Ontologia de Referência para Medição de Software (ORMS) [BARCELLOS, 2009] e contará com atividades de
modelagem de processos críticos. Além disso, será fornecido um catálogo de indicadores
criado a partir do COBIT Goal Cascade [ISACA, 2012] e da lista de medidas para serviços
de TI [TRINKENREICH et al., 2015a]. O catálogo de indicadores será considerado como
entrada para algumas atividades do método. O método apoiará iniciativas de medição de
serviços de TI, relacionadas ou não e também o Processo de Medição dos modelos de maturidade de serviços de TI.
Este artigo contém uma revisão da literatura na seção 2, trabalhos relacionados de
outros autores na seção 3, a metodologia a ser seguida, o planejamento e o estado atual do
28
XIII Workshop de Teses e Dissertações em Qualidade de Software
trabalho na seção 4, e os resultados esperados na seção 5.
2. Medição de Serviços de TI
Em geral, as definições de serviço refletem, em certo nível, o ponto de vista das disciplinas
acadêmicas ou dos sectores econômicos onde foi definido. Serviço é "uma representação
lógica de uma atividade repetitiva que tem um resultado especificado. Ele é autossuficiente
e é uma "caixa preta" aos seus consumidores" [ISACA, 2012] [CASES et al., 2010]. Serviços de TI são definidos para apoiar a realização dos negócios [CASES et al., 2010] e são
meios importantes para estabelecer o alinhamento entre a TI e o negócio [ABDI et al.,
2010]. Há várias abordagens dedicadas aos serviços de TI, tais como COBIT [ISACA,
2012], CMMI-SVC [FORRESTER et al., 2010], MR-MPS-SV [SOFTEX, 2012] e ITIL
[TSO, 2011], que endereçam os processos relacionados a serviços de TI (por exemplo,
Gerência de Incidentes, Problemas, Mudanças etc.) e fornecem orientações a suas implementações.
A fim de avaliar e melhorar a qualidade dos serviços, a qualidade dos processos
executados para oferecer os serviços precisa ser avaliada [FORRESTER et al., 2010]. A
medição desempenha papel fundamental em iniciativas de melhoria da qualidade de processos. Em geral, medições eficazes de serviços são planejadas com base em alguns indicadores vitais e significativos (ou seja, medidas usadas para verificar quantitativamente o
alcance das metas [ECKERSON, 2009]) para apoiar os resultados desejados. Assim, é importante definir os indicadores apropriados para apoiar os objetivos de qualidade de serviços e satisfação do cliente [ISACA, 2012]. Além disso, é necessário concentrar a atenção
em indicadores relacionados a processos críticos e alinhados aos objetivos organizacionais,
mas esta não é uma tarefa fácil.
Existem algumas propostas que lidam com esta questão. COBIT Gols Cascade
[ISACA, 2012] fornece um catálogo com 17 objetivos organizacionais e relacionados a TI,
e mais de 100 indicadores que podem ser reutilizados. Balanced Scorecard (BSC) [KAPLAN e NORTON,1996] é uma abordagem na qual a medição é aplicada para verificar se
as atividades da organização conseguem atingir suas metas de visão e estratégia. A abordagem GQM+Strategies [BASILI et al., 2007] é uma extensão do GQM [SOLINGEN e
BERGHOUT, 1999] e tem estratégias e medidas como entrada para um modelo desde o
nível mais alto de negócio até o mais baixo operacional, e vice-versa. GQM+Strategies
ajuda a identificar metas, estratégias e indicadores alinhados com objetivos de negócio e
fornece um mecanismo para monitorar o sucesso e o fracasso de metas e estratégias através
de medição. Os principais componentes do GQM+Strategies são [BASILI et al., 2007]:
Objetivos da Organização (o que a organização deseja alcançar), Estratégias (como atingir
as metas), Fatores de Contexto (ambientes externos e internos), Premissas (estimativas
desconhecidas), gráficos GQM [SOLINGEN e BERGHOUT, 1999] (como medir se um
objetivo foi alcançado e uma estratégia foi bem sucedida ou não) e Modelos de Interpretação (como interpretar os indicadores de medição para verificar o atendimento aos objetivos
e atender às necessidades de informação) [SOLINGEN e BERGHOUT, 1999].
3. Trabalhos Relacionados
Na literatura existem algumas propostas que ajudam as organizações a definir indicadores
de serviços de TI. O COBIT Gols Cascade [ISACA, 2012] recomenda que a empresa construa seus próprios objetivos e medidas em cascata, compare-os com COBIT e refine-os.
Embora o COBIT forneça um conjunto de objetivos e medidas a serem reutilizados, não
29
XIII Workshop de Teses e Dissertações em Qualidade de Software
existe um procedimento a ser seguido para fazer a seleção. O BSC [KAPLAN e NORTON,1996] não fornece explicitamente uma forma de como definir metas, estratégias e
indicadores relacionados a diferentes níveis organizacionais, sendo mais aplicável em níveis mais altos.
Um framework de medidas para serviços de TI foi apresentado em [CATERSTEEL e LEPMETS, 2014], mas apenas um catálogo é fornecido, sem um método para
selecionar e alinhar medidas aos objetivos de negócio. Os autores afirmam que o alinhamento entre os objetivos de negócios e de serviços de TI na indústria precisa ser estudado e
poderia fornecer suporte adicional para seu framework. Em [JANTTI et al., 2010], os autores apresentam um sistema de apoio à medição de serviços de TI. Segundo os autores, além
de uma ferramenta de medição bem concebida e fácil de usar, existe a necessidade de um
processo sistemático de medição e que as medidas precisam ser baseadas em objetivos de
negócios. Para responder a essa necessidade, os autores sugerem uma estrutura resumida
de processo baseada na ITIL [TSO, 2011], mas enfatizam que o estudo se concentrou na
implementação do sistema de medição e o a estrutura não foi validada em casos reais.
Existem algumas propostas que, embora não dedicadas a serviços de TI, podem ser
utilizadas neste contexto. O GQM+Strategies [BASILI et al., 2007] não detalha como
identificar processos críticos a serem considerados nas estratégias ou como definir estratégias e medidas adequadas. Em [BASILI et al., 2013] e [KANEKO et al., 2011] as lições
aprendidas, resultados e experiências da aplicação da abordagem GQM+Strategies são
apresentadas, mas nenhum dos dois sugere um método a ser usado em associação ao
GQM+Strategies para outros casos.
O método a ser criado reutiliza o conhecimento fornecido por outras propostas
(principalmente COBIT e GQM+Strategies) e aborda algumas das lacunas citadas. Ele
define um conjunto de atividades, orienta sobre o que deve ser feito a fim de selecionar
indicadores relevantes para o monitoramento dos objetivos, sugere modelos e reutiliza metas e medidas registradas na literatura.
4. Metodologia e Estado Atual do Trabalho
A metodologia a ser empregada no desenvolvimento da pesquisa está levando em consideração estudos de caso na indústria e envolve métodos de análise qualitativa e quantitativa,
tendo sido dividido em três fases: concepção, construção, avaliação e melhorias. Na fase de
concepção são coletadas as informações através de investigações da literatura, na fase de
construção o método com modelo conceitual e os processos serão definidos. Na fase de
avaliação e melhorias, os estudos de caso serão realizados, o método e os processos serão
refinados de acordo com os resultados obtidos na indústria. As atividades correspondentes
a esta metodologia são apresentadas a seguir, de acordo com suas fases.
#
Atividade
1
2
Publicação
Objetivo
Fase de Concepção
Estudo de Caso na indústria para avaliação do processo WAMPS (Campi- Entender como funciona a medide medição de serviços em uma empresa e avaliação de nas) – Premio des- ção de serviços de TI em uma
dois indicadores utilizados
taque [TRINKEN- organização real
REICH e SANTOS,
2014]
Mapeamento sistemático sobre medidas sugeridas na ICEIS (Barcelona) Entender quais são os indicadores
literatura para melhoria de processos de serviços de TI e a [TRINKENREICH de serviços de TI propostos na
quais processos do MR-MPS-SV e do CMMI-SVC elas et al, 2015a]
literatura e agrupá-los por procesestão relacionadas
so para facilitar reúso
30
XIII Workshop de Teses e Dissertações em Qualidade de Software
#
3
4
5
6
7
Atividade
Estudo de Caso na indústria para entendimento dos relacionamentos entre os processos em medidas derivadas em
mais de um processo, encontradas pelo mapeamento
sistemático e aumento da lista de medidas obtidas no
passo anterior
Extensão do item 1, incluindo a avaliação de mais um
indicador sobre o processo MR-MPS-SV de Orçamento e
Contabilização de Serviços
Publicação
Objetivo
ICEIS (Barcelona) Validar o resultado do mapeamen[TRINKENREICH to e entender relacionamentos
e SANTOS, 2015] entre os processos de serviços
Submetido à revista
iSys (pré-aprovado
devido ao destaque
do WAMPS)
Estudo de Caso na indústria usando mineração de proces- SEKE
(Pittsburg)
sos sobre log de incidentes para utilização de descobertas [TRINKENREICH
sobre o processo para apoiar a seleção de medidas de et al, 2015b]
serviços de TI
Estudo de Caso na indústria para avaliação do processo SBQS (Manaus)
de incidentes, mapeamento dos relacionamentos com
outros processos e uso destes relacionamentos para suportar a seleção de medidas multiprocessos
Fase de Construção
Investigação na literatura técnica sobre GQM+Strategies, COBIT, RSMO, trabalhos científicos e relatos de experiência sobre métodos para seleção de medidas de serviços,
ou de software que possam ser adaptados para serviços
Desenvolvimento do método para seleção de indicadores Submetido e aguarde serviços de TI
dando resposta
Aumentar o entendimento sobre
como funciona a medição de
serviços de TI em uma organização real
Entender funcionamento do processo de incidentes e como apoiar
a seleção de indicadores
Aumentar o entendimento sobre o
processo de incidentes e como o
conhecimento do relacionamento
entre processos pode apoiar a
seleção de indicadores
Obter conhecimento sobre
bases para criação do método
as
Criação do método proposto para
seleção de indicadores de serviços
de TI
Criação do catálogo de indicadores de desempenho de Em elaboração. Sem Criação do catálogo de indicado9 serviços de TI baseado na ontologia de medição [Barcel- publicação associa- res para reúso
los, 2009]
da ainda
Fase de Avaliação
Estudo de viabilidade com área de Segurança da Informa- Em elaboração no Avaliação do método proposto
ção para avaliar a aceitação de acordo com o Modelo de momento.
10
Aceitação de Tecnologia – TAM (Laitenberger e Dreyer,
1998)
Estudos de caso da aplicação do método em uma empresa Avaliação do método proposto
pública para avaliar a aceitação de acordo com o Modelo
11
de Aceitação de Tecnologia – TAM (Laitenberger e
Dreyer, 1998)
Melhorias no método e nos processos propostos de acor- Melhorias ao método proposto
12
do com as lições aprendidas nos estudos
8
5. Resultados Esperados
Os resultados e benefícios esperados com esta dissertação de mestrado são: (i) um método
para selecionar indicadores de desempenho e apoiar o processo de medição dos modelos de
maturidade de serviços de TI, (ii) um catálogo de indicadores de desempenho de serviços
de TI, (iii) estudos de caso a fim de avaliar a aplicabilidade do método proposto, fornecendo exemplos reais de utilização e evidências de tempo e eficácia, relevantes para adoção
industrial. Espera-se que os resultados apoiem as organizações na seleção de indicadores
de desempenho em iniciativas de melhorias de processos de serviços de TI.
Agradecimentos
Os autores agradecem à FAPERJ (projeto E-26/110.438/2014) e ao CNPq (Processo
461777/2014-2) pelo auxílio financeiro.
Referências
Abdi, M.; Dominic, P. D. (2010). “Strategic IT Alignment with Business Strategy: Service Oriented Architecture Approach”. International Symposium on Information Technology. Kuala Lam-
31
XIII Workshop de Teses e Dissertações em Qualidade de Software
pur – Malaysia
Barcellos, M. P. (2009). “Uma Estratégia para Medição de Softwaree Avaliação de Bases de Medidas para Controle Estatístico de Processos de Software em Organizações de Alta Maturidade”.
Tese (Doutorado em engenharia de sistemas e computação). UFRJ, RJ.
Basili, V., Heidrich, J., Lindvall, M., Münch, J., Regardie, M., Trendowicz, A. (2007)
“GQM+Strategies –aligning business strategies with software measurement” pp 488–490.
ESEM Int’l Symposium Empirical Software Engineering and Measurement. Spain
Basili, V., Lampasona, C.., Ramírez, A. (2013) “Aligning Corporate and IT Goals and Strategies in
the Oil and Gas Industry” - PROFES Int’l Conference
Cases, M.; Bodner, D. A.; Mutnury, B. (2010) “Architecture of Service Organizations” In: Salvendy, G.; Karwowski, W. (Eds.). Introduction to Service Engineering. Hoboken: John Wiley &
Sons, Inc., p. 109–134.
Cater-Steel, A., Lepmets, M. (2014) “Measuring IT Service Quality: Evaluation of IT Service
Quality Measurement Framework in Industry” Journal Service Science Research pp 125-147
Eckerson, W. (2009) "Performance management strategies." Business Intelligence Journal 14.1 pp.
24-27.
Forrester, E., Buteau, B., Shrum, S.(2010) -CMMI For Services, Guidelines for Superior Service.
CMMI-SVC Version 1.3 - 2nd Edition. SEI. Addison-Wesley Professional.
Florac e Carleton (1997) “Practical Software Measurement: Measuring for Process Management
and Improvement” Software Engineering Institute
ISACA (2012) “COBIT 5 – Control Objectives Management Guidelines Maturity Models: A Business Framework for the Governance and Management of Enterprise IT”. Information Systems
Audit and Control. Association, USA
Jäntti, M., Lahtela, A., Kaukola, J. (2010) “Establishing a Measurement System for IT Service
Management Processes: A Case Study”. Int’l Journal on Advances in Systems and Measurements, vol 3 no 3 & 4
Laitenberger, O., Dreyer, H. M. (1998) “Evaluating the Usefulness and the Ease of Use of a Webbased Inspection Data Collection Tool”. IEEE Computer Society.
Kaneko, T., Katahira, M., Miyamoto, Y., Kowalczyk, M. “Application of GQM+Strategies in the
Japanese Space Industry”. Int’l Workshop on Software Measurement (2011)
Kaplan, R., Norton, D.P. (1996) “The Balanced Scorecard Translating Strategy Into Action”.
Havard Business School Press, Boston.
Kilpi, T. (2001) – “Implementing a software metrics program at Nokia”, IEEE Software, Volume18, issue 6, pp. 72–77. ISSN: 0740-7459
Parmenter, D. (2013) “Key Performance Indicators – Developing, Implementing and Using Winning KPIs” 3rd edition Wiley
Softex (2012) Associação para Promoção da Excelência do Software Brasileiro “MPS.BR – Guia
Geral MPS de Serviços” Disponível em www.softex.br
Solingen, R., Berghout, E. (1999) ”The Goal/Question/Metric Method: A Practical Guide for Quality Improvement of Software Development”. McGraw-Hill.
The Stationary Office – TSO (2011) ITIL Service Operation. Disponível em www.bestmanagement-practice.com.
Trinkenreich, B., Santos, G. (2014) “Avaliação do Processo de Medição em Gerência de Incidentes
e Gerência de Continuidade e Disponibilidade à Luz do MR-MPS-SV”. Workshop Anual do
MPS.BR - WAMPS, Campinas – SP, pp. 186-194.
Trinkenreich, B., Santos, G., Barcellos, M. P. (2015a) “Metrics to Support IT Service Maturity
Models – A Systematic Mapping Study”, ICEIS 17th Int’l Conference on Enterprise Information Systems, Espanha
Trinkenreich, B., Santos, G. (2015) “Metrics to Support IT Service Maturity Models – A Case
Study”, ICEIS 17th Int’l Conference on Enterprise Information Systems, Espanha
Trinkenreich, B., Santos, G., Confort, V., Santoro, F. (2015b) “Toward using Business Process
Intelligence to Support Incident Management Metrics Selection and Service Improvement”,
SEKE Int’l Conference Software Engineering Knowledge Engineering, Pittsburg.
32
XIII Workshop de Teses e Dissertações em Qualidade de Software
Uma Análise dos Benefícios Tangíveis e Intangíveis de
Melhoria de Processo de Software
Diego Cruz e Gleison Santos
Programa de Pós-Graduação em Informática - Universidade Federal do Estado do Rio de
Janeiro (UNIRIO) - Av. Pasteur, 458, Urca, CEP 22290-240 - Rio de Janeiro, RJ
{diego.dacruz, gleison.santos}@uniriotec.br
Abstract. Benefits obtained by software process improvement are one of the various
organizational motivation factors to adopt and maintain practices proposed by maturity
models like MPS.BR and CMMI. Despite many organizational experience reports present
benefits in SPI implementation, the lack of information about how to measure SPI
benefits can affect professionals’ motivation and organizations’ decision to invest in
improvement programs. This paper presents a proposal to develop a catalog containing
SPI implementation benefits, metrics to analyze quantitative benefits and techniques to
quantitatively estimate intangible benefits. Consultancies and software organizations that
adopted or aim to adopt SPI may use this catalog as reference to support the SPI
implementation process.
Resumo. Os benefícios gerados por implementação de melhoria de processos de
software são um dos fatores motivacionais para que organizações de software adotem e
mantenham as práticas propostas em modelos de maturidade como MPS.BR e CMMI.
Ainda que no contexto de adoção de melhoria de processos de software existam diversos
relatos sobre benefícios obtidos por organizações, a escassez de informações sobre como
mensurar benefícios de melhoria de processos pode impactar na motivação de
profissionais e na decisão de organizações em investirem em programas de melhoria.
Este trabalho apresenta a proposta de desenvolvimento de um catálogo de benefícios da
implementação de melhoria de processos de software e possíveis métricas para analisar
benefícios quantitativos e técnicas para estimar quantitativamente benefícios intangíveis.
Tal catálogo pode ser usado como referência para consultorias e organizações de
software que implementaram ou pretendem implementar melhoria de processos.
1. Introdução
Melhoria de processos de software (MPS) tem sido promovida por praticantes e
pesquisadores da Engenharia de Software há anos com o objetivo de ajudar organizações
a desenvolver softwares de alta qualidade de maneira mais eficiente [Staples et al. 2007].
Dentre os modelos de melhoria de processos de software mais utilizados no Brasil,
destacam-se o MR-MPS-SW, do Programa Brasileiro de Melhoria de Processos de
Software (MPS.BR) [SOFTEX 2012], e o CMMI-Dev (Capability Maturity Model
Integration for Development) [CMMI Product Team 2010].
O objetivo do Programa MPS.BR é desenvolver e disseminar um modelo de
melhoria de processos brasileiro (MR-MPS-SW) visando estabelecer um caminho
economicamente viável para que organizações, incluindo as micro, pequenas e médias
empresas (mPME), alcancem os benefícios da melhoria de processos e da utilização de
boas práticas da engenharia de software em um intervalo de tempo razoável [Kalinowski
33
XIII Workshop de Teses e Dissertações em Qualidade de Software
et al., 2010]. Logo, para garantir o sucesso do modelo MPS, é essencial que organizações
possam efetivamente adotá-lo e obtenham seus benefícios [Santos et al. 2012].
Este artigo propõe uma análise dos benefícios relatados por empresas que
adotaram melhoria de processos de software e, a partir dessa análise, espera-se obter um
catálogo contendo benefícios tangíveis e intangíveis de melhoria de processos, medidas
para analisar os benefícios tangíveis (quantitativos) e técnicas para quantificar benefícios
intangíveis (qualitativos). A obtenção deste catálogo tem o intuito de facilitar a
identificação dos benefícios e pode auxiliar empresas e consultorias no processo de
motivação dos profissionais envolvidos no processo de melhoria e influenciar na decisão
da alta gerência em investir em melhoria de processos de software.
A próxima seção caracteriza o problema para o qual a pesquisa está direcionada, a
seção 3 apresenta a fundamentação teórica, a seção 4 apresenta um planejamento das
etapas da pesquisa e os resultados obtidos até o momento, enquanto na seção 5 é
apresentada a conclusão.
2. Caracterização do Problema
Ainda que o conjunto de fatores que influenciam a implementação de MPS nas empresas
tenha sido largamente estudado, a evidência dos benefícios obtidos com melhoria de
processos é um ponto crítico para as empresas e carece de um aprofundamento teórico.
A melhoria de processos gera benefícios tangíveis (por exemplo, aumento da
produtividade, redução de custos) e intangíveis (por exemplo, satisfação do cliente,
melhoria no ambiente de trabalho). Alguns destes benefícios foram exemplificados por
Ramos et al. (2013) que realizaram uma revisão sistemática para identificar benefícios de
MPS e também métodos e medidas para analisar o retorno do investimento (ROI) em
iniciativas de MPS. Além da revisão sistemática, os autores propuseram uma estratégia
para análise do retorno do investimento com base na expectativa da empresa. No entanto,
apesar de diversos autores relatarem os benefícios de iniciativas de melhoria de processos
[Ferreira et al. 2007][Santos et al. 2012][Ramos 2013], ainda há escassez de informações
na literatura que facilitem a evidência destes benefícios.
É uma necessidade no estado da prática e da arte da área de melhoria de processos
do setor de software do Brasil a condução de investigações visando construir teorias
substantivas que considerem as especificidades do mercado de software brasileiro
[Montonni 2010]. Assim, acredita-se que um conjunto de informações que auxilie
empresas e profissionais a reconhecerem os benefícios de melhoria de processos no
contexto de melhoria de processos de software possa promover a melhoria do software
nacional à medida que induz a institucionalização das boas práticas do programa na
indústria de desenvolvimento de software
O modelo conceitual da Figura 1 apresenta como os benefícios estão presentes em
uma implementação de MPS. Este modelo foi elaborado com base em resultados
verificados em pesquisas anteriores sobre fatores críticos de sucesso, benefícios, Retorno
do Investimento (ROI) e motivadores de melhoria de processos. Com esta revisão da
literatura foi possível constatar que uma fonte de informações precisas sobre benefícios
tangíveis e intangíveis de MPS e de técnicas de medição para permitir o
acompanhamento do ROI é importante para o ecossistema de desenvolvimento de
software. Tal importância está ligada ao fato de que a evidência dos benefícios influencia
na motivação de empresas de software em adotar boas práticas da Engenharia de
Software [Staples et al. 2007; 2008][Santos et al., 2012] e promove a motivação dos
34
XIII Workshop de Teses e Dissertações em Qualidade de Software
funcionários em apoiar as iniciativas, aumentando a possibilidade de sucesso [Zahran
1996][Baddoo e Hall 2002][Niazi e Ali Babar 2006][Viana et al. 2011]. Além disso,
muitas organizações de software que implementam melhoria em seus processos têm
abandonado tais práticas por não haver evidências dos benefícios obtidos [Albuquerque
2014]. Entretanto, há indícios de que a implementação de MPS promove a qualidade do
software [Staples et al. 2007], por isso, é importante para o mercado consumidor que
estas implementações tenham sucesso, que novas organizações se interessem em adotar
MPS e que as organizações que já implementaram continuem melhorando seus processos.
Figura 1: Benefícios no contexto de implementação de MPS. (Fonte: o autor)
3. Fundamentação Teórica
Os benefícios relatados por organizações que implementaram melhoria de processos
estão fortemente relacionados com os motivos que levaram a organização a investir em
MPS [Solingen 2004]. Em alguns casos, benefícios intangíveis podem representar o
maior retorno desejado por uma organização que investe em melhoria de processos
[Krasner 1994][Santos et al. 2012]. No entanto, como não há nenhum modelo de
referência para medir o custo-benefício de melhoria de processos, muitas organizações
seguem uma abordagem própria para identificar e medir seus benefícios [Zahran 1996].
Assim, esta seção apresenta 3 abordagens relacionadas à identificação e medição de
benefícios de melhoria de processos.
Zhran (1996) sugere um modelo e orientações para ajudar organizações a
identificar e mensurar os custos e benefícios de melhoria de processos de software. A
abordagem é composta de um “business case” para convencer os executivos do valor do
investimento em MPS e uma estratégia para medir os custos e benefícios continuamente
após a implementação da MPS. Sua estratégia de medição busca transformar benefícios
qualitativos em quantitativos através de uma metodologia orientada a risco denominada
PRAM (Project Risk Analysis and Management).
Em 2004, Solingen apresenta uma abordagem de obtenção do ROI estimado,
considerando os benefícios de MPS. Assim como Zhran (1996), sua abordagem também
busca transformar benefícios qualitativos em quantitativos, porém a estratégia proposta é
obter uma estimativa quantitativa dos stakeholders (ex.: Quantas horas de treinamento
seriam necessárias para obter o benefício “melhoria de requisitos”? Quanto isso custa?).
35
XIII Workshop de Teses e Dissertações em Qualidade de Software
O Projeto iMPS [SOFTEX, 2013] foi criado em 2007 com o objetivo de analisar
periodicamente o desempenho de empresas avaliadas no modelo MPS-SW através de um
survey. No entanto, os autores quantificam alguns benefícios tangíveis relatados por
empresas, enquanto os benefícios intangíveis são apenas citados. O iMPS utiliza algumas
métricas para identificação de benefícios quantitativos (ex.: Medida: Custo médio do
projeto - Medido em função do percentual do faturamento bruto dos últimos 12 meses).
4. Metodologia e Estado Atual do Trabalho
Este trabalho tem o objetivo de fornecer um catálogo que contenha benefícios da
implementação de melhoria de processos de software, possíveis métricas para quantificar
benefícios quantitativos e técnicas para identificar e quantificar benefícios qualitativos.
Trata-se de um estudo exploratório de natureza qualitativa realizado em 5 etapas
(Figura 2): (i) Mapeamento sistemático para identificação de benefícios de implementação de melhoria de processos de software, métricas para mensurar benefícios tangíveis
e técnicas para estimar benefícios intangíveis; (ii) Entrevistas para identificação de
benefícios sob a perspectiva de empresas avaliadas e para entender como os benefícios
são analisados na prática; (iii) Análise qualitativa utilizando procedimentos baseados em
Grounded Theory a fim de criar conceitos a partir do estabelecimento de relações entre
benefícios, métricas e técnicas; (iv) Elaboração de um catálogo com benefícios, métricas
e técnicas; e (iv) Avaliação do catálogo por um ou mais profissionais de Engenharia de
Software com experiência em implementação de MPS.
Figura 1: Metodologia de pesquisa (Fonte: o autor)
1- Mapeamento sistemático da Literatura: O objetivo do mapeamento é identificar
estudos primários (relatos de experiência e estudos de caso) que contenham benefícios,
técnicas e medidas relacionados a MPS. Além destes estudos, o mapeamento visa
identificar outros estudos que contenham métricas aplicáveis ao contexto de medição dos
benefícios tangíveis e técnicas para quantificar benefícios intangíveis.
Esta pesquisa será realizada com base em uma questão principal assim definida:
QP: Quais são os elementos utilizados para analisar benefícios gerados por
implementação de processos de software? E nas seguintes questões secundárias: QS1:
Quais benefícios, tangíveis e intangíveis, são esperados por organizações envolvidas em
iniciativas de melhoria de processos? QS2: Quais benefícios, tangíveis e intangíveis, são
36
XIII Workshop de Teses e Dissertações em Qualidade de Software
relatados por organizações envolvidas em iniciativas de melhoria de processos? QS3:
Quais técnicas são utilizadas para mensurar benefícios intangíveis de melhoria de
processos? QS4: Quais métricas são utilizadas para mensurar benefícios tangíveis de
melhoria de processos?
Há outros aspectos relacionados aos benefícios que não foram incluídos
diretamente nas perguntas, como a perspectiva sob a qual os benefícios são apresentados
(exemplo: de avaliadores, patrocinadores) e em que contexto os benefícios são
identificados (exemplo: porte da empresa). Como estes aspectos são específicos, os
mesmos serão coletados e avaliados indiretamente a fim de enriquecer a análise dos
estudos identificados no primeiro mapeamento.
2- Entrevistas com empresas avaliadas: O objetivo principal desta etapa é ampliação das
evidências coletadas nos estudos primários a partir de entrevistas com profissionais que
participaram da implantação de melhorias de processos. O segundo objetivo desta etapa é
obter refinamento das concepções geradas na primeira etapa.
3- Análise qualitativa: Nesta etapa, são analisadas e definidas as relações entre benefícios
de melhoria de processos, métricas e técnicas para medição. Para análise, serão aplicados
procedimentos de codificação baseados em Grounded Theory.
4- Obtenção do produto: Elaboração de um catálogo com benefícios de MPS, métricas
para medir benefícios quantitativos e técnicas para medir benefícios qualitativos.
5- Avaliação do produto: O objetivo desta etapa é que profissionais de Engenharia de
Software avaliem se as relações entre benefício-medidas-técnicas presentes no catálogo
atendem à seguinte Suposição 1: O catálogo com benefícios de MPS, estratégias para
medição de benefícios intangíveis e medidas base para identificar benefícios tangíveis
pode auxiliar organizações a planejarem melhor as iniciativas de melhoria de processos.
A pesquisa até o momento compreendeu o aprofundamento sobre os fatores
relacionados a benefícios de melhoria de processos de software a partir de artigos sobre
os temas: (i) Fatores críticos de sucesso em MPS; (ii) Motivação para adoção de MPS; e
(iii) Benefícios de implementação e ROI de MPS. O modelo conceitual da Figura 1
apresenta um dos resultados desta análise inicial. No momento está sendo realizada uma
rodada piloto que envolve a identificação de artigos que relatem benefícios de melhoria
de processos, métricas para mensurar benefícios quantitativos e técnicas para mensurar
benefícios qualitativos. Esta rodada piloto serve para avaliar primeira etapa da
metodologia definida acima e ajustar possíveis desvios.
5. Conclusão
A proposta deste estudo é identificar os benefícios de implementação de melhoria de
processos de software através de estudos presentes na literatura e estabelecer um corpo de
conhecimento composto de métricas para quantificar benefícios tangíveis e técnicas para
obtenção do valor estimado de benefícios qualitativos aplicáveis ao contexto de MPS.
Compreende ainda a realização de entrevistas em empresas que implementaram melhoria
de processos para coleta de benefícios e entender como são realizadas estas medições na
prática, e uma análise baseada em procedimentos de Grounded Theory. Por fim, um
estudo de caso para avaliar medidas e técnicas catalogadas.
Espera-se que o catálogo resultante deste estudo auxilie consultorias e empresas
na motivação de profissionais em apoiar as implementações de melhoria de processos,
aumentando a expectativa de sucesso nas avaliações de melhoria de processos e que motive a alta gestão de organizações de software a investirem na melhoria de seus processos.
37
XIII Workshop de Teses e Dissertações em Qualidade de Software
Referências
Albuquerque, R. (2014), Estudo sobre Fatores que Influenciam a Manutenção de Processos de Software em Empresas
Avaliadas por Modelos de Referência, Programa de Pós-Graduação em Informática da Pontifícia Universidade
Católica do Paraná, Curitiba, PR.
Baddoo, N. e Hall, T. (2002), Motivators of Software Process Improvement: An analysis of Pracrioners Views - Journal
of Systems and software 62 - Pgs 83-96.
Etzkowitz, H., Mello, J. (2004), “The rise of a triple helix culture: innovation in Brazilian economic and social
development”. International Journal of Technology Management & Sustainable Development 2 (1): 159-171.
Ferreira, A. I. F., Santos, G., Cerqueira, R., Montonni, M., Barreto, A. - 2007 - Applying ISO 9001:200, MPS.BR and
CMMI to achieve Software Process Maturity: BL Informatica's Pathway - 29th International Conference on
Software Engineering (ICSE’07), , Minneapolis, USA, May 20-26.
Kalinowski, M., Santos, G., Reinehr, S., Montoni, M., Rocha, A.R., Weber, K.C., Travassos, G.H. (2010): MPS.BR:
Promovendo a Adoção de Boas Práticas de Engenharia de Software pela Indústria Brasileira. XIII Congresso
Iberoamericano de Engenharia de Software (CIBSE), Cuenca, Equador.
Krasner, H. (1994), The Payoff for SPI: what it is and how to get it. Software Process Newsletter, In: IEEE Computer
Society 1.
Montonni, M. A, Rocha, A. R. C. (2010), Uma investigação sobre os Fatores Críticos de Sucesso em Iniciativas de
Melhoria de Processos de Software, UFRJ/COPPE.
Niazi, M. e Ali Babar, M. (2006), Motivators of Software Process Improvement: An Analysis of Vietnamese
Practioner’s Views, 11th International Conference on Evaluation and Assessment in Software Engineering (EASE),
Keele University, UK.
Ramos, C. S., Rocha A. R. e Oliveira, K. M. (2013) - Towards a strategy for analysing benefits of Software Process
Improvement, The 25th International Conference on Software Engineering and Knowledge Engineering, Boston,
USA.
Santos, G., Kalinowski, M., Rocha, A. R., Travassos, G. H., Weber, K. C. e Antonioni, J. A. (2012) MPS.BR Program
and MPS Model: Main Results, Benefits and Beneficiaries of Software Process Improvement in Brazil - 2012
Eighth International Conference on the Quality of Information and Communications Technology, Lisboa, Portugal.
CMMI Product Team (2010), CMMI for Development (CMMI-DEV) Version 1.3. Software Engineering Institute.
Technical Report CMU/SEI-2010-TR-033. Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon
University.
SOFTEX – Associação para Promoção da Excelência do Software Brasileiro (2012), “Melhoria do Processo de
Software Brasileiro – Guia Geral MPS de Software”.
SOFTEX (2013) - IMPS - Informações para Acompanhar e Evidenciar Variação de Desempenho nas Empresas que
Adotaram o Modelo MPS, 2013, Disponível em www.softex.com.br.
SOFTEX – Associação para Promoção da Excelência do Software Brasileiro (2015) - Avaliações MPS-SW (Software)
Publicadas (prazo de validade: 3 anos) - (Visualizado em 03-05-2015) http://www.softex.br/wpcontent/uploads/2013/07/2Avaliacoes-MPSSW-Publicadas_24.F EV_.2015_622.pdf
Solingen, R., V. (2004) Measuring the ROI of Software Process Improvement - IEEE Computer Society, May-June,
2004
Staples M., Niazy, M., Jeffery, R., Abrahams, A., Byatt, P., Murphy, R. (2007), An exploratory study of why
organisations do not adopt CMMI - The journal of system and software 80 (2007) - 883-895
Staples, M., Niazi, M. (2008) Systematic review of organizational motivations or adopting CMM-Based SPI Information and Software Technology 50, 2008, Pgs 605 - 620
Viana, D., Rabelo, J., Conte, T. (2011), Uma análise do aspecto motivacional na implementação de um Programa de
Melhoria de Processo de Software -VII Workshop Um Olhar Sociotécnico sobre a Engenharia de Software WOSES 2011, Curitiba, Paraná.
Zhran, S. - 1996 - Business e cost justification of software process improvement "ROI from SPI", International
Software Process Association Conference (ICSP '96), Washington, DC, USA.
38
XIII Workshop de Teses e Dissertações em Qualidade de Software
Uma Abordagem para o Ensino de Engenharia de
Software Baseada em Estratégias de Capacitação de
Programas de Melhoria do Processo de Software
Carlos S. Portela1,3, Alexandre M. L. Vasconcelos1, Sandro R. B. Oliveira1,2
1
2
3
Centro de Informática (CIn) – Universidade Federal de Pernambuco (UFPE)
Caixa Postal 7851 – 50.740-560 – Recife – PE – Brasil
Programa de Pós-graduação em Ciência da Computação (PPGCC) – Instituto de
Ciências Exatas e Naturais (ICEN) – Universidade Federal do Pará (UFPA)
Belém – PA – Brasil
Área de Ciências Exatas e Tecnologia – Centro Universitário do Pará (CESUPA)
Belém – PA – Brasil
{csp3, amlv}@cin.ufpe.br, [email protected]
Abstract. Much of time and financial resources consumed in a Software
Process Improvement (SPI) Program is invested in team training. That is why
many professionals, mostly trained in undergraduate courses, do not have the
adequate knowledge in specific process areas. Thus, courses, workshops,
mentoring or coaching are conducted for technical transfer of specific
practices included on the process areas in order to level the team knowledge.
The origin of this problem may be in the approach adopted for teaching
Software Engineering in undergraduate courses. To solve this problem, this
PhD research aims to analyze the recommendations of curriculum guidelines
of ACM/IEEE and Brazilian Society of Computing (SBC) for Software
Engineering discipline and its applicability in undergraduate. Furthermore,
we propose a teaching approach that aims to address the topics of these
curriculum guidelines through training strategies widely adopted in SPI
programs.
Resumo. Grande parte do tempo e dos recursos financeiros consumidos em
um Programa de Melhoria do Processo de Software (MPS) é investido na
capacitação da equipe. Isso ocorre porque muitos profissionais, em sua
maioria formados em cursos de computação, não possuem conhecimento
adequado em determinadas áreas de processo. Desta forma, realizam-se
cursos, workshops, mentoring ou coaching para repasse técnico das práticas
específicas que compreendem as áreas de processo a fim de nivelar o
conhecimento desta equipe. A raiz do problema pode estar na abordagem
adotada para o ensino da Engenharia de Software em cursos de computação.
A fim de tratar este problema, esta pesquisa de doutorado objetiva analisar as
recomendações dos currículos de referências da ACM/IEEE e SBC para a
disciplina de Engenharia de Software e sua aplicabilidade na graduação.
Além disso, propõe-se uma abordagem de ensino que visa atender os tópicos
destes currículos de referências através de estratégias de capacitação
amplamente adotadas em Programas de MPS.
39
XIII Workshop de Teses e Dissertações em Qualidade de Software
1. Caracterização do Problema
A Engenharia de Software (ES) constitui-se como uma das disciplinas de maior
relevância nos cursos da área de Computação [ACM/IEEE, 2013]. Isto decorre tanto da
importância do software em si quanto dos desafios relacionados com a formação
completa de um profissional que irá atuar no mercado, resultando em uma demanda
crescente por profissionais bem qualificados [Duley et al., 2003]. Tipicamente, estes
profissionais de software são formados em cursos de graduação como modo de
preparação para atuar na indústria [Nunes, Reis e Reis, 2010].
No entanto, a indústria de software, mais especificamente o mercado brasileiro,
apresenta escassez de profissionais devidamente qualificados para atuarem em
profissões que envolvem as etapas do processo de desenvolvimento de software,
compreendidas pela ES [ABES, 2014]. A indústria queixa-se de que os cursos de
graduação não ensinam as competências necessárias aos alunos para que eles possam
começar a executar o seu trabalho com eficiência [Wangenheim e Silva, 2009]. Desta
forma, as empresas de software têm que complementar os conhecimentos dos recémformados com treinamentos e prover habilidades relacionadas ao processo de
desenvolvimento de software [Bessa, Cunha e Furtado, 2012].
De acordo com Lethbridge et al. (2007), esta carência na formação de
profissionais graduados na área de ES pode ser resultado de uma educação inadequada.
Desta forma, esta pesquisa de doutorado analisará as recomendações constantes nos
currículos de referências dos cursos de computação, mais especificamente no que diz
respeito à área de Engenharia de Software. Esta análise objetiva obter dados qualitativos
do ensino/aprendizagem de ES a partir dos tópicos lecionados e das abordagens de
ensino aplicadas nesta disciplina. Os resultados desta análise serão utilizados na
definição de uma nova abordagem de ensino que visa desenvolver competências e
habilidades profissionais na área de ES. Esta abordagem baseia-se na adequação, para o
contexto acadêmico, de estratégias de capacitação amplamente adotadas em programas
de Melhoria do Processo de Software (MPS).
Além desta seção introdutória, a Seção 2 apresenta a fundamentação teórica
deste trabalho. A metodologia da pesquisa é descrita na Seção 3, que também apresenta
o estado atual deste trabalho. Na Seção 4, os trabalhos relacionados são analisados. Por
fim, os resultados esperados e a avaliação deste trabalho são descritos na Seção 5.
2. Fundamentação Teórica
De acordo com a ACM/IEEE (2013), a ES é uma disciplina preocupada com a aplicação
da teoria, do conhecimento e da prática para o desenvolvimento efetivo e eficiente de
sistemas de software que satisfaçam os requisitos dos usuários. Para satisfazer as
necessidades dos usuários, os profissionais de ES devem ter a capacidade de entender o
desenvolvimento de software como um processo e assegurar prazos, custos e a
qualidade do produto a ser desenvolvido.
A ES constitui uma área cuja demanda está crescendo significativamente, pois os
usuários exigem cada vez mais eficiência, eficácia, dentre outras características de
qualidade importantes para um produto tão especial como o software [ABES, 2014]. A
fim de garantir produtos de alta qualidade e um competitivo grau de produtividade,
40
XIII Workshop de Teses e Dissertações em Qualidade de Software
diversas empresas de software no Brasil têm adotado modelos de qualidade como o
CMMI-DEV [SEI, 2010] e o MR-MPS-SW [SOFTEX, 2012].
A maioria destas empresas realiza esta adoção através de programas de MPS,
implantados por empresas de consultoria. Durante estas consultorias, observou-se que se
gasta grande parte do tempo e recursos financeiros em treinamento da equipe. Isso
ocorre porque muitos profissionais envolvidos em programas de MPS não possuem
conhecimento adequado em determinados tópicos de ES [Leal et al., 2012]. Sendo
assim, os consultores de MPS adotam diversas estratégias de capacitação como cursos,
workshops, mentoring e/ou coaching para repasse técnico das práticas específicas que
compreendem áreas de processo (como por exemplo, Gerência de Configuração), a fim
de desenvolver as competências e as habilidades necessárias para a equipe.
O termo competência define a combinação de conhecimento, habilidades e
atributos pessoais que são adquiridos por meio de educação, treinamento e experiência
[SOFTEX, 2014]. Já o termo habilidade corresponde a capacidade do indivíduo de
realizar algo, como trabalhar em grupo, saber comunicar-se e expressar-se [SBC, 2005].
3. Metodologia e Estado Atual do Trabalho
O principal objetivo desta pesquisa de doutorado é propor uma abordagem para apoiar o
ensino/aprendizagem de tópicos de ES em disciplinas da graduação baseada na
adequação de práticas de capacitação de programas de MPS. Esta seção apresenta as
hipóteses, as questões de pesquisa, os métodos adotados e o estado atual deste trabalho.
3.1. Hipóteses e Questões de Pesquisa
A partir da problemática exposta na Seção 1 e baseada na fundamentação teórica
apresentada na Seção 2, é possível realizar algumas observações:
I.
A maioria dos profissionais da área de software são formados em cursos de
graduação em computação [Nunes, Reis e Reis, 2010];
II.
A indústria apresenta insatisfação quanto ao nível de preparação dos
universitários recém-formados que entram no mercado de trabalho [Lethbridge
et al., 2007];
III.
Bacharéis de cursos de computação que trabalham como profissionais da área de
software aprendem mais sobre tópicos de ES após a graduação [Wangenheim e
Silva, 2009];
IV.
Existem diversas dificuldades no ensino de ES durante a graduação: (i) muito
conteúdo sendo ministrado em pouco tempo; (ii) baixa motivação que os alunos
possuem para estudar os conceitos teóricos de ES; (iii) dificuldades em preparar
os estudantes para a prática profissional dentro de ambientes acadêmicos [Braga,
2009].
Diante destas observações, esta pesquisa de doutorado tentará analisar a seguinte
Hipótese (H0):
H0. As abordagens de ensino atuais adotadas nas disciplinas de Engenharia de Software
preparam os alunos adequadamente para atuar na indústria de software.
41
XIII Workshop de Teses e Dissertações em Qualidade de Software
Caso H0 seja refutada, pretende-se investigar uma hipótese alternativa definida a
partir da constatação de que as necessidades de formação profissional de cursos de
graduação e da indústria de software são semelhantes, bem como as dificuldades
encontradas nesse processo de formação (excesso de conteúdo, pouco tempo, etc.).
Sendo assim, esta tese tentará analisar a seguinte Hipótese Alternativa (H1):
H1. Se a disciplina de Engenharia de Software adotar abordagens de capacitação de
Programas de Melhoria do Processo então a preparação dos alunos na área de
Engenharia de Software será mais adequada do que as abordagens de ensino atuais.
A fim de atender os objetivos desta pesquisa de doutorado e analisar as hipóteses
H0 e H1, as seguintes Questões de Pesquisa (QP) foram definidas:
QP1. Quais tópicos são abordados nas ementas da disciplina de Engenharia de Software?
QP2. A aprendizagem dos alunos na disciplina de Engenharia de Software está
relacionada com a quantidade de tópicos abordados?
QP3. Os alunos aprendem de maneira mais adequada se contextualizarmos a aplicação
dos tópicos de Engenharia de Software com os papéis que irão desempenhar em um
processo de desenvolvimento?
3.2. Métodos de Pesquisa
A. Identificando os tópicos de ES contempladas nos cursos de graduação
Para responder a QP1, realizou-se uma revisão bibliográfica nos currículos de referência
da ACM/IEEE (2013) e da Sociedade Brasileira da Computação (SBC) (2005)
objetivando identificar quais tópicos de ES são recomendados por estes currículos.
Além disto, realizou-se um mapeamento entre estes tópicos dos currículos de referência
e as práticas específicas das áreas de processo dos modelos CMMI-DEV [SEI, 2010] e
MR-MPS-SW [SOFTEX, 2012] a fim de correlacionar estratégias de capacitação.
Atualmente, está sendo realizado um survey (S-I) com professores que
ministram disciplinas de ES a fim de identificar quais tópicos e abordagens de ensino
estão sendo adotados. Os resultados deste survey podem apoiar a análise da hipótese H0,
caso seja constatado que determinados tópicos de ES não estão sendo abordados por
estes professores.
B. Analisando a efetividade das abordagens de ensino atuais
A fim de responder a QP2, está sendo realizado um survey (S-II) com alunos que já
tenham concluído a disciplina de ES. O objetivo deste survey é analisar a aprendizagem
dos alunos e quais abordagens de ensino estes consideram mais efetivas. Os resultados
do S-II podem apoiar a análise de H0, dando-nos evidências de que determinados
tópicos de ES estão sendo efetivamente aprendidos. Além disto, poder-se-á
correlacionar as respostas do S-I com as respostas do S-II a fim de analisar se as
abordagens adotadas pelos professores são consideradas efetivas pelos alunos.
Tanto o S-I quanto o S-II estão sendo aplicados em cursos de graduação em
computação de universidades públicas e privadas do Brasil e seguem os guidelines de
Kitchenham e Pfleeger (2008). Estes surveys estão sendo divulgados em lista de e-mails,
42
XIII Workshop de Teses e Dissertações em Qualidade de Software
grupos da área de ES em redes sociais e in loco em universidades públicas e privadas de
Belém-PA e de Recife-PE. O survey encontra-se disponível em http://goo.gl/vn5jHS. Já
o protocolo do survey encontra-se disponível em http://goo.gl/gqzMrP.
C. Definindo uma abordagem de ensino baseada em estratégias de capacitação
Após a realização dos estudos exploratórios, que visam responder QP1 e QP2, serão
identificados os tópicos de ES constantes nos currículos de referência, as abordagens de
ensino atuais adotadas pelos professores desta disciplina e as considerações dos alunos
em relação ao aprendizado destes tópicos e a efetividades destas abordagens. Estes
resultados serão considerados na definição da proposta de ensino apresentada nesta
pesquisa. Por exemplo, técnicas consideradas efetivas serão incorporadas na abordagem,
como a realização de projetos de desenvolvimento durante a disciplina de ES.
Além disso, pretende-se realizar um levantamento com especialistas da área
(consultores de MPS e implementadores de modelos de qualidade que também atuem
como professores de graduação) sobre as práticas de capacitação adotadas em programas
de MPS. A partir da identificação e da análise destas práticas, serão discutidas as
estratégias de adequação destas para o ensino de ES. Pretende-se, ainda, adotar a
estratégia do modelo estagiado do CMMI-DEV, onde se definem quais áreas de
processo serão foco da melhoria. Assim, alunos e professores poderão delimitar o
escopo de seus esforços, reduzindo a quantidade de tópicos de ES ministrados para
trabalhar o desenvolvimento de competências e habilidades em ES. Espera-se, a partir
da análise dos resultados da aplicação desta abordagem de ensino, responder a QP3 e
analisar a H1.
Um esboço desta abordagem foi discutido entre os autores com base em sua
experiência profissional, como professores de ES e consultores em MPS, e na proposta
pedagógica de ensino prático de ES definida por Gary et al. (2013). Este esboço é
apresentado na Figura 1.
Figura 1. Esboço da Abordagem de Ensino
Inicialmente, na fase de Preparação, os alunos deverão realizar leitura e pesquisa
dos tópicos de ES. Na fase de Discussão, serão realizados seminários e debates
relacionados a estes tópicos. Em seguida, na fase de Prática, os alunos aplicarão os
conceitos estudados através de workshops de uso de ferramentas e da realização de
dinâmicas. Na fase de Reflexão, os alunos registrarão suas expectativas e levantarão
43
XIII Workshop de Teses e Dissertações em Qualidade de Software
hipóteses em relação aos tópicos de ES que irão aplicar no projeto prático. A fase de
Contextualização consistirá na tradicional abordagem de desenvolvimento de software
por um grupo de alunos, a fim de aplicar os tópicos de ES. Nesta fase, os alunos
levantarão requisitos de um cliente real e serão aplicadas as técnicas de mentoring (pelo
professor da disciplina) e coaching (por alunos veteranos). Por fim, os alunos realizarão
uma nova fase de Reflexão, pós-projeto, a fim de comparar os resultados obtidos com
suas expectativas no pré-projeto e se suas hipóteses foram validadas ou refutadas.
3.3. Estado Atual
A Tabela 1 apresenta as fases desta pesquisa de doutorado e seu estado atual.
Tabela 1. Status do Projeto de Pesquisa
Fase da Pesquisa
Definição da Proposta de Tese de Doutorado
Análise dos Currículos de Referência
Definição do Protocolo dos Surveys
Aplicação dos Surveys
Levantamento das Práticas de Capacitação
Definição da Proposta de Ensino
Defesa de Qualificação de Tese
Realização do Experimento Controlado
Testes das Hipóteses da Tese de Doutorado
Escrita da Tese de Doutorado
Defesa da Tese de Doutorado
Prazo
Set/2014
Nov/2014
Fev/2015
Mai/2015
Jun/2015
Jul/2015
Nov/2015
Dez/2015
Jun/2016
Dez/2016
Mar/2017
Status
Concluída
Concluída
Concluída
Concluída
Em Andamento
Em Andamento
Não Iniciada
Não Iniciada
Não Iniciada
Não Iniciada
Não Iniciada
4. Trabalhos Relacionados
Existem vários estudos que propõem abordagens de ensino de ES, como as de Braga
(2009), Bessa, Cunha e Furtado (2012) e Gary et al. (2013). No entanto, essas
abordagens não testam adequadamente a H0, pois restringem a avaliação dos resultados
da aplicação de suas abordagens de ensino ao conteúdo ministrado ou ao processo e ao
produto resultante da realização de uma disciplina prática de ES. Sendo assim, não se
pode concluir se preparam adequadamente os alunos para atuarem na área de ES.
Por exemplo, Bessa, Cunha e Furtado (2012) propõem um jogo de simulação de
ambientes reais para auxiliar o aprendizado de ES. Apesar dos jogos capacitarem alunos
de forma efetiva, acabam por restringirem o atendimento de determinados tópicos
curriculares à medida que não conseguem explorar adequadamente a quantidade de
tópicos de ES, pois se tornariam demasiadamente complexos, perdendo sua principal
característica de ensino/aprendizado. Já Braga (2009), propõe uma abordagem
multidisciplinar que define diretrizes para aplicação dos conceitos de ES em várias
disciplinas dos cursos de Ciência da Computação. No entanto, esta abordagem restringese à aplicação de tópicos curriculares, sem se preocupar com o desenvolvimento das
competências e das habilidades profissionais necessárias para realizar as atividades de
projetos de software de forma eficiente.
Ao contrário destes trabalhos, esta abordagem irá aplicar os tópicos de ES de
acordo com os papéis (gerente de projetos, desenvolvedor, analista de qualidade, etc.)
que os alunos irão desenvolver no projeto prático da disciplina de ES, semelhante à
estratégia de treinamentos adotada por consultores de MPS. Assim, poder-se-á focar na
44
XIII Workshop de Teses e Dissertações em Qualidade de Software
capacitação profissional dos alunos, ao invés de focar somente na avaliação do processo
e/ou produto gerado por estes durante a disciplina de ES.
Em relação a H1, Gary et al. (2013) propõem um modelo pedagógico para o
ensino de ES em cursos de graduação em computação. Essa proposta, maturada ao
decorrer de 9 anos de aplicação na Arizona State University, combina aula tradicional
com abordagens de aprendizagem centrada em problemas (Problem Based Learning –
PBL). Assim, os alunos assistem as palestras e colocam os conceitos em prática por
meio de sessões de laboratório de desenvolvimento a cada semana. Nesta abordagem, o
professor realiza o papel de coaching e alunos veteranos o papel de mentoring.
A abordagem proposta nesta tese baseia-se fortemente neste modelo pedagógico,
agregando o uso de práticas e estratégias de programas de MPS a fim de analisar H1.
Por exemplo, a estratégia de definir as áreas de processo que serão o foco da melhoria
pode ser adequada para o contexto acadêmico, a partir da definição de unidades de
conhecimento que serão foco da ementa da disciplina de ES. Isto permitiria desenvolver
melhor determinadas competências e habilidades profissionais nestas unidades.
5. Resultados Esperados e Validação
Em resumo, esta pesquisa de doutorado é destinada a: (i) identificar tópicos de ES em
currículos de referência da área e analisar suas relevâncias para a academia e indústria
de software; (ii) identificar, por meio de surveys com professores e alunos, as atuais
abordagens de ensino adotadas por professores e eventuais problemas nestas; e (iii)
fornecer uma abordagem de ensino para atender, de maneira satisfatória, a demanda de
formação profissional para a área de ES durante a graduação.
A fim de validar nossa proposta de abordagem de ensino, pretende-se realizar
um experimento controlado em uma disciplina de ES num curso de graduação em
Sistemas de Informação. Este experimento seguirá os guidelines propostos por Wohlin
et al. (2000), onde será configurado um cenário para aplicação da proposta de ensino.
Primeiramente, será identificado o problema de um cliente real, a fim de definir os
requisitos do projeto da disciplina. Em seguida, o professor irá dividir a turma em dois
grupos (experimental e de controle). O grupo de controle seguirá a abordagem de ensino
atual da disciplina, definindo um processo tradicional de desenvolvimento de software
(baseado no RUP, SCRUM, etc.). Já o grupo experimental, adotará a abordagem de
ensino proposta neste artigo, recebendo um treinamento específico. Assim, este grupo
poderá seguir uma nova abordagem de ensino/aprendizado. O objetivo é comparar o
aprendizado dos alunos dos dois grupos, através da análise de mapas conceituais
(usando os tópicos de ES) elaborados por estes no início e ao final da disciplina.
Finalmente, pretende-se publicar os resultados para estimular replicações deste
tipo de pesquisa e, consequentemente, solucionar determinados gaps desta área de
ensino de ES. Neste contexto, ressalta-se que o ensino adequado de ES é importante
para melhorar o estado atual de desenvolvimento de software e ajudar a mitigar muitos
dos problemas tradicionais associados à indústria de software.
Agradecimentos
Os autores gostariam de agradecer à Coordenação de Aperfeiçoamento de Pessoal de
Nível Superior (CAPES) pelo apoio financeiro ao desenvolvimento desta pesquisa.
45
XIII Workshop de Teses e Dissertações em Qualidade de Software
Referências
ABES (2014), Mercado Brasileiro de Software: Panorama e Tendências, Associação
Brasileira das Empresas de Software, 1ª edição. São Paulo, Brasil.
ACM/IEEE (2013) “Computer science curricula 2013 – Curriculum guidelines for
undergraduate degree programs in Computer Science”, https://www.acm.org, Abril.
Bessa, B. Cunha, M. e Furtado, F. (2012). ENGSOFT: Ferramenta para Simulação de
Ambientes Reais para auxiliar o Aprendizado Baseado em Problemas (PBL) no
Ensino de Engenharia de Software. Em Anais do XX Workshop sobre Educação em
Informática. Curitiba, Brasil.
Braga, J. (2009). Diretrizes para o Ensino Interdisciplinar de Engenharia de Software.
Em Anais do II Fórum em Educação em Engenharia de Software. Fortaleza, Brasil.
Duley, R. et al. (2003). Engineering an introductory software engineering curriculum. In
Proceedings of 16th Conference on Software Engineering Education and Training,
pages 99-106.
Gary, K. et al. (2013). A Project Spine for Software Engineering Curricular Design. In
Proceedings of 26th Conference on Software Engineering Education and Training,
pages 299-303.
Kitchenham, B. e Pfleeger, S. (2008) “Personal Opinion Surveys”, In: Guide to
Advanced Empirical Software Engineering, Springer, ch. 3, pages 63-92.
Leal, G. et al. (2012). Empirical study about the evaluation of the implantation of
MPS.Br in enterprises of Paraná. In Proceedings of XXXVIII Conferencia
Latinoamericana en Informatica, pages 1-9.
Lethbridge, T. et al. (2007). Improving software practice through education: Challenges
and future trends. In Proceedings of the Conference Future of Software Engineering,
pages 12-28.
Nunes, D. Reis, C. e Reis, R. (2010) “Educação em Engenharia de Software”, Em: A
carreira do pesquisador em Engenharia de Software: princípios, conceitos e direções.
1ª edição. Salvador, Brasil: UFBA, cap. 5, páginas 132-181.
SBC (2005). Currículo de Referência da SBC para Cursos de Graduação em
Bacharelado em Ciência da Computação e Engenharia de Computação,
http://www.sbc.org.br, Abril.
SEI – Software Engineering Institute (2010) “CMMI for Development – V 1.3”,
http://www.sei.cmu.edu, Abril.
SOFTEX – Associação para Promoção da Excelência do Software Brasileiro (2012)
“Guia Geral MPS de Software: 2012”, http://www.softex.br, Abril.
Wangenheim, C. e Silva, D. (2009). Qual Conhecimento de Engenharia de Software é
Importante para um Profissional de Software? Em Anais do II Fórum de Educação
em Engenharia de Software. Fortaleza, Brasil.
Wohlin, C. et al. (2000) “Experimentation in software engineering: an introduction”.
Kluwer Academic Publishers, Norwell, MA, USA.
46
XIII Workshop de Teses e Dissertações em Qualidade de Software
Alavancando a melhoria de processos e o desenvolvimento
de software a partir de fatores de impacto na
produtividade
Ricardo Ajax Dias Kosloski1,2, Ana Regina C. da Rocha1
1
2
COPPE/UFRJ - Universidade Federal do Rio de Janeiro – Caixa Postal 68511 –
CEP 21945-970 – Rio de Janeiro – RJ – Brasil
Universidade de Brasília (UNB) – Faculdade Gama - Área Especial de Indústria
Projeção A Brasília/DF – Bairro: Gama – Setor Leste – CEP: 72.444-240
[email protected], [email protected]
Abstract. For the software industry to improve productivity, deadlines,
costs and quality of their projects contributes to increase its
competitiveness in a market highly susceptible to changes. The
productivity can be influenced by several factors related to the software
development, and can be considered as an important way to assess,
monitor and improve the performance of this industry in the search for
better competitive conditions. Therefore, this paper presents a proposal
to promote the improvement of processes in the software development
from the treatment of impact factors in productivity along the software
process improvement initiatives of the organization.
Resumo: Para a indústria de software, melhorar a produtividade,
prazos, custos e qualidade dos seus projetos contribui para aumentar a
sua competitividade ao atuar num mercado altamente susceptível a
mudanças. A produtividade pode ser influenciada por vários fatores
inerentes ao desenvolvimento de software, podendo ser considerada
como um importante mecanismo para avaliar, controlar e melhorar o
desempenho desta indústria na busca por melhores condições
competitivas. Desta forma este trabalho apresenta uma proposta para
fomentar a melhoria de processos no desenvolvimento de software a
partir do tratamento de fatores de impacto na produtividade ao longo
das iniciativas de melhoria dos processos da organização.
1
Introdução
A indústria de software tem enfrentado um cenário de mudanças forçando-as a
melhorar continuamente seus processos produtivos. As melhorias incluem
objetivos organizacionais almejando maiores níveis de produtividade e
previsibilidade, diminuição dos custos de projetos e, consequentemente, melhoria
da sua capacidade competitiva no mercado onde atua (Albuquerque e Rocha,
2009). Autores relatam a importância dos relacionamentos entre as variáveis
produtividade, esforço, tamanho, custos, prazos e qualidade como fontes de
estudos desde a década de 90 (Rubin, 1993; Fenton, Pfleeger, 1997; Putnam,
Mayers 2003; Wagner, Ruhe, 2008; Sampaio et al, 2010; Petersen, 2011).
Embora demonstrado por Wagner e Ruhe (2008) que a Melhoria de
Processos de Software (MPS) é um fator que causa um relevante impacto na
47
XIII Workshop de Teses e Dissertações em Qualidade de Software
produtividade em software, ele não é o único. Outros autores relatam estudos
sobre fatores de impacto na produtividade desde a década de 70 até 2009
(Sampaio et al, 2010). Por outro lado, Petersen (2011) inclui outras abordagens de
estudos sobre produtividade em software, além dos fatores de impacto.
Atualmente a abordagem de melhoria de processos continua importante
para a indústria de software com o advento de modelos de maturidade como o
CMMI-DEV-V1.3 (SEI, 2010), o MPS-SW (Softex, 2012). Birkhölzer et al
(2011) defendem que as iniciativas de MPS precisam de guias para selecionar e
priorizar as áreas ou aspectos a serem focados na melhoria, o que é feito nesses
modelos por meio da organização em níveis de maturidade (Chrissis et al 2011;
Softex, 2012).
Os modelos de maturidade tratam um amplo espectro de elementos de
melhoria, variando desde fatores relacionados a questões técnicas, perpassando os
gerenciais e incluindo os de suporte às atividades de desenvolvimento de software
(Chrissis et al, 2011; Softex, 2012). Desta forma, neste contexto e segundo a
premissa de que é possível associar os fatores de impacto na produtividade às
áreas de processos de modelos de maturidade em desenvolvimento de software,
surgiu como questão central motivadora desta pesquisa: “Como aumentar a
produtividade de desenvolvimento de software a partir da melhoria de processos
e dos fatores que impactam a produtividade?”
Para o restante deste documento, a Seção 2 apresenta uma breve revisão de
literatura; a Seção 3 as definições básicas e etapas propostas para o trabalho e a
Seção 4 os resultados esperados e considerações finais.
2
Qualidade e Produtividade
O conceito de produtividade foi herdado da manufatura objetivando avaliar seu
desempenho (Putnam, Mayers, 2003, Fenton e Pfleeger, 1997). Outros autores
confirmam a sua definição clássica de relacionar a quantidade do produto gerado
aos insumos consumidos para produzi-lo (Maxwell 2001; Buglione, 2010;
Petersen, 2011; Lopéz et al, 2012, Cheikhi et al, 2012). Para eles, na indústria de
software, a saída é considerada como o tamanho do software e a entrada como o
esforço gasto para desenvolvê-lo. Desta forma a equação Produtividade =
Tamanho / Esforço pode ser postulada.
Morasca e Russo (2002) ressaltam que o tamanho do software pode ser
avaliado conforme os pontos de vista: interno, contabilizando as linhas de código
(KLOC); e externo, onde são usadas métricas de tamanho funcional como a APF Análise de Pontos de Função (IFPUG, 2010). Embora existam algumas críticas
sobre as métricas funcionais, elas possuem a vantagem de poderem ser usadas
desde cedo no desenvolvimento do software, devido a se basearem em requisitos
funcionais. Algumas críticas dizem respeito a:
• Existência de outros esforços devidos a treinamentos, reuniões e requisitos não
funcionais que não adicionam tamanho ao produto de software, mas são
necessários para a sua construção (Fenton e Pfleeger, 1997). Esta afirmação é
respaldada pelo IFPUG ao afirmar que existem outras dimensões de tamanho,
além da fornecida pelos requisitos funcionais, mas não mensuradas pela APF
(IFPUG, 2010).
48
XIII Workshop de Teses e Dissertações em Qualidade de Software
• Para Buglione (2010) é incorreto tomar o tamanho do projeto como somente o
tamanho do seu produto de software, pois existem outros resultados adicionais
no projeto que não incorporam tamanho ao produto.
Sobre a qualidade em desenvolvimento de software, Vilas Boas et al
(2010) ressalta que Melhorar a qualidade significa melhorar a qualidade dos
produtos e serviços da organização, o que pode ser obtido por programas de MPS.
Santos et al (2010) afirmam que a estratégia de melhoria no Brasil, tanto do
produto, quanto do processo, existe desde 1993. Segundo esses autores, o uso das
boas práticas sugeridas pelos modelos de maturidade podem melhorar o
desempenho da organização com relação à produtividade, dentre outras variáveis
como custos, prazos e qualidade. Assim, apresentam resultados considerados
como excelentes e coletados durante vários anos com a adoção do modelo MPSSW pela indústria nacional. Os estudos foram realizados no âmbito do iMPS,
iniciado em outubro de 2007 com o objetivo geral de permitir acompanhar e
evidenciar o desempenho nas organizações de software que adotaram o MPS.Br
(iMPS, 2015).
Sampaio et al (2010) construíram o Quadro 1 no qual apresentam os
fatores que causam impactos críticos na produtividade, classificados em ordem
descendente por quantidade de citações na literatura pesquisada na época. Nele
percebe-se que não somente o fator de impacto “processo” foi o mais citado,
como também o número de citações sempre aumenta durante o período estudado.
Quadro 1: Fatores críticos de impacto na produtividade (Sampaio et al, 2010)
Fator
70
1
0
2
1
1
1
1
2
1
0
0
Processo
Ferramentas
Habilidades da equipe (Skils)
Reuso
Linguagem de programação
Complexidade do software
Tamanho do software
Tamanho da equipe
Estabilidade dos requisitos
Motivação
Qualidade da Gerência
Década
80
90
4
5
8
6
6
4
5
7
8
4
6
6
6
6
1
4
5
3
4
1
4
2
2000
15
11
12
8
8
7
6
12
3
5
4
Citações
25
25
24
21
21
20
19
19
12
10
10
Além deles, Petersen (2011) fez um trabalho baseado em Revisão
Sistemática de Literatura sobre produtividade, considerando desde a década de 70
até 2010. Neste estudo é concluído que: a medição de produtividade é essencial
para controlar e melhorar o desempenho da indústria; a capacidade de prever a
produtividade exerce um importante papel na melhoria de processos, permitindo
traçar linhas de base de desempenho para serem reavaliadas após as propostas de
ações de melhorias; as bases históricas de produtividade são importantes para
evidenciar as melhorias de processos da organização, identificar os melhores
desempenhos e aprender com eles.
Assim sendo, estudos apontam para a existência de diversos fatores que
causam impactos na produtividade. Desta forma, estabelecer uma estratégia para
aumentar a produtividade de organizações de desenvolvimento de software pode
49
XIII Workshop de Teses e Dissertações em Qualidade de Software
ser considerada com algo relevante na busca por melhores condições competitivas
no mercado onde elas atuam.
3
Definições da pesquisa
Com base na pergunta central desta pesquisa “Como aumentar a
produtividade de desenvolvimento de software a partir da melhoria de processos
e dos fatores que impactam a produtividade?”, podem ser postuladas as seguintes
questões específicas:
• Como identificar (calcular) a produtividade em organizações de software?;
• Quais são os fatores que causam impactos na produtividade
desenvolvimento de software?
de
Desta forma, pode ser colocado o seguinte objetivo geral deste trabalho: Definir
como aumentar a produtividade de desenvolvimento de software a partir da
melhoria de processos e dos fatores que impactam a produtividade? Neste caso,
os seguintes objetivos específicos foram relacionados:
• Identificar as formas de medição de produtividade praticadas pela indústria de
software e como elas têm sido usadas para avaliar a produtividade;
• Identificar uma lista de fatores que causam impactos na produtividade em
software;
• Mapear os fatores identificados pelas áreas de processos de modelos de
maturidade em desenvolvimento de software como MPS-SW e CMMI-Dev;
• Estabelecer uma estratégia de melhoria de processos baseada no uso dos
fatores de impacto na produtividade identificados;
• Estabelecer formas de avaliar a estratégia estabelecida.
3.1
Etapas da pesquisa
Para apoiar a elaboração deste trabalho, é proposta uma metodologia de pesquisa
composta de etapas ilustradas na Figura 1 e detalhadas a seguir.
Figura 1: Etapas da pesquisa.
(1)–Realizar revisões de literatura: Para aumentar o conhecimento sobre o tema,
inicialmente foi feita uma revisão não sistemática de literatura sobre a
produtividade na indústria de software. Foram encontradas informações sobre
formas de cálculo e suas limitações de aplicabilidade e sobre fatores que
influenciam a produtividade, conforme apresentado na seção 2 deste artigo. Esta
50
XIII Workshop de Teses e Dissertações em Qualidade de Software
revisão também buscou obter um maior conhecimento do assunto para elaborar as
definições de um estudo mais rigoroso na literatura, baseado na teoria de Revisões
Sistemáticas de Literatura - RSL (kitchenham, 2004; kitchenham, 2007),
conforme as questões definidas para a pesquisa.
No momento da elaboração deste artigo, a pesquisa se encontrava nesta fase
com a execução de verificações do protocolo de pesquisa por pesquisadores mais
experientes, além da execução de testes da expressão de busca aplicada à base
digital de publicações da SCOPUS (SCOPUS, 2015). Os resultados dos testes
estão sendo analisados juntamente com pesquisadores mais experientes, a fim de
gerar refinamentos da expressão de busca, conforme forem necessários. O
resultado desta etapa da pesquisa é o conjunto de publicações coletadas da
literatura especializada que dará suporte ao restante deste trabalho.
(2)-Elaborar Definições para avaliar a produtividade da organização: A partir
dos insumos obtidos na fase anterior é necessário definir como será feito o cálculo
e avaliação das produtividades da organização. São necessárias definições tanto
sobre o dimensionamento do tamanho do software, quanto dos esforços que foram
gastos para construí-lo. Para o tamanho existem métricas físicas como KLOC –
Milhares de Linhas de código e métricas funcionais como APF – Análise de
Pontos de Função (IFPUG, 2010) e PFCs – Pontos de Função COSMIC, dentre
outras. Para o esforço, existem atividades também importantes para o projeto de
software além das somente de cunho técnico (ex.: gerenciais, treinamentos,
qualidade, gestão de configuração; medições, etc). Compatibilizar os esforços
usados no cálculo da produtividade é importante para as aplicações a serem
executadas mais tarde na pesquisa, pois em estudos de Benchmarking de
produtividades é necessário se comparar coisas iguais (Maxwell, 2001). Assim, o
resultado desta etapa será o conjunto de definições sobre as métricas a serem
usadas de acordo com os desenvolvimentos de software, além dos tipos de
esforços que devem ser coletados para o cálculo da produtividade da organização.
(3) – Definir a estratégia de Melhoria a ser aplicada nas organizações: Esta
etapa consiste em definir a forma de alavancar a produtividade da organização de
software a partir dos fatores de impacto na produtividade. Mesmo sendo esta uma
etapa ainda a ser executada e, portanto, com possibilidade se sofrer ajustes devido
aos resultados obtidos em etapas anteriores, a ideia geral da estratégia consiste
em: I. após a identificação dos fatores de impacto na produtividade, mapeá-los
pelas áreas de processos do modelo de maturidade usado pela organização (MPSSW ou CMMI-Dev). Nesta parte, pretende-se validar o mapeamento por meio de
revisões em pares com implementadores experientes no modelo de maturidade em
desenvolvimento de software em uso pela organização. II. estabelecer uma forma
de priorizar os fatores de impacto na produtividade a serem tratados pela
organização. III. Avaliar a produtividade antes da implementação das melhorias.
IV. Aplicar as melhorias na organização. V. reavaliar os níveis de produtividade
atingidos após as implementações das melhorias.
Convém ressaltar que também faz parte da definição da estratégia a
elaboração de definições dos estudos de caso a serem executados como: critérios
para a escolha das organizações e projetos de software a serem estudados, das
medições a serem efetuadas, dos métodos e técnicas que serão usados para
analisar os dados obtidos, assim como as possibilidades de consolidação dos
51
XIII Workshop de Teses e Dissertações em Qualidade de Software
resultados para o estabelecimento de conclusões Desta forma estes itens devem
ser considerados na próxima fase e, juntamente com os passos necessários para a
aplicação da estratégia, constituem os resultados esperados desta etapa da
pesquisa.
(4) – Aplicar a estratégia estabelecida:
Consiste basicamente em escolher as organizações e projetos que comporão os
conjunto de estudos de caso, usando as definições da fase anterior. Em seguida,
planejar e executar as atividades identificadas, a fim de prover os dados
necessários para as atividades da próxima fase. Neste caso, a lista de estudos de
casos a serem realizados, seus respectivos planejamentos além dos dados
coletados durante suas execuções são os resultados esperados desta etapa da
pesquisa.
(5) – Relatar resultados e rever estratégia: consiste basicamente em fazer as
análises críticas dos dados coletados, elaborando e consolidando conclusões em
lições aprendidas que possam ser usadas futuramente na organização ou em
organizações com programas de MPS semelhantes. Além disso, podem ser
descobertos insumos que justifiquem ajustes na própria estratégia de MPS para a
organização. Neste caso, o relato com as conclusões, recomendações, lições
aprendidas e ajustes na estratégia de melhoria da organização (caso existam), são
os resultados esperados desta etapa da pesquisa.
(6) – Ajustar estratégia para a organização. Nesta etapa, caso existam ajustes,
eles são considerados para uma aplicação complementar da estratégia na
organização em estudo.
4
Resultados esperados e considerações finais.
Os resultados esperados da pesquisa foram descritos ao longo das fases da
pesquisa apresentadas na seção 3.1. Em grandes linhas, eles consistem a princípio,
em:
• Definições sobre a forma de cálculo da produtividade em desenvolvimento de
software, para os contexto das organizações estudadas;
• A lista de fatores de impacto na produtividade em desenvolvimento de
software;
• Um mapeamento dos fatores de impacto identificados pelas áreas de processo
da organização;
• Uma forma de priorização dos tratamentos dos fatores de impacto na
produtividade a serem usados pela organização para alavancar a sua melhoria
de processos;
• Os resultados práticos da aplicação de fatores de impacto na produtividade com
conclusões, recomendações e lições aprendidas obtidas para uso posterior na
própria organização ou em organizações com programas de MPS semelhantes.
Ao final é esperado ser possível estabelecer como usar os fatores de
impacto na produtividade como insumos para o estabelecimento de estratégias de
melhorias de processos que promovam também o aumento da produtividade em
desenvolvimento de software.
52
XIII Workshop de Teses e Dissertações em Qualidade de Software
5
Referências
Albuquerque, Adriano, B.; Rocha, Ana R. (2009) “Evaluation and Improvement
of Processes Assets: A real Colaborative Experience”, In: Wold Congress of
Software Engineering, IEEE.
Birkholzer, T., Dickmann, C., Vaupel, J., 2011, "A Framework for Systematic
Evaluation of Process Improvement Priorities". In: Software Engineering and
Advanced Applications (SEAA), 2011 37th EUROMICRO Conference.
Buglioni, Luigi (2010) “Some Thoughts on Productivity on ICT Projects” White
Paper do Autor.
Cheikhi, Laile; Al-Qutaish, Rafa E.; Idri, Ali (2012) “Software productivity:
Harmonization in ISO/IEE SW Eng. Standards”In: Journal of Software IEEE.
Chrissis, Mary B.; Konrad, Mike; Shrum, Sandy (2011) “CMMI for
Development: Guidelines for Process Integration and Product Improvement”
Third Edition, Addison-Wesley.
COSMIC (2011) “The COSMIC functional size Measurement Method, Version
4”, Common Software Measurement International Consortium.
Fenton, Norman, E.; Pfleeger, Shari, L. (1997) “Software Metrics: A Rigorous
and Practical Approach”, PWS Publishing Company.
IFPUG (2010), Function Point Analysis, Counting Practices Manual, Release
4.3.1” IFPUG – International FUnction Point Users Group.
iMPS (2015) “Resultado de desempenho de organizações que adotaram o modelo
MPS” site acessado da Internet pelo link http://www.softex.br/mpsbr/resultadode-desempenho/, em Março 2015.
Kitchenham, B., (2004), Procedures for Performing Systematic Reviews,
Technical Report, Departament of Computer Science Keele University, Keele.
Kitchenham, B., (2007), Guidelines for performing Systematic Literature Reviews
in Software Engineering, Version 2.3, Departament of Computer Science Keele
University, Keele
Kitchenham, B.; Mendes, E.; “Software productivity measurement using multiple
size measures” (2004) In: IEEE Transactions of Software Engineerinh, Vol.30,
No. 12, December 2004
Kosloski, Ricardo, A. D.; Oliveira, Káthia, M. (2005) “An Experience Factory to
Improve Software Development Effort Estimates” In: 6th International
Conference on Product Focused Software Process Improvement – PROFES
2005, Oulu, Finland.
Lopéz, Adrina H.; Palacios, Ricardo, C.; Crespo, Ángle, G. “Productivity on
software engineering: A study of its meanings for practitioners”.
Maxwell, Katrina, D. (2001) “Collecting Data for Comparatility: Benchmarking
Softwre Development Productivity”, IEEE Software.
Morasca, Sandro; Giuliano, Russo (2002) “An Empirical Study on Software
Productivity” In: Computer Software and Applications, 2001.
53
XIII Workshop de Teses e Dissertações em Qualidade de Software
Petersen, Key (2010) “Measuring and Predicting Software Productivitqy: A
systematic Map and Review”, Elsevier.
Putnam, Lawrence, H.; Myers, Ware (2003) “Five Core Metrics: The Intelligence
Behind Successful Software Management”, Dorset House Publishing, 353
West 12th Street, New York, NY 10014.
Rubin, Howard, A. (1993) “Software Process Maturity: Measuring its Impact on
Productivity and Quality” In: Proceedings of the 15th international conference
on Software Engineering, IEEE.
Sampaio, Suzana, C.; Barros, Emanuella, A.; Soares, Junior, G.; Silva, Mauro, J.;
Meira, Silvio, R. “A review of Productivity Factors and Strategies on SW Dev”
In: 5ft, International Conference on Software Engineering Advances, IEEE.
Santos; Gleison S. (2008); Ambiente de Engenharia de Software Orientados a
Corporação, Tese apresentada à COPPE/UFRJ comoparte dos requisitos
necessários para obtenç!Ao do grau de Doutor em Ciências
Santos, G., Kalinowski, M., Rocha, A.R., Travassos, Guilherme, H.; Chaves,
Kival Weber (2010) "MPS.BR: A tale of software process improvement and
performance results in the Brazilian software industry", In: Seventh
International Conference on the Quality of Information and Communications
Technology; pp. 412-417, Porto.
SEI (2010) “CMMI for Development, Version 1.3”, Software Engineering
Process Management Program.
SCOPUS, 2015 Biblioteca digital de publicações acessada pela internet pelo link
http:// www.scopus.com, em abril/2015.
Softex (2012) “Guia Geral MPS de Software”, MPS.Br Melhoria do Processo do
Software Brasileiro, Associação para Promoção da Excelência do Software
Brasileiro.
Villas Boas, Gisele; Rocha, Ana R.C.; Amaral, Marcio, P. “An approach to
Implement SPI in midi sized organizations” In: 7th International conference on
the quality of Information and Communications Technology, IEEE.
Wagner, Stefan; Rhue, Melanie (2008) “A Systematic Review of Productivity
Factor in Software Development”, Technische Universitat München, –
Germany, Siemens AG, Germany.
54
XIII Workshop de Teses e Dissertações em Qualidade de Software
Representação das metas estratégicas à capacidade e
desempenho do processo de desenvolvimento de software
Maria Alciléia A. Rocha12, Toacy C. de Oliveira1
1
Programa de Engenharia de Sistemas e Computação – Universidade Federal do Rio de
Janeiro (UFRJ) - Rio de Janeiro, RJ – Brasil.
2
Instituto Federal de Educação, Ciência e Tecnologia Fluminense (IFF) - Campos dos
Goytacazes, RJ – Brasil
[email protected], [email protected]
Abstract. This article proposes a study to define an approach for represent
software development aspects, from strategic goals to indicators of process
performance and capacity. Therefore we performed an ad hoc literature
review, yielding a theoretical basis and some related work.
Resumo. Este artigo propõe uma pesquisa visando definir uma abordagem
para representar os aspectos relacionados ao desenvolvimento de software,
desde as metas estratégicas aos indicadores de desempenho e capacidade dos
processos. Para isto, foi executada uma revisão ad hoc da literatura, obtendose uma fundamentação teórica e alguns trabalhos relacionados.
1. Introdução
Atualmente, a produção de bens e serviços está sujeita ao atendimento às expectativas
dos clientes, que mudam frequentemente; ao alcance das metas estabelecidas, que
depende das estratégias adotadas por si e pelos concorrentes; e às variações do
ambiente. Isto exige flexibilidade e capacidade para lidar com as mudanças.
Nestas circunstâncias, o conhecimento sobre a capacidade e desempenho dos
processos pode contribuir para a sobrevivência de uma organização, inclusive as
desenvolvedoras de software, pois permite a definição de metas mais realistas.
Geralmente, tal conhecimento advém da análise dos resultados obtidos ao longo do
tempo, considerando variáveis e seu contexto, abordagens para medição e controle
estatístico de processo, o que viabiliza previsões mais precisas e a melhoria contínua.
Também, a concepção e disseminação do conhecimento é facilitada pela adoção
de alguma linguagem apropriada, pois o mundo é representado por imagens ou por
signos, de forma tão mais correta quanto mais se adequar ao que representa (Bicudo,
1999). No caso dos negócios, i* (i star) (YU, 1995), UML (Unified Modeling
Language) (Booch, Rumbaugh e Jacobson, 2000), BPMN (Business Process Modeling
Notation) (OMG, 2011), entre outras, permitem uma representação simplificada da
realidade, facilitando a comunicação e o entendimento sobre como ou porquê o trabalho
é realizado. No entanto, as notações não abrangem todos os aspectos relevantes de
forma integrada, requerendo complementação por meio de extensões, modelos ou
documentos, o que aumenta a complexidade e a dificuldade para mantê-los.
Neste contexto, considera-se a seguinte questão de pesquisa: como representar as
55
XIII Workshop de Teses e Dissertações em Qualidade de Software
perspectivas do negócio de desenvolvimento de software integradas ao conhecimento
sobre capacidade e desempenho do processo?
Logo, propõe-se uma pesquisa no âmbito da modelagem de negócios, visando
representar processos de desenvolvimento de software alinhados às metas estratégicas
da fábrica de software, integrando indicadores, contexto, e outros, através de notação e
ferramenta computacional para monitoramento e comunicação. Tal proposta considera
que toda organização que nega o ócio (negócio) produzindo bens ou serviços deve ser
hábil ao equilibrar variáveis como: tempo, recursos, qualidade e conhecimento a fim de
alcançar suas metas, geralmente, relacionadas a lucro, satisfação ou reconhecimento. E,
é preciso que todos os envolvidos saibam quais são as metas, como alcançá-las no prazo
definido e quanto os resultados parciais os desviam ao executar ou simular processos.
2. Fundamentação Teórica
2.1. Metas e Processos
De acordo com o Cambridge Free English Dictionary and Thesaurus, o termo goal é
definido como “a purpose, or something that you want to achieve” e pode ser traduzido
para o português como meta, definida pelo Dicionário Português Online como “fim a
que se dirigem as ações ou os pensamentos de alguém”. Yu (1995) define meta como
uma condição ou estado de negócios que o ator gostaria de alcançar, expressa como uma
afirmação da linguagem de representação. Loucopoulos e Karakostas (1995, p. 108)
afirmam que o termo meta pode ser usado em diferentes abordagens, com diferentes
significados, como: tarefas humanas, resultados de soluções de problemas, estados
desejados do mundo, políticas e orientações para ações, entre outros. Complementando,
Kueng e Kawalek (1997, p. 18) afirmam que os seres humanos têm metas, vontades e
propósitos, e tentam alcançá-las, fazendo algumas coisas e evitando outras.
No ramo dos negócios, o conceito de meta incorpora-se ao conceito de processo,
pois um processo pode ser definido como um conjunto de atividades parcialmente
ordenadas visando alcançar uma meta (Hammer e Champy, 1994). Eriksson e Penker
(2000, p. 63-38) conceituam processo referindo-se às funções em que o negócio
consome, refina, processa, transforma ou usa objetos concretos (pessoas, máquinas,
materiais, etc.) ou abstratos (conceitos, instruções, serviços, etc.) para produzir outros
objetos. Especificamente, processo de software foi definido por Fuggetta (2000) como
um conjunto coerente de políticas, estruturas organizacionais, procedimentos, artefatos e
tecnologias necessários para conceber, desenvolver, implantar e manter software.
Assim, para alcançar uma meta é preciso definir estratégias que podem ser
traduzidas em processos, que por sua vez podem desencadear metas inerentes ou
submetas. Kueng e Kawalek (1997, p. 23) destacam que as metas relacionadas ao
processo são reduzidas ou decompostas até que possam ser transformadas em
atividades, que são executadas a fim de atingi-las, considerando que podem ser
contraditórias, independentes ou complementares e tem diferentes prioridades.
Basili et. al. (2007) sugerem a definição de valores para as metas dos processos,
em termos de magnitude e prazo. Entretanto, destaca-se que tais valores não devem ser
definidos arbitrariamente, sob pena de estar aquém ou além da capacidade da
organização alcançá-las, pois, para Wheeler (2001, p. 21-22), quando as pessoas são
pressionadas a atingir um valor-alvo, há três maneiras como elas podem proceder:
trabalhar para melhorar o sistema; distorcer o sistema ou distorcer os dados.
56
XIII Workshop de Teses e Dissertações em Qualidade de Software
Por isto, Wheeler (2001, p. 21-22) afirma que, antes de melhorar qualquer
sistema, deve-se “ouvir a voz do processo”, ou seja, entender como as entradas afetam
as saídas do sistema, para ser capaz de alterar as entradas de forma que alcance os
resultados desejados (metas). E destaca que, simplesmente comparar os números com as
especificações (voz do cliente) não levará a melhoria do processo, pois não fornece
qualquer compreensão sobre como o processo funciona. Para obter conhecimento sobre
a capacidade e estabilidade do processo, o autor sugere a abordagem de Shewhart.
2.2. Controle e Melhoria de Processos
Shewhart (1926, p. 593) parte do princípio que, independentemente do cuidado tomado
na definição do processo de produção, o fabricante percebe que não pode fazer todas as
unidades de um determinado tipo de produto idêntico, pois flutuações randômicas
diversas, em relação ao ambiente produtivo e condições psicológicas e fisiológicas dos
indivíduos que executam o processo, originam variações incontroláveis. Isto equivale
assumir a existência de causas não associadas de variação na qualidade do produto.
Na Engenharia de Software, Fuggetta (2000) também destaca que processos de
software são atividades centradas em humanos e, como tal, são propensas a
desempenhos e comportamentos inesperados ou indesejados. Além disto, a variação
pode ser potencializada pelo fato de que cada produto desenvolvido advém de requisitos
peculiares, intrínsecos, ou seja, heterogêneos.
Diante dos inúmeros desafios inerentes ao desenvolvimento de software, normas
internacionais e modelos de referência que apoiam a implantação de programas de
melhoria de processos, como ISO/IEC 12207, ISO/IEC 15504, CMMI-DEV®
(Capability Maturity Model Integration for Development) e MR-MPS (Modelo de
Referência de Melhoria do Processo de Software Brasileiro) (Softex, 2012) foram
propostos. Alguns pressupõem que as organizações definam medidas, a partir de seus
objetivos organizacionais, coletem e analisem os dados de forma que conheçam o
comportamento dos processos, e façam previsões sobre seu desempenho, ou apoiem a
tomada de decisão. Entretanto, não determinam como fazê-lo, permitindo que as
organizações adotem métodos e medidas adequadas a sua realidade.
Dentre os métodos e medidas destacam-se o PSM (Practical Software
Measurement), proposto por Mcgarry et al. (2002), que consiste em um modelo de
informação para medição e um modelo de processo de medição, fundamentados em
conceitos mensuráveis. Em consonância, Putnam e Myers (2003) propõem cinco
medidas essenciais quando consideram que pessoas, trabalhando em algum nível de
(produtividade), produzem uma quantidade de funções (tamanho) ou um produto de
trabalho com algum nível de confiabilidade (qualidade), despendendo (esforço) em um
intervalo de (tempo). Já Basili et al. (2007) propõem GQM+Strategies para ajudar a
justificar os esforços da medição de software e contribuir em decisões de alto nível,
através do GQM (Goal Question Metric), que fornece suporte quantitativo pela
decomposição de metas de medição em questões e métricas.
Quanto às formas de analisar os dados coletados, Florac, Carleton e Barnard
(2000, p. 97-99) destacam o gráfico de controle (ou Shewhart chart), que mostra o
desempenho do processo sobre o tempo e provê uma definição operacional de
estabilidade e capacidade, através de limites de controle (UCL e LCL) definidos como
3σ (onde σ é o desvio padrão) em torno da média de um conjunto de valores coletados,
57
XIII Workshop de Teses e Dissertações em Qualidade de Software
sobre determinado atributo do processo (Jalote e Saxena, 2002). Estes limites visam
minimizar a perda total devido a processos fora de controle e alarmes falsos, sendo
denominados limites naturais do processo ou a 'voz do processo', expressando a
tendência central do processo, e são calculados conforme tipo de gráfico de controle, o
que depende da natureza dos dados (contínuos ou discretos).
10
UCL
5
Média
Período de tempo
nov
out
s et
ago
jul
jun
m ai
abr
m ar
fev
0
jan
Valores Individuais
Considerando um processo estável, é possível definir um intervalo de valores
para determinada meta associada (entre UCL e LCL), pois este intervalo representa a
capacidade do processo, fundamentados em dados históricos e não em um valor
arbitrário. Também é possível verificar o desempenho do processo em relação à meta
estipulada. Um exemplo é ilustrado no Gráfico 1.
LCL
Gráfico 1. Exemplo de gráfico de controle para valores individuais.
Para isto, é preciso implementar um programa de medição que abrange
mecanismos para coleta, validação, armazenamento e análise dos dados, bem como
comunicação dos resultados, execução e gerenciamento do programa de medição,
visando averiguar o alcance das metas e, consequentemente, promover melhorias.
Ressalta-se que o monitoramento das metas estratégicas requer agregação dos resultados
nos diversos níveis, considerando as relações entre metas e variedade dos atributos.
2.3. Representação de Negócios
De acordo com Chiavenato (1998, p. 660- 662), o desenho organizacional, que significa
o arranjo e o processo de arranjar as características estruturais da organização para
atingir ou aumentar a eficiência e eficácia organizacional, passou a ter mais relevância a
partir da Teoria da Contingência, que se baseia no conceito de não existir uma única
maneira melhor de organizar, pois as organizações precisam adaptar-se às condições do
ambiente em constante transformação, dado um enfoque sistêmico sobre a organização.
E, Azevedo e Campos (2004, p. 156) apresentam algumas perspectivas para
representação de negócios: (a) visão de negócio (business vision), modela conceitos e
objetivos de acordo com as estratégias do negócio; (b) processo de negócio (business
process) modela os processos e seus relacionamentos com os recursos a serem usados
para atingir os objetivos, ou seja, atividades, eventos, papéis, artefatos, regras e fluxos,
relacionados às metas, bem como aos problemas (ameaças) para alcançá-las e às
sugestões de solução; (c) estrutura de negócio (business structure) modela a estrutura
dos recursos (físicos ou abstratos), incluindo suas hierarquias e influências, nos diversos
níveis organizacionais; e (d) comportamento do negócio (business behavior), modela o
comportamento, a interação entre recursos e entre processos, o que pode incluir os
impactos das variações ou problemas sobre o processo e alcance das metas.
Há inúmeras linguagens e ferramentas para representar tais perspectivas,
especialmente para processos, de forma a apoiar sua execução, simulação, otimização
ou automatização; das quais algumas assumem o provérbio popular: “uma imagem fala
58
XIII Workshop de Teses e Dissertações em Qualidade de Software
mais que mil palavras”. Além disto, Yu (1995) destacou que, geralmente, executores do
processo precisam de modelos que detalham os “como”, enquanto gestores de processos
preferem modelos que destacam os “o que”, e os engenheiros de processo, encarregados
de melhorá-los e redesenhá-los, precisam de modelos que explicitam os “porquês”.
Neste caso, o framework i* (Yu, 1995) pode ser utilizado para descrever um
processo de software em mais detalhes, em termos de elementos de processo e como
eles se relacionam entre si, por meio de decomposição tarefas, e relações causas e
efeitos. Já a UML permite a modelagem de negócio pela disponibilidade de mecanismos
para extensão como em Eriksson e Penker (2000). Também, BPMN é um padrão
internacional para modelagem de processos de negócio, cujos modelos podem ser
mapeados para padrões que permitem a execução como WSBPEL (Web Services
Business Process Execution Language) ou XPDL (XML Process Definition Language).
Entretanto, BPMN não abrange a modelagem de estratégia (OMG, 2011), não dispondo
de mecanismos formais para representar as metas dos processos e suas influências.
3. Trabalhos Relacionados
Em termos de planejamento e controle, Barreto (2011) propôs um método para
planejamento estratégico, tático e operacional em organizações de software; uma
infraestrutura para monitorar os objetivos (metas) e uma estratégia para recomendação
de ações corretivas, para tratar os desvios detectados. Apesar do método proposto não
ter sido integralmente utilizado por organizações de software, este trabalho pode
evidenciar algumas características do alinhamento do processo de software às metas
estratégicas, mas não trata da representação gráfica de tais aspectos.
Enquanto, Gonçalves et al (2012) apresentou um processo padrão e uma
ferramenta de apoio ao controle estatístico do processo de software integrada ao
WebAPSEE, visando a coesão entre os processos críticos e indicadores estatísticos com
os objetivos da organização e de medição; propagação dinâmica das mudanças nos
objetivos; e integração dos planos de ação a um ambiente de desenvolvimento de
software. Entretanto, sugeriu como atividade futura, adicionar funcionalidades para
verificação da capacidade do processo e definição dos modelos de desempenho. E,
apesar de dispor da WebAPSEE-PML, uma linguagem gráfica usada para modelar
processos (Lima et al, 2006), a proposta não tratou a representação através dela.
Quanto à representação gráfica, Yu (1995) propôs um framework de modelagem
denominado i*, cujos modelos representam os conceitos de capacidade, produtividade,
viabilidade e credibilidade, para apoiar a engenharia de requisitos de software,
reengenharia de processos de negócios, análise de impactos organizacionais e
modelagem de processo. A partir deste, Horkoff et al (2014) propuseram o Business
Intelligence Model (BIM), que incluiu conceitos como metas, estratégias, processos,
situações, influências, e indicadores, apoiados por ferramentas computacionais. Os
autores pretendem incorporar o BSC (Balanced ScoreCard), mapa estratégico e
relacionar os indicadores às bases de dados organizacionais.
Também, Eriksson e Penker (2000) apresentaram uma extensão da UML com
mecanismos para representação de processos e seus elementos, mas como o modelo de
negócio é mais amplo e complexo, a extensão pressupõe sua decomposição em visões
(business vision, business process, business structure e business behavior), de forma
que cada uma mostra informações sobre um ou mais aspectos específicos do negócio,
59
XIII Workshop de Teses e Dissertações em Qualidade de Software
inclusive os desdobramentos das metas organizacionais, através de diversos diagramas,
o que dificulta a visualização, integração e atualização.
Já Braubach et al (2010) apresenta o projeto de pesquisa Go4Flex, cujo objetivo
é integrar perspectivas de especialistas de negócio à perspectiva técnica, estabelecendo
conceitos de modelagem de alto nível para o workflow, o que resulta em aumento da
inteligibilidade das descrições para os envolvidos, a partir de modelos teóricos como
BDI (Beliefs, Desires and Intentions) agents e implementações de agentes para facilitar
o tratamento de processos altamente complexos e adaptativos. Complementando este
projeto, Jander et al (2011) propõem uma abordagem baseada na noção de metas de
processo, Goal-Oriented BPMN (GO-BPMN), que representa metas como feature
functional do próprio workflow, empregando o conceito de metas abstratas para
descrever as condições alvo, em vez de defini-las implicitamente com as atividades.
Ressalta-se que propostas como Horkoff et al (2014) e Korherr e List (2007)
para o alinhamento ou representação de metas, estratégias e processos, são apresentadas
da perspectiva da Engenharia de Requisitos, ou seja, visando especificar requisitos
funcionais e não funcionais ou de medição para o software que produzirão. Entretanto,
sugere-se a inclusão da perspectiva da própria fábrica de software, conforme ilustrado
por Yu (1995) e Basili et. al. (2007), pois entende-se que tais perspectivas são
complementares e interdependentes. Afinal, uma das metas da fábrica de software é
satisfazer seus clientes fornecendo software que os ajuda a alcançar suas próprias metas.
4. Metodologia e Estado Atual do Trabalho
Ao desenvolver a abordagem para responder a questão apresentada, é preciso considerar
fundamentação teórica e impactos práticos.
A fundamentação teórica pode ser obtida através de revisão ad hoc da literatura,
a fim de identificar publicações relacionadas e ajudar a direcionar a revisão sistemática
que requer definição de um protocolo como sugerido por Kitchenham (2007). Estas
revisões precisam ser executadas de forma que evidencie o estado da arte sobre as
linguagens para modelagem de negócios; favoreça o estabelecimento de requisitos e
critérios para avaliar tais linguagens, em termos de representação das perspectivas:
business vision, business process, business structure e business behavior, que abrangem
decomposição e agregação das metas, desde as intenções estratégicas aos indicadores de
capacidade e desempenho do processo de desenvolvimento de software.
Alguns impactos práticos podem ser favorecidos pela implementação de
software que apoie a modelagem integrada à coleta e análise dos dados sobre a
simulação ou execução de processos de desenvolvimento de software. Isto pode ser
através de plugins para o Redmine, uma ferramenta de código aberto que apoia o
planejamento e execução de projetos. Outros, identificados ao usar tal ferramenta para
modelar e simular determinado processo. E, ao obter a opinião de potenciais usuários
em relação aos requisitos, critérios e à abordagem proposta, através de surveys.
De forma preliminar, foi executada a revisão ad hoc da literatura e modelado um
processo de desenvolvimento de software, de uma pequena organização desenvolvedora
de software, usando BPMN, a fim de identificar oportunidades e ameaças, e favorecer a
substituição de um ambiente utilizado para controle de tarefas pelo Redmine, com
pretensão de usá-lo para apoiar a validação da proposta. Atualmente, os esforços
concentram-se na elaboração do protocolo de revisão sistemática e revisão do modelo.
60
XIII Workshop de Teses e Dissertações em Qualidade de Software
A partir da execução da revisão sistemática, serão identificadas linguagens de
modelagem, cujas serão avaliadas em relação aos requisitos e critérios estabelecidos,
visando selecionar, adaptar ou propor notação adequada. Oportunamente, surveys serão
planejados e executados visando obter opiniões dos usuários.
5. Resultados Esperados
Dentre os resultados esperados, destacam-se a abordagem para representar as
perspectivas do desenvolvimento de software integrada ao conhecimento sobre a
capacidade e desempenho do processo, incluindo notação e software. Além da definição
de requisitos e critérios, para avaliar linguagens de modelagem capazes de representar as
perspectivas citadas. Assim, espera-se facilitar a obtenção e disseminação do
conhecimento sobre a capacidade e dinâmica do processo de desenvolvimento de
software, promovendo a maturidade e competitividade do negócio.
Agradecimentos
Os autores agradecem à Coordenação de Aperfeiçoamento de Pessoal de Nível Superior
(CAPES) e ao Instituto Federal de Educação, Ciência e Tecnologia Fluminense (IFF)
pelo apoio ao desenvolvimento desta pesquisa.
Referências
Azevedo, D. P. and Campos, R. (2004) “Aplicação de uma Arquitetura de Modelagem
de Processos de Negócios no Desenvolvimento de Software”, Vértices, v.6, n.3, pp.
147-175.
Barreto, A. O. S. (2011) “Definição e Gerência de Objetivos de Software Alinhados ao
Planejamento Estratégico”. Tese (Doutorado em Engenharia de Sistemas e
Computação) COPPE, Universidade Federal do Rio de Janeiro. Brasil.
Basili, et al. (2007) “Bridging the gap between business strategy and software
development”. In: ICIS 2007 Proceedings, p. 25.
Bicudo, M. A. V. A (1999) “Contribuição da fenomenologia à educação”.
Fenomenologia, uma visão abrangente da educação. São Paulo: Olho d'água.
Booch, G., Rumbaugh, J. and Jacobson, I. (2000) “UML: guia do usuário”. Tradução da
segunda edição. Elsevier Brasil.
Braubach, L. Pokahr, A. Jander, K. Lamersdorf, W. and Burmeister, B. (2010)
“Go4Flex: Goal-oriented Process Modelling”. In: 4th International Symposium on
Intelligent Distributed Computing (IDC-2010), p. 77-87, Springer Berlin Heidelberg.
Chiavenato I. (1998) “Teoria Geral da Administração”. v. 2, 5. ed. São Paulo: Makron
Books.
Eriksson, H. and Penker M.(2000) “Business Modeling with UML: Business Patterns at
Work”. United States: Wiley & Sons.
Florac, W. A., Carleton, A. D. and Barnard, J. R. (2000) “Statistical process control:
analyzing space shuttle onboard software process”. Software, IEEE, v.17, n.4, p.97106.
Fuggetta, A. (2000) “Software process: a roadmap”. In: Proceedings of the Conference
on The Future of Software Engineering, pp. 25-34, Limerick, Ireland.
61
XIII Workshop de Teses e Dissertações em Qualidade de Software
Gonçalves, L., Lima, L., Reis, R.Q., Nascimento, L. and Ribeiro, T. (2012) “Support for
Statistic Process Control of software process”. In: XXXVIII Conferencia
Latinoamericana en Informatica (CLEI), p.1-10, 1-5 Oct.
Hammer, M. and Champy, J. (1994) “Reengineering the Corporation: a manifesto for
Business Revolution”, Nicholas Brealey Publishing, London.
Horkoff, J., Barone, D., Jiang, L., Yu, E., Amyot, D., Borgida, A. and Mylopoulos, J.
(2014) “Strategic Business Modeling: Representation and Reasoning”. Software &
Systems Modeling 13, n. 3, jul., p. 1015–41.
Jalote, P. and Saxena, A. (2002) “Optimum control limits for employing statistical
process control in software process”. Software Engineering, IEEE Transactions on,
v. 28, n. 12 , p. 1126–34.
Jander, K., Braubach, L., Pokahr, A., Lamersdorf, W. and Wack, K. (2011) “GoalOriented Processes with GPMN”. International Journal on Artificial Intelligence
Tools, v. 20, n. 06, p. 1021–1041, dez.
Kitchenham, B. (2007) “Guidelines for performing Systematic Literature Reviews in
Software Engineering”. Keele and Durham University Joint Report. EBSE 2007-001.
Korherr, B. and List, B. (2007) “Extending the EPC and the BPMN with Business
Process Goals and Performance Measures”. In: Proceedings of the 9th International
Conference on Enterprise Information Systems (ICEIS), Funchal, p. 287–294.
Kueng, P. and Kawalek, P. (1997) “Goal-based business process models: creation and
evaluation”. Business Process Management Journal, v. 3, n. 1, p. 17-38.
Lima, A., França, B, Schlebbe, H., Silva, M., Reis, R. Q. and Reis, C. L. (2006)
“WebAPSEE: Um Ambiente Livre e Flexível Para Gerência de Processos de
Software”. In: VII Workshop de Software Livre. Porto Alegre: Abril.
Loucopoulos, P. and Karakostas, V. (1995) “System requirements engineering”.
McGraw-Hill Inc.
Mcgarry, J., Card, D., Jones, C., Layman, B., Clark, E., Dean, J. and Hall, F. (2002)
“Practical Software Measurement: objective information for decision makers”.
Addison-Wesley.
OMG, Object Management Group. (2011) “Business Process Model and Notation
(BPMN)”. Version 2.0. Disponível em:<http://www.omg.org/spec/BPMN/2.0/>.
Acessado em 20 de julho de 2013.
Putnam, L. and Myers, W. (2003) “Five Core Metrics”. Dorset House Publishing.
Shewhart, W.A. (1926) “Quality Control Charts”. Bell System Technical Journal, v. 5,
n. 4, p. 593-603.
Softex. (2012) “MPS.BR: Guia Geral MPS de Software”. Disponível em:
<http://www.softex.br/mpsbr/guias/>. Acessado em 10 de Agosto de 2013.
Wheeler, D. J. (2001) “Entendendo a variação: a chave para administrar o caos”.
Tradução: Maria Cristina da Costa Muller. Rio de Janeiro: Qualitymark ed. 152 p.
Yu, E. (1995) “Modelling Strategic Relationships for Process Reengineering”. Ph.D.
Thesis. Dept. of Computer Science, University of Toronto. Canada.
62
XIII Workshop de Teses e Dissertações em Qualidade de Software
Formação de Equipes de Alto Desempenho para
Desenvolvimento de Software
Alessandra C. S. Dutra, Rafael Prikladnicki
1
Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
Av. Ipiranga, 6681 – 90619-900 – Porto Alegre – RS – Brazil
{alessandra.dutra,rafaelp}@pucrs.br
Resumo. O mercado de desenvolvimento de software evolui a cada dia, e a
indústria de software tem se tornado uma das áreas mais competitivas
atualmente. Os requisitos para esta competitividade são diversos, e
dificilmente eles serão alcançados sem uma equipe orientada ao alto
desempenho, de grande domínio técnico, comportamental e de negócio. Os
cursos de capacitação em Engenharia de Software não estão alinhados com a
necessidade de formar equipes de alto desempenho em desenvolvimento de
software. Por essa razão, o objetivo dessa pesquisa é propor uma abordagem
metodológica de capacitação, visando formar equipes de alto desempenho
para o desenvolvimento de software, suprindo esta necessidade.
1. Caracterização do Problema
O mercado de desenvolvimento de software opera em um ambiente global, com
mudanças rápidas, e é necessário responder com agilidade a estas mudanças e a estes
novos mercados [Sommerville 2011]. Conseguir agilidade, competitividade e resultados
sem uma equipe de desenvolvimento de software capacitada e de alto desempenho é
uma tarefa difícil e pode trazer resultados pouco competitivos.
Esse contexto indica que a formação qualificada e a capacitação de profissionais
são cada vez mais necessárias na sociedade em que vivemos. Seja em cursos de curta
duração, graduação ou pós-graduação, formar bons profissionais faz parte do
compromisso das Instituições de Ensino Superior (IES) com a sociedade [Enricone
2002].
A qualidade da capacitação em ES pode contribuir significativamente à melhoria
do estado da arte do desenvolvimento de software e auxiliar a solução de alguns
problemas tradicionais e crises relacionadas com às práticas da indústria de software
[Gibbs 1994]. Hoje, a capacitação e o treinamento para formar profissionais de software
devem incluir não apenas conhecimentos básicos na área de computação, mas também o
ensino de conceitos, processos e técnicas para definição, desenvolvimento e
manutenção de software [Saiedian 1999] [ACM/IEEE 2008].
Nesse sentido, o processo de ensino e aprendizagem de Engenharia de Software
têm passado por questionamentos acerca dos métodos utilizados nas atividades de
capacitação [Santos et al. 2008]. Estudos demonstram que esses métodos envolvem
estratégias tradicionais de ensino, tais como apresentação de teoria, aulas expositivas e
leituras complementares, fazendo com que os alunos encontrem, na indústria, um
cenário diferente do que é ensinado na academia [Santos et al. 2008] [Prikladnicki et al.
63
XIII Workshop de Teses e Dissertações em Qualidade de Software
2009]. Ao mesmo tempo, o desenvolvimento de software tem exigido a formação de
equipes de alto desempenho, de grande domínio técnico, comportamental e de negócio
[Nearshore 2012] [Roda 2011], uma necessidade que as atuais formações não
conseguem suprir. Uma das razões é o fato de se concentrarem na formação básica com
ênfase na abordagem tradicional do desenvolvimento de software, não preparando o
profissional para atuar como integrante de uma equipe de desenvolvimento de software,
que demanda competências multifuncionais e ambientes multidisciplinares. Dessa
forma, faz-se necessário saber quais os resultados de investigações científicas em
relação às características da formação de equipes de alto desempenho em
desenvolvimento de software e quais as atuais abordagens de capacitação existentes e
que, de alguma forma, exploram algumas destas características.
O objetivo geral deste trabalho é propor uma abordagem metodológica de
capacitação visando formar equipes de alto desempenho para o desenvolvimento de
software. Para alcançar o objetivo geral proposto, apresentam-se os seguintes objetivos
específicos:
• Identificar os estudos da base teórica sobre as características das equipes de
alto desempenho para desenvolvimento de software, através da realização de um estudo
secundário (uma revisão sistemática de literatura);
• Descrever e caracterizar as abordagens de capacitação existentes na formação
de equipes em Engenharia de Software;
• Propor e avaliar uma abordagem metodológica, focada na capacitação de
equipes de alto desempenho para desenvolvimento de software, avaliando a viabilidade,
benefícios e riscos da sua implementação;
• Analisar, documentar e reportar os resultados da pesquisa, incluindo todos os
passos do estudo, visando apresentá-los à comunidade científica.
Este artigo está dividido em 6 seções. Na seção 2, apresentamos a
fundamentação teórica; na seção 3, o método de pesquisa. Seção 4 mostramos o estado
atual do trabalho. Na seção 5, os trabalhos relacionados e para finalizar; na seção 6, os
resultados esperados.
2. Fundamentação Teórica
2.1. Capacitação em Engenharia de Software
A Engenharia de Software é uma disciplina preocupada com a aplicação de teoria,
conhecimento e prática para o desenvolvimento efetivo e eficiente de sistemas de
software que satisfaçam os requisitos dos usuários [ACM/IEEE 2008]. A ES está
relacionada com todos os aspectos da produção de software, desde os estágios iniciais
até a sua manutenção, envolvendo não apenas os processos técnicos do
desenvolvimento, como também as atividades de gerenciamento de projeto e a
utilização de ferramentas, métodos e teorias que apoiem a sua produção [Sommerville
2011]. Portanto, a ES vai muito além da criação de códigos de programas: procura
disciplinar o desenvolvimento e traz para a criação de software princípios, técnicas e
conhecimento para tratar de questões de qualidade, prazos e fatores econômicos
[ACM/IEEE 2004].
64
XIII Workshop de Teses e Dissertações em Qualidade de Software
O currículo na área de ES [ACM/IEEE 2004][ACM/IEEE 2008] aponta a
necessidade de ensino para além do formato de aula expositiva, e uma das formas de
aumentar a qualidade do ensino é aperfeiçoar os processos de ensino e aprendizagem,
através de didáticas e estratégias inovadoras. Conforme Beckman [1997], a qualidade da
educação é um dos fatores importantes que influencia na qualidade dos profissionais.
Os profissionais de ES [Conn 2002] estão insatisfeitos com a falta de preparo dos
estudantes universitários que ingressam no mercado de trabalho, o que leva a indústria a
ter que complementar a sua educação com treinamentos. Esse preparo pode envolver
profissionais ou equipes, incluindo equipes de alto desempenho.
2.2. Equipes de Alto Desempenho
Uma equipe de alto desempenho [Moscovici 2003], tem seus membros comprometidos
com o crescimento e o sucesso pessoal de cada um dos membros da equipe. Essa equipe
supera o desempenho de todas as outras, além de conseguir resultados que superam as
expectativas.
Katzenbach e Smith [1994] apresentam algumas características das equipes de
alto desempenho: “profundos compromissos pessoais de cada um para com o
crescimento e o sucesso dos outros é o que distingue as equipes de alta performance da
maioria das equipes existentes. Energizados por esse senso extra de compromisso, as
equipes de alta performance tipicamente refletem vigorosas ampliações das
características fundamentais das equipes: senso mais profundo de propósito, metas mais
ambiciosas de performance, abordagens mais completas, maior plenitude de
responsabilidade mútua, intercambiabilidade e complementaridade de conhecimentos”.
Boyett e Boyett [1999] citam algumas empresas que obtiveram grandes
resultados com equipes de alto desempenho, tais como a AT&T Credit Corporation, que
usou equipes interfuncionais de alto desempenho para melhorar a eficiência e o serviço
ao cliente. Conforme Raj [Raj et al. 2006], observa-se uma grande dificuldade nas
organizações para a disseminação das práticas das equipes de alto desempenho, como
reorganização do trabalho, envolvimento dos professionais nos processos decisórios e
melhoria das habilidades dos trabalhadores, apesar dos indícios de que as organizações
investem nessas práticas obtendo maior produtividade e eficiência.
3. Método de Pesquisa
3.1. Desenho e Etapas da Pesquisa
Para o desenvolvimento desta pesquisa, será utilizada, como base, a metodologia
proposta por Mafra [Mafra et al 2006], cujo desenho de pesquisa está representado na
Figura 1. Cada uma das etapas desta metodologia é detalhada a seguir [Mafra et al.
2006], [Shull et al. 2001]:
• Estudos Secundários: essa etapa consiste na condução de estudos secundários,
tais como revisão sistemática da literatura, que tem como objetivo buscar evidências
primárias na área em estudo.
• Proposta Inicial: essa etapa consiste na produção, com base no conhecimento
adquirido e nas evidências identificadas através da condução da revisão sistemática, de
uma proposta inicial da tecnologia.
65
XIII Workshop de Teses e Dissertações em Qualidade de Software
• Estudo de Viabilidade: essa etapa verifica, através de estudos empíricos e
experimentais, a viabilidade do processo ou tecnologia sendo analisada. Pesquisas
utilizando estudantes são aplicáveis nessa etapa.
• Estudo de Observação: essa etapa avalia todos os passos, em detalhes, que
constituem o processo de aplicação da nova tecnologia, de forma a garantir que cada
passo seja efetivo e seja executado na ordem correta.
• Estudo de Caso com Ciclo de Vida Real: essa etapa consiste em um caso de
estudo avaliando o processo ou tecnologia em um ciclo de vida real de desenvolvimento
de software.
• Estudo de Caso na Indústria: uma vez que nas etapas anteriores o processo já
foi adaptado para ser executado em um ciclo de vida real e demonstrou ser eficaz, nessa
fase o processo ou tecnologia é avaliado em um ambiente de indústria.
Figura 1 - Metodologia Experimental – [Mafra et al. 2006]
Os seguintes passos estão planejados:
• Proposta inicial e Estudo de viabilidade: planejar e executar uma pesquisa de
campo, através de entrevistas com Gerentes de Projetos, tendo em vista dois objetivos
principais: (1) avaliar o conhecimento destes profissionais em relação as características
das equipes de alto desempenho em desenvolvimento de software e conhecer as práticas
e as abordagens de capacitação utilizadas para formar as equipes em Engenharia de
Software; (2) desenvolver uma proposta focada na capacitação de equipes de alto
desempenho para desenvolvimento de software;
• Estudo de observação: a partir do estudo de viabilidade o método será refinado,
e um estudo de observação será planejado em ambiente acadêmico a ser definido;
66
XIII Workshop de Teses e Dissertações em Qualidade de Software
• Estudo de Caso com Ciclo de Vida Real: a partir do estudo de observação, será
feito um estudo de caso gerando, então, a versão estável do método para ser transferida
para a indústria;
• Estudo de caso na Indústria: a partir do estudo de caso com ciclo de vida real,
será feito um estudo de caso a ser executado dentro do ambiente da indústria.
Estes passos estão planejados; na próxima seção, segue o estado atual do trabalho.
4. Estado Atual do Trabalho
4.1. Estudos Secundários
Como resultados preliminares, foi executada uma Revisão Sistemática da Literatura em
que identificamos algumas características que as equipes de alto desempenho devem ter
no desenvolvimento de software. Identificamos características organizacionais,
comportamentais e técnicas. As mais citadas foram comunicação eficiente,
coordenação, trabalho em equipe, diversidade da equipe, liderança, coesão e motivação.
Podemos sugerir que as equipes de alto desempenho (1) possuem uma comunicação
eficaz, (2) apresentam uma diversidade que estimula a aprendizagem e a inovação, (3)
possuem coesão, motivação, liderança e coordenação, a fim de alcançar seus objetivos.
Esses resultados geraram uma visão inicial das características esperadas para
uma equipe de alto desempenho. Essas equipes precisam ser capacitadas e desenvolver
seus pontos fortes, visando proporcionar um conjunto de competências que somente
estas equipes apresentam. Neste caso, a capacitação é, portanto, um aspecto essencial
para o desenvolvimento dessas equipes.
Os resultados dos estudos secundários geraram dois artigos que foram
publicados em dois congressos internacionais. O artigo: “What Are the Main
Characteristics of High Performance Teams for Software Development?” [Dutra et al.
2015], foi publicado no ICEIS - 17th International Conference on Enterprise
Information System, que ocorreu em Barcelona, Espanha entre os dias 27 e 30 de abril, e
o segundo artigo: “What do we know about high performance teams in software
engineering? Results from a systematic literature review”, foi aceito no SEAA Euromicro Conference series on Software Engineering and Advanced Applications, que
será realizado em Portugal entre os dias 26 e 28 de agosto de 2015.
4.2. Proposta Inicial e Estudo de Viabilidade
Esta pesquisa tem como passo seguinte o planejamento da proposta inicial e a execução
de um estudo de viabilidade. Este estudo terá como objetivo aprofundar a análise nas
características das equipes de alto desempenho, identificando suas práticas, bem como
as abordagens de capacitação utilizadas pelas empresas para aprimorar essas práticas em
seus projetos de desenvolvimento de software.
A pesquisa será exploratória, qualitativa e executada através de uma survey. As
pessoas entrevistadas serão: gerentes de projetos, líderes de projetos e coordenadores de
projetos. A coleta de dados será feita através de entrevistas semi-estruturadas, com
questões abertas e fechadas. A aplicação do questionário será com entrevistas pessoais.
A análise de dados será feita através de uma apresentação das contribuições do
estudo e uma análise crítica com relação a esses resultados. Nesta análise, será
67
XIII Workshop de Teses e Dissertações em Qualidade de Software
desenvolvida uma confrontação dos resultados obtidos com as teorias e com os estudos
relacionados, e será realizada uma análise qualitativa dos dados coletados, através de
um mapeamento das respostas dos entrevistados.
A partir do levantamento das características mais citadas, das práticas e das
abordagens utilizadas, será desenvolvida uma proposta de capacitação focada nas
características das equipes de alto desempenho para desenvolvimento de software.
5. Trabalhos Relacionados
Atualmente, encontram-se disponíveis na literatura da área alguns estudos que propõem
modelos de referência para a capacitação e para a formação de equipes de alto
desempenho. Dentre as abordagens existentes, temos: Tuckman e Jensen [1977],
Katzenbach e Smith [1994], Wellins [1994] e Boyett e Boyett [1999].
Tuckman e Jensen [1977] apresentam cinco fases de desenvolvimento de equipes, que
estão representados na Figura 2. A definição desses estágios foi fruto de uma extensa
revisão de literatura, em que o autor analisou diversos artigos científicos da época que
tratavam da formação de grupos e sintetizou as conclusões de cada autor analisado em
cinco fases gerais dentro do processo de formação de um grupo [Tuckman e Jensen
1977], [Tuckman 1965].
Figura 2 - Fases de Desenvolvimento de Grupos [Tuckman e Jensen 1977]
Nesse modelo, os grupos possuem, de forma geral, comportamentos
padronizados, que passam por cinco etapas: Formação, Confusão/Conflito,
Normatização, Desempenho e Desintegração.
Uma equipe de alto desempenho se move através das fases de formação,
confusão, normatização, desempenho e desintegração, assim como com outras equipes
de desenvolvimento. Porém, as equipes de alto desempenho utilizam a fase de confusão
e normatização de forma eficaz para definir quem são, qual o seu objetivo, como
interagir entre si e resolver conflitos. Assim, quando a equipe alcança a fase de
desempenho, eles têm comportamentos altamente eficazes que lhes permitem gerar
melhores resultados em comparação com outras equipes.
Para que uma equipe alcance o alto desempenho, é necessário passar por
algumas fases de crescimento. Katzenbach e Smith [1994] apresentam, na Figura 3,
essas fases de crescimento com a curva de desempenho da equipe. Os grupos e ou
68
XIII Workshop de Teses e Dissertações em Qualidade de Software
equipes são classificados em cinco tipos, de acordo com seu modo de funcionamento:
Grupo de Trabalho, Pseudo-equipe, Equipe Potencial, Equipe Real e Equipe de Alto
Desempenho. Na figura 3, são apresentados, através da curva de performance, os
estágios de desempenho dos grupos.
Figura 3 - Curva de Performance da Equipe [Katzenbach e Smith 1994]
A diferença entre os trabalhos relacionados e o trabalho proposto é que os trabalhos
relacionados focam na formação da equipe em si e não na sua capacitação, que é o
objetivo deste trabalho.
Em termos de contribuições práticas, este trabalho visa a auxiliar empresas e
universidades que atuam ou ensinam desenvolvimento de software, fornecendo uma
abordagem com as quais elas possam capacitar suas equipes, tornando-as mais
produtivas e de alto desempenho, com foco em capacitação e não somente em formação
de equipe.
6. Resultados Esperados
Como resultados esperados, pretendemos desenvolver uma abordagem metodológica de
capacitação, visando formar equipes de alto desempenho para o desenvolvimento de
software, que poderá ser aplicada tanto na academia, como na indústria, focado nas
características dos times de alto desempenho.
Referências Bibliográficas
ACM/IEEE. (2008) Computer Science Curriculum, Guidelines for Undergraduate
Degree Programs in Software Engineering.
ACM/IEEE. (2004) Software Engineering Curriculum. Guidelines for Undergraduate
Degree Programs in Software Engineering.
Beckman, K., Coulter, N., Khajenouri, S., Mead, N. (1997) “Collaborations: Closing the
industry–academia gap”. IEEE Software 14 (6), pp. 49–57.
69
XIII Workshop de Teses e Dissertações em Qualidade de Software
Boyett, J.H; Boyett, J.T. (1999) “O guia dos gurus: os melhores conceitos e práticas de
negócios. Rio de Janeiro: Campus.
Conn, R. (2002) “Developing Software Engineers at the C-130J Software Factory”.
IEEE Software,Los Alamitos, v. 19, n. 5, p. 25-29.
Dutra, A. C. S.; Prikladnicki, R.; Conte, T. U. (2015) “What Are the Main
Characteristics of High Performance Teams for Software Development?”. 17th
International Conference on Enterprise Information Systems (ICEIS).
Enricone, D. (2002) “Ser Professor”, 3a edição, EDIPUCRS.
Gibbs, W. (1994) “Software's chronic crisis”. Scientific American 2713, pp. 86–95.
Katzenbach, J. R; Smith D. K. (1994) “A Força e o Poder das Equipes”. São Paulo:
Makron Books do Brasil Editora Ltda.
Mafra, S., Barcelos, R., Travassos, G. H. (2006) “Aplicando uma Metodologia Baseada
em Evidência na Definição de Novas Tecnologias de Software”. Proceedings of the
20th Brazilian Symposium on Software Engineering (SBES 2006), v. 1, pp. 239 –
254, Florianopolis.
Moscovici, F. (2003) “Equipes dão certo: A multiplicação do Talento Humano”. Rio de
Janeiro: José Olympio, 8a edição.
Nearshore Americas. (2012) “Collaborate. Innovate. Accelerate. Creating successful
software requires a new model of development and a new kind of development
team”. Disponível online, acesso em Abril de 2012.
Prikladnicki, R., Albuquerque, A., Wangenheim C., Cabral R., (2009) “Ensino de
Engenharia de Software: Desafios, Estratégias de Ensino e Lições Aprendidas,” no
FEES.
Raj, P.P ; Baumotte A.C.T; Fonseca D.P.D; Silva, L.H.C.M. (2006) “Gerenciamento de
pessoas em projetos”. Rio de Janeiro : Editora FGV – Fundação Getúlio Vargas,
180p.
Roda, R. (2011) “Self-Organizing Agile Teams: A Grounded Theory”, Tese de
Doutorado, Victoria University of Wellington.
Saiedian, H. (1999) “Software engineering education and training for the next
millennium, Journal of Systems and Software”, v. 49, i. 2-3, p. 113-115
Santos, R. P., Santos, P. S. M., Werner, C. M. L., Travassos, G. H. (2008) “Utilizando
Experimentação para Apoiar a Pesquisa em Educação em Engenharia de Software no
Brasil”, Fórum de Educação em Engenharia de Software.
Shull, F.; Carver, J.; Travassos, G. H. (2001) “An empirical methodology for
introducing software processes”. SIGSOFT Softw. Eng. Notes, 26(5):288–296.
Sommerville, I. (2011) “Engenharia de Software” 9a edição. São Paulo: Pearson
Prentice Hall.
Tuckman, B.; Jensen, M. (1977) “Stages of small-group development revisited. Group
and Organization Studies”. v. 2, n. 4, p. 419.
Tuckman, B. (1965) “Developmental sequence in small groups. Psychological bulletin”
v. 63, n. 6, p. 384–399.
70
XIII Workshop de Teses e Dissertações em Qualidade de Software
Fatores Técnicos, Humanos e Organizacionais:
Qual Fator Prepondera na Produtividade do Programador de
Organizações de Software?
Edson Oliveira1, Marco Cristo1, Tayana Conte1
1
USES – Grupo de Pesquisa em Usabilidade e Engenharia de Software – Universidade
Federal do Amazonas (UFAM) – Manaus – AM – Brasil
{edson.cesar,marco.cristo,tayana}@icomp.ufam.edu.br
Abstract. Software organizations should invest in improving their
programmers to remain efficient and competitive. However, the establishment
of effective improvement practices must be based on the preponderant factors
that in fact have influence on the programmer’s productivity. Several works in
the literature have identified different factors that influence the programmer’s
productivity. This work aims to analyze technical, human and organizational
factors, and their influence on the productivity variation of programmers,
measured from data obtained in organization's software repositories.
Resumo. As organizações de software devem investir no aprimoramento de
seus programadores para se manterem eficientes e competitivas. Porém, a
criação de práticas de aprimoramento eficazes deve fundamentar-se nos
fatores preponderantes que exerçam influência de fato sobre a produtividade
do programador. Diversos trabalhos na literatura identificaram diferentes
fatores que exercem influência na produtividade do programador. Este
trabalho visa analisar os fatores técnicos, humanos e organizacionais e a sua
influência na variação da produtividade dos programadores, medida a partir
dos repositórios de software da organização.
1. Caracterização do Problema
A atividade de desenvolvimento de software tem sido caracterizada como uma atividade
essencialmente humana [Amrit et al. 2014]. Ulrich (1998) aponta que as organizações
de sucesso serão aquelas que melhor se adaptarem no recrutamento, aprimoramento e
retenção dos seus profissionais com as habilidades, perspectivas e experiências
necessárias para a organização. Uma década após, Guthridge et al. (2008) afirmam que
as organizações promovem a ideia de que seus profissionais são a sua maior fonte de
vantagem competitiva. Porém, a maioria das empresas ainda está despreparada para o
desafio de encontrar, motivar e reter os seus profissionais competentes [Guthridge et al.,
2008].
Portanto, nota-se uma necessidade de investimento das organizações de software
em práticas que possam não somente recrutar, mas principalmente aprimorar os seus
engenheiros de software, a fim de se manterem eficientes e competitivas. Os modelos de
processos People Capability Maturity Model (P-CMM) [Curtis et al. 2009] e Melhoria e
Processo do Software Brasileiro – Gestão de Pessoas (MR-MPS-RH) [Softex 2014]
foram criados com base nesta necessidade de gerir a relação das organizações de
software com os seus profissionais.
71
XIII Workshop de Teses e Dissertações em Qualidade de Software
Uma organização de software, ao implementar a recomendação de aprimorar
continuamente seus engenheiros de software, deve estabelecer práticas eficazes. Estas
práticas devem ser baseadas nos fatores preponderantes que possam de fato influenciar e
contribuir para o aprimoramento dos seus engenheiros. Na literatura encontramos
diferentes fatores que influenciam a produtividade do programador de software,
podendo serem agrupados em: (a) fatores humanos, como a personalidade do
programador [Cruz et al. 2011] e a sua motivação [França et al. 2011]; (b) fatores
técnicos, como o conhecimento técnico e experiência do programador [CMMI Product
Team 2010] associados a elementos como a linguagem de programação, a plataforma de
desenvolvimento, as ferramentas utilizadas, etc.; e (c) fatores organizacionais, como os
processos [Curtis et al. 2009] e a cultura organizacional [Mathew et al. 2012] e seus
impactos sobre o programador e suas atividades.
Este trabalho objetiva analisar e investigar a influência dos fatores técnicos,
humanos e organizacionais, na produtividade do programador de organizações de
software. A questão de pesquisa que este trabalho visa responder é:
•! Qual a preponderância entre os fatores técnicos, humanos e organizacionais na
influência sobre a produtividade dos programadores de uma organização de
software?
Além desta seção de caracterização do problema, este artigo está organizado da
seguinte forma: a Seção 2 apresenta a fundamentação teórica e os trabalhos
relacionados; a Seção 3 apresenta os objetivos; a Seção 4 apresenta o método de
pesquisa e o estado atual do trabalho; e a Seção 5 apresenta os resultados esperados e as
considerações finais.
2. Fundamentação Teórica e Trabalhos Relacionados
O desenvolvimento de projetos de software é uma atividade humana com extremas
incertezas desde o início [Trendowicz e Münch 2009], onde as pessoas são vistas como
a maior fonte de variação no desempenho de projetos de software. Provavelmente
devido a isso, o aprimoramento contínuo dos profissionais nas organizações de software
é uma das recomendações constantes nos diversos modelos de processos que surgiram
nas últimas décadas, tais como o MR-MPS-SW (Melhoria e Processo do Software
Brasileiro – Software), o MR-MPS-RH (Melhoria e Processo do Software Brasileiro –
Gestão de Pessoas), o CMMI (Capability Maturity Model Integration) e o P-CMM
(People Capability Maturity Model) [Josko e Cortez 2005]. Porém, para avaliar a
eficácia de qualquer prática adotada pela organização de software a fim de aprimorar a
produtividade dos seus engenheiros, é necessário medir a variação de produtividade
destes engenheiros [Fenton e Pfleeger 1998].
A produtividade de um programador pode ser conceitualmente definida como o
número de unidades de produto, representadas por métricas extraídas do código fonte,
desenvolvidas em uma unidade de esforço, representadas normalmente pelo tempo ou
custo [Mockus 2009]. Existem diversos trabalhos contendo variadas estratégias de
medição da produtividade [Petersen 2011]. Uma das estratégias envolve a medição
através das informações contidas no código fonte que se encontram frequentemente
armazenadas em repositórios de software da organização. Os dados contidos nestes
repositórios têm possibilitado a extração e mineração de informações que permitem uma
análise mais específica dos programadores [Moura et al. 2014]. Na literatura são
72
XIII Workshop de Teses e Dissertações em Qualidade de Software
encontrados trabalhos que mineram o desempenho individual em desenvolvimento
colaborativo [Zhang et al. 2008]; e que extraem métricas de repositórios de software
para comparação dos programadores [Moura et al. 2014].
Com base nas métricas extraídas dos repositórios de software, podemos
identificar indicadores de produtividade dos programadores das organizações de
software. Estes indicadores permitem caracterizar a variação da produtividade do
programador durante o desenvolvimento de software. Na literatura existem diversos
trabalhos que associam diferentes fatores à variação da produtividade do programador
[Cruz et al. 2015; Mathew et al. 2012; França et al. 2011; Trendowicz e Münch 2009],
tais como: personalidade, motivação, conhecimento, experiência, processo e cultura
organizacional, que neste trabalho são classificados como fatores humanos, técnicos e
organizacionais.
O conhecimento e a experiência nas tecnologias e ferramentas utilizadas durante
o desenvolvimento de software, como a linguagem de programação, são considerados
como o fator mais influente na produtividade de software [Trendowicz e Münch 2009].
Os fatores técnicos considerados neste trabalho referem-se à competência individual
adquirida pela educação especializada e à experiência na prática que um indivíduo
possua e deva desenvolver para realizar um tipo determinado de atribuição na
organização [Softex 2014; Curtis et al. 2009]. As organizações de software fazem as
suas definições de cargos e funções baseadas nestes fatores. Eles também servem de
requisitos para as vagas anunciadas para recrutamento de novos programadores.
Entre os fatores humanos a serem investigados estão a personalidade e a
motivação. Cruz et al. (2015) executaram um mapeamento sistemático sobre estudos
relacionados à personalidade na engenharia de software. A motivação é considerada por
pesquisadores e engenheiros de software como a fonte de muitos benefícios, tais como o
desempenho, a produtividade, a retenção e o sucesso [Beecham et al. 2008]. França et
al. (2011) fizeram uma revisão sistemática de literatura sobre a motivação e mostram
que entre os sinais externos da motivação por parte dos engenheiros de software estão a
produtividade e o sucesso do projeto.
Os fatores organizacionais investigados neste trabalho são a cultura
organizacional e a habilidade do programador relativa ao processo de software definido
pela organização. A cultura organizacional é definida como as crenças, valores e
premissas que são compartilhados pelos profissionais que influenciam as interações
entre eles e com o ambiente de uma organização de software [Kozlowski et al. 1993]. A
cultura organizacional é, portanto, um fator importante para a qualidade e produtividade
do trabalho de cada profissional, influenciando o desempenho financeiro de uma
organização [Mathew et al. 2012]. A influência do processo para o programador está na
capacidade do mesmo aplicar seus conhecimentos e realizar suas tarefas seguindo o
processo definido pela organização de software [Softex 2014].
Portanto, os fatores técnicos, humanos e organizacionais são relacionados na
literatura como fatores de influência sobre os programadores de uma organização de
software. A investigação empírica sobre a preponderância da influência que cada um
destes fatores exerce na variação de produtividade dos programadores de uma
organização de software constitui o tema principal deste trabalho.
73
XIII Workshop de Teses e Dissertações em Qualidade de Software
3. Objetivos
O objetivo geral desta pesquisa é investigar a preponderância entre os fatores técnicos,
humanos e organizacionais com relação à produtividade dos programadores de uma
organização de software. Os objetivos específicos deste trabalho são:
•! Definir um conjunto de métricas de produtividade para programadores, a partir
de métricas da literatura e da avaliação da percepção por parte da organização de
software;
•! Avaliar a influência dos fatores humanos (personalidade e motivação), a
influência dos fatores técnicos (conhecimento e experiência), e a influência dos
fatores organizacionais (processo e contexto organizacional) na produtividade do
programador de organizações de software;
•! Avaliar a preponderância entre os fatores pesquisados na produtividade do
programador de organizações de software.
4. Método de Pesquisa e Estado Atual do Trabalho
Fase 1
Warm-up
Para alcançar os objetivos propostos e responder as questões de pesquisa neste trabalho,
propomos a utilização de diversos métodos de pesquisa que estão descritos no plano de
pesquisa e ilustrados na Figura 1.
Estudos sobre Extração e
Mineração de Dados
Estudos sobre a influência
do Gerente do Projeto em
Projetos de Software
Estudos sobre a Gestão do
Conhecimento e Cultura
Organizacional em
Organizações de Software
Mapeamento Sistemático
das Métricas de
Produtividade
Avaliação in vivo das
Métricas de Produtividade
identificadas na Literatura
Análise e Definição das
Métricas de Produtividade
de Programadores
Fase 2
Métricas de
Produtividade de
Programadores
Estudo da Influência dos
Fatores Humanos
Estudo da Influência dos
Fatores Técnicos
Estudo da Influência dos
Fatores Organizacionais
Avaliação e Análise da Influência dos Fatores Pesquisados
Figura 1 – Plano de Pesquisa
74
XIII Workshop de Teses e Dissertações em Qualidade de Software
4.1 Warm-Up – Definição de Escopo e Motivação
Esta fase compreendeu estudos conduzidos antes da definição final do escopo deste
trabalho. Os Estudos sobre Extração e Mineração de Dados envolveram aprendizado e
implementação de técnicas de extração e mineração de dados utilizando algoritmos de
data mining e aprendizagem de máquina. Estas técnicas serão utilizadas na análise e
definição das métricas de produtividade dos programadores de uma organização de
software a partir dos seus repositórios.
Os Estudos sobre a influência do Gerente de Projeto em Projetos de Software
focaram-se em fatores humanos e suas influências nos projetos de software. Em
particular, estudou-se o quanto a personalidade [Myers 1962] e o papel de equipe de
Belbin [Belbin 2010] do gerente de projetos influenciam no esforço utilizado pelo
projeto de software. Como resultado destes estudos ocorreu a publicação de um artigo
em colaboração com outro pesquisador [Branco et al. 2015].
Foram realizados Estudos sobre a Gestão do Conhecimento e Cultura
Organizacional em Organizações de Software, focando na relação entre as práticas de
gestão de conhecimento adotadas com a cultura organizacional. Estes estudos, em
colaboração com outros pesquisadores, resultaram em outro artigo publicado [Rabelo et
al. 2015]. O aprendizado acumulado com a execução destes estudos, em conjunto com
os conhecimentos sobre extração e mineração de dados foram essenciais para fechar o
escopo e definir o tema principal deste trabalho, iniciando a Fase 1.
4.2 Fase 1 – Investigação da Produtividade do Programador a partir de
Repositórios de Software
Esta fase compreende a pesquisa por métricas de produtividade relacionadas com a
percepção de produtividade por parte da gerência de organizações de software. O
primeiro passo será a realização de um Mapeamento Sistemático sobre Métricas de
Produtividade existentes na literatura no contexto do desenvolvimento de software. As
métricas identificadas que sejam aplicáveis a programadores e que possam ser extraídas
a partir de repositórios de software serão selecionadas para o próximo estudo.
A Avaliação In Vivo das Métricas Identificadas na Literatura investigará a
relação entre a percepção de produtividade dos líderes quanto a sua equipe de
programadores, com as métricas de produtividade selecionadas. Para cada equipe, será
coletado junto ao líder sua percepção de ranking dos seus programadores, ordenados do
mais produtivo para o menos produtivo, e também uma divisão deste ranking em três
grupos, que aqui chamaremos de: os mais produtivos, os produtivos e os regulares. As
métricas extraídas de produtividade dos programadores serão utilizadas para criação,
por equipe, também de um ranking e de grupos utilizando um algoritmo de clustering.
As métricas serão então avaliadas quanto a similaridade entre os rankings utilizando
Kendall Tau Rank [Kendall 1938], e quanto a similaridade entre os grupos utilizando o
Fowlkes-Mallows index [Fowlkes e Mallows 1983].
Após o resultado da investigação anterior, será executada a Análise e Definição
das Métricas de Produtividade de Programadores. Esta atividade analisará através dos
resultados das similaridades entre as métricas e a percepção dos líderes de equipe, quais
métricas se destacam por equipe, se a mesma métrica se destaca em mais de uma
equipe, e se isso também ocorre por organização. Após esta análise, serão definidas uma
75
XIII Workshop de Teses e Dissertações em Qualidade de Software
ou mais métricas que melhor descrevam a percepção de produtividade dos
programadores. Com esta definição, iniciará a Fase 2.
4.3 Fase 2 – Investigação da Influência dos Fatores Humanos, Técnicos e
Organizacionais
Esta fase investigará a influência dos fatores humanos, técnicos e organizacionais sobre
as métricas de produtividade definidas na fase anterior, com o objetivo de estudar as
suas relações de influência sobre a produtividade dos programadores de uma
organização de software.
O Estudo Qualitativo da Influência dos Fatores Humanos na Produtividade dos
Programadores investigará especificamente a personalidade e a motivação; O Estudo
Qualitativo da Influência dos Fatores Técnicos na Produtividade dos Programadores,
por sua vez, investigará a influência do conhecimento e da experiência; e o Estudo
Qualitativo da Influência dos Fatores Organizacionais na Produtividade dos
Programadores investigará as habilidades nos processos organizacionais e a cultura
organizacional. O objetivo de cada estudo é analisar a influência, pela correlação
estatística, entre os fatores e as métricas de produtividade extraídas dos repositórios da
organização. Analisaremos, por exemplo nos fatores humanos, se existem determinados
tipos de personalidades que possuam maior influência do que outras na variação da
produtividade do programador.
Por fim, a Avaliação e Análise da Influência dos Fatores Pesquisados deste
trabalho, visa explorar a preponderância entre os fatores pesquisados dentro das
observações coletadas. Os dados serão explorados utilizando técnicas estatísticas do
modelo linear generalizado, tais como a análise de fatores e a análise de componentes
principais. Também serão exploradas técnicas mais recentes utilizadas na área de
aprendizagem de máquina como a análise multivariada t-SNE. O resultado destas
análises ajudarão na compreensão da relação de preponderância entre os fatores, e desta
forma contribuirão para a construção da resposta à nossa questão de pesquisa.
No momento, estamos analisando as extrações do mapeamento sistemático sobre
métricas de produtividade encontradas na literatura. Além disso, coletamos alguns de
repositórios de software de projetos de duas organizações de software para testar nossas
rotinas de extração de métricas de produtividade a partir de repositórios de software.
5. Resultados Esperados e Considerações Finais
Ao final deste trabalho espera-se obter as seguintes contribuições:
•! Mostrar quais métricas de produtividade do programador melhor refletem as
percepções dos líderes e gerentes de organizações de software, a partir de dados
reais coletados nos repositórios de software da organização;
•! Avaliar a influência de cada fator técnico, humano e organizacional pesquisado
sobre a produtividade do programador da organização de software;
•! Avaliar e ponderar quais dos fatores pesquisados tem maior impacto, ou seja,
tem maior explicação na variação da produtividade do programador.
Espera-se que os resultados deste trabalho a longo prazo, além de viabilizar mais
pesquisas sobre os fatores relacionados à produtividade do programador, fundamentem
76
XIII Workshop de Teses e Dissertações em Qualidade de Software
a criação de melhores práticas que facilitem o aprimoramento dos programadores, com
reflexos nos indivíduos, nas equipes e nas organizações de software.
Referencias
Amrit, C., Daneva, M., e Damian, D. (2014). “Human factors in software development:
On its underlying theories and the value of learning from related disciplines; A Guest
Editorial Introduction to the Special Issue”. Information and Software Technology
(IST). n. 56, v. 12. p. 1537-1542.
Beecham, S., Baddoo, N., Hall, T., Robinson, H., e Sharp, H. (2008). “Motivation in
Software Engineering: A systematic literature review”. Information and Software
Technology (IST), v. 50, n. 9, p. 860-878.
Belbin, R., (2010). “Management Teams: Why they succeed or Fail”. 3rd Edition.
Elsevier Butterworth-Heinemann Ltd.
Branco, D., Oliveira, E., Galvao, L., Prikladnicki, R. , e Conte, T. (2015). “An empirical
study
about
the
influence
of
project
manager
personality
in software project effort”. In 16th International Conference on Enterprise
Information Systems (ICEIS 2014), p. 102-113.
CMMI Product Team (2010). “CMMI for Development version 1.3 – Improving
processes for developing better products and services”. SEI Report CMU/SEI-2010TR-033.
Cruz, S. S. J. O., da Silva, F. Q., Monteiro, C. V., Santos, C. F., e Dos Santos, M. T.
(2011). “Personality in software engineering: Preliminary findings from a systematic
literature review”. In Evaluation & Assessment in Software Engineering (EASE
2011), 15th Annual Conference on, p. 1-10.
Cruz, S., da Silva, F. Q., e Capretz, L. F. (2015). “Forty years of research on personality
in software engineering: A mapping study”. Computers in Human Behavior, v. 46, p.
94-113.
Curtis, B., Hefley, B., e Miller, S. (2009). “People Capability Maturity Model (P-CMM)
Version 2.0”. CARNEGIE-MELLON UNIV PITTSBURGH PA SOFTWARE
ENGINEERING INST.
Fenton, N. E., e Pfleeger, S. L. (1998). Software Metrics: A Rigorous and Practical
Approach. PWS, London, 1997.
Fowlkes, E. B., e Mallows, C. L. (1983). "A method for comparing two hierarchical
clusterings". Journal of the American statistical association, n. 383, v. 78, pp. 553569.
França, A. C. C., Gouveia, T. B., Santos, P. C., Santana, C. A., e da Silva, F. Q. (2011).
“Motivation in software engineering: A systematic review update”. In Evaluation &
Assessment in Software Engineering (EASE 2011), 15th Annual Conference on, p.
154-163.
Guthridge, M., Komm, A. B., e Lawson, E. (2008). “Making talent a strategic
priority”. The McKinsey Quarterly, v. 1, p. 49-59.
77
XIII Workshop de Teses e Dissertações em Qualidade de Software
Josko, J. M. B., e Côrtez, M. L. (2005). “P-CMM e outros modelos na Gestão de
Pessoas”. VII Simpósio Internacional de Melhoria de Processos (SIMPROS).
http://www.simpros.com.br/simpros2005/upload/a04_2_artigo14181.pdf
Kendall, M. G. (1938). "A new measure of rank correlation. Biometrika". n. 1/2, v. 30,
pp. 81-93.
Kozlowski, S. W., Chao, G. T., Smith, E. M., e Hedlund, J. (1993). “Organizational
downsizing: Strategies, interventions, and research implications”. International
review of industrial and organizational psychology, v. 8, n. 8, p. 263-332.
Mathew, J., Ogbonna, E., e Harris, L. C. (2012). “Culture, employee work outcomes
and performance: An empirical analysis of Indian software firms”. Journal of World
Business, v. 47, n. 2, p. 194-203.
Mockus, A. (2009). “Succession: Measuring transfer of code and developer
productivity”. In Proceedings of the 31st International Conference on Software
Engineering. IEEE Computer Society. p. 67-77.
Moura, M. H. D. De, Nascimento, H. A. D. Do, e Rosa, T. C. (2014). “Extracting New
Metrics from Version Control System for the Comparison of Software Developers”.
Simpósio Brasileiro de Software (SBES 2014), p. 41–50.
Myers, I. B. (1962). “The Myers-Briggs Type Indicator” (1962). Consulting
Psychologists Press, Palo Alto, CA.
Petersen, K. (2011). “Measuring and predicting software productivity: A systematic
map and review”. Information and Software Technology (IST), n. 53, v. 4, p. 317343.
Rabelo, J., Oliveira, E., Viana, D., Braga, L., Santos, G., Steinmacher, I., Conte, T.
2015. “Knowledge Management and Organizational Culture in a Software
Organization – a Case Study”. In: 8th International Workshop on Cooperative and
Human Aspects of Software Engineering (CHASE 2015) - ICSE Workshop,
Florence, Italy (artigo aceito para publicação).
Softex (2014). “MPS.BR - Melhoria de Processo do Software Brasileiro, Guia Geral
MPS de Gestão de Pessoas”. MR-MPS-RH:2014. http://www.softex.br/wpcontent/uploads/2013/07/ MPS.BR_Guia_Geral_RH_2014_Versao_Beta-1.pdf
Trendowicz, A., e Münch, J. (2009). “Factors Influencing Software Development
Productivity – State-of-the-Art and Industrial Experiences”. Advances in
Computers, v. 77, p. 185-241.
Ulrich, D. (1998). “A new mandate for human resources”. Harvard Business Review, v.
76, p. 124-134.
Witten, I. H., e Frank, E. (2005). "Data Mining: Practical machine learning tools and
techniques". Morgan Kaufmann.
Zhang, S. Z. S., Wang, Y. W. Y., e Xiao, J. X. J. (2008). “Mining Individual
Performance Indicators in Collaborative Development Using Software Repositories”.
15th Asia-Pacific Software Engineering Conference (APSEC 2008). p. 247–254.
78
XIII Workshop de Teses e Dissertações em Qualidade de Software
Framework de Gerência do Conhecimento e Aprendizagem
Organizacional com Fatores de Influência para Organizações
de Software
Jacilane Rabelo, Tayana Conte
Grupo de Usabilidade e Engenharia de Software (USES) – Programa de Pós-graduação
em Informática (PPGI) – Universidade Federal do Amazonas (UFAM), Manaus – AM –
Brasil
{jaci.rabelo, tayana}@icomp.ufam.edu.br
Abstract. Proper knowledge management has become a real need in the
software development industry. The organizational learning aims to promote
individual learning, knowledge collection and to encourage the creation of an
infrastructure for knowledge sharing. The influencing factors of knowledge
management refer to organizational infrastructure to improve the efficiency of
knowledge management activities. This doctorate research aims to investigate
the factors that can influence knowledge management and organizational
learning initiatives in the software industry. One of the first factors
investigated was the Organizational Culture. The Organizational Culture
influences how the organization's employees learn, acquire and share
knowledge. We also have defined the first version of the framework called
Influence Factor in Knowledge and Learning (IFactor-KL). This framework
contains components to promote organizational learning and knowledge
management in software organizations aiming to improve their processes,
showing the factors that influence these initiatives.
Resumo. A gestão adequada do conhecimento tornou-se uma necessidade real
na indústria de desenvolvimento de software. A aprendizagem organizacional
visa estimular a aprendizagem individual, coletar o conhecimento e incentivar
a criação de uma infraestrutura para compartilhamento de conhecimento. Os
fatores de influência da gestão do conhecimento referem-se à infraestrutura
organizacional para melhorar a eficiência das atividades relacionadas ao
gerenciamento do conhecimento. Esta pesquisa de doutorado objetiva
investigar os fatores que podem influenciar as iniciativas de gestão de
conhecimento e aprendizagem organizacional na indústria de software. Um
dos primeiros fatores investigados foi a Cultura Organizacional. A Cultura
Organizacional influencia a forma como os colaboradores da organização
aprendem, adquirem e compartilham o conhecimento. Foi também definida a
primeira versão do framework chamado Influence Factors in Knowledge and
Learning (IFactor-KL)(em português, Fatores de Influência em gestão do
Conhecimento e Aprendizagem) que contém componentes para estimular a
aprendizagem organizacional e gerência do conhecimento em organizações de
software que buscam melhorar seus processos, mostrando os fatores que
podem influenciar essas iniciativas.
79
XIII Workshop de Teses e Dissertações em Qualidade de Software
1. Caracterização do Problema
O conhecimento que uma organização consegue deter e sua capacidade de criar e
utilizar esse conhecimento é a habilidade central para manter uma vantagem competitiva
e inovar [Takeuchi e Nonaka, 2008]. Em organizações de software, a Gerência do
Conhecimento (GC) é vista como uma oportunidade para criar uma linguagem comum
de entendimento entre desenvolvedores de software, para que eles possam interagir,
negociar e compartilhar conhecimentos e experiências [Rus et al., 2001].
Além do tratamento provido pela GC, é necessário estimular a aprendizagem
desses conhecimentos. Dibella e Nevis (1999) afirmam que a Aprendizagem
Organizacional (AO) é a capacidade ou processo que a organização possui para manter
ou melhorar o desempenho baseado na experiência adquirida. A aprendizagem é
essencial para organizações de software, sendo consideradas Organizações de Software
de Aprendizagem (do inglês, Learning Software Organizations - LSO) [Ruhe e
Bomarius, 2000]. Segundo Ruhe (2001), as LSOs são organizações que aprendem no
contexto de desenvolvimento, evolução e aplicação de software.
Moffett et al. (2002) afirmam que muitas organizações têm dúvidas de qual
abordagem adotar em suas iniciativas de GC. Pesquisas têm sido realizadas para
identificar os fatores que afetam a implementação de uma GC bem-sucedida, além de
verificar como esses fatores podem aumentar a inovação e melhoria do desempenho
organizacional [AL-Hakim e Hassan, 2012]. Os fatores de influência, neste contexto,
podem ser definidos como os fatores gerenciais e organizacionais que precisam ser
tratados de forma eficaz, a fim de aumentar as probabilidades de implementação de GC
com sucesso [Asoh et al., 2007].
O trabalho de Viana (2015) apresenta o framework KL-SPI (Knowledge and
Learning to Facilitate Software Process Improvement) que visa facilitar a aprendizagem
organizacional e gerência de conhecimento em organizações de software que estejam
inseridas no contexto de melhorias de processo de software. Embora o trabalho de Viana
(2015) auxilie as organizações na identificação das práticas correntes de AO e GC e
sugira práticas que essas organizações possam utilizar, a versão proposta deste
framework não considera as características de cada organização. Wong (2005) afirma
que as organizações que buscam implementar GC com sucesso devem considerar o
desenvolvimento e compreensão dos fatores de influência. Na mesma linha, segundo
Al-Mabrouk (2006), as organizações podem se beneficiar de um entendimento mais
amplo desses fatores, que são fundamentais para o sucesso da GC. No entanto, a adoção
de fatores que não são apropriados pode dificultar o desempenho desejado. Logo, é
necessário sugerir práticas para as organizações considerando os fatores que influenciam
essas iniciativas para cada organização em questão.
Alguns trabalhos da literatura mostram investigações dos fatores que
influenciam a gerência de conhecimento nas organizações [Yaghoubi e Maleki, 2012;
AL-Hakim e Hassan, 2012; Hsieh, 2007; Choi, 2002]. Porém, esses trabalhos não
sugerem práticas de GC e AO que podem ser empregadas nessas organizações. Esta
pesquisa de doutorado se diferencia dos demais trabalhos citados, pois, se pretende
sugerir práticas para iniciativas de GC e AO em Organizações de Software considerando
os fatores que influenciam essas iniciativas.
80
XIII Workshop de Teses e Dissertações em Qualidade de Software
Desta forma, a questão que norteia esta pesquisa de Doutorado é: “Como
auxiliar as iniciativas de Gerência de Conhecimento e Aprendizagem Organizacional
em organizações de software considerando os fatores que podem influenciar essas
iniciativas em cada organização?”. A questão secundária da pesquisa é: “Quais são os
fatores específicos de organizações de software que podem influenciar as iniciativas de
GC e AO em Organizações de Software?”. Espera-se que, ao responder essas questões,
seja possível contribuir com as iniciativas de GC e AO considerando os fatores
específicos das organizações de software.
Alinhado às questões de pesquisa apresentadas anteriormente, o objetivo geral
deste trabalho consiste em: Investigar os fatores específicos que podem influenciar as
iniciativas de GC e AO em organizações de software e sugerir para as organizações
práticas que possam auxiliar nessas iniciativas. Nessa investigação serão verificados os
fatores que podem influenciar (positiva e/ou negativamente) GC e AO em Engenharia
de Software. Para alcançar este objetivo geral, buscou-se decompô-lo nos seguintes
objetivos específicos: (a) entender o corpo de conhecimento a respeito de abordagens de
AO e/ou GC aplicáveis em organizações de software; (b) identificar um conjunto de
fatores que influenciam as práticas de GC e AO em organizações de software; (c)
investigar como os fatores identificados influenciam as iniciativas de GC e AO nas
organizações de software; (d) evoluir e avaliar o framework de apoio às práticas de GC e
AO associando aos fatores que influenciam essas iniciativas nas organizações de
software.
2. Fundamentação Teórica e Trabalhos Relacionados
Devido à grande competitividade das empresas, ao avanço das tecnologias e à
necessidade de suprir o mercado em tempo hábil, o tratamento do conhecimento tornase uma medida estratégica importante para se manter no mercado [Santos-Vijande et al.,
2012]. Os líderes das organizações buscam as razões e os principais fatores de sucesso
na iniciativa de um sistema de gerência do conhecimento para executá-lo em suas
organizações [Yaghoubi e Maleki, 2012].
Segundo Zack (2002), estratégias de GC são planos de alto nível que descrevem
processos, ferramentas e infraestrutura (organizacional e tecnológica) necessárias para
gerenciar as lacunas de conhecimento ou excessos, e para permitir que o conhecimento
flua de forma eficaz em organizações. Para Chan e Chau (2005), as estratégias de GC
podem encapsular e identificar estratégias de direcionamento nas atividades de GC, e os
facilitadores de GC são os meios que podem facilitar essas atividades.
Diversos trabalhos da literatura têm investigados quais são os facilitadores que
influenciam a implementação de GC [AL-Hakim e Hassan, 2012; Yaghoubi e Maleki,
2012; Hsieh,2007; Mathi, 2004; Zack, 2002; Choi, 2002]. Por exemplo, Mathi (2004)
identifica que os principais fatores de sucesso da implementação de GC nas
organizações são a cultura, estratégia de GC, sistemas e infraestrutura de Tecnologia da
Informação (TI), processos e medidas eficazes e sistemáticas. Choi (2002) realizou uma
pesquisa empírica para verificar a relação entre estratégias de GC, processo de criação
de conhecimento, e desempenho organizacional. O processo de criação de conhecimento
foi classificado utilizando o modelo SECI (socialização, externalização, combinação e
internalização) de Nonaka e Takeuchi (1995). O trabalho de Hsieh (2007) realizou um
81
XIII Workshop de Teses e Dissertações em Qualidade de Software
estudo para verificar a relação entre estratégias de GC, facilitadores de GC, capacidade
do processo de GC, desempenho de GC e características organizacionais.
Os autores AL-Hakim e Hassan (2012) conduziram uma pesquisa de opinião
para examinar a relação entre os fatores críticos de sucesso da gerência de
conhecimento, inovação e desempenho organizacional, em particular no setor de
telecomunicações móveis iraquiana. O objetivo do estudo era abordar os fatores críticos
de sucessos para GC, aumentar a inovação e melhorar o desempenho organizacional. Os
autores apresentam uma tabela com os resultados da pesquisa sobre fatores de influência
para GC.
3. Metodologia e Estado Atual do Trabalho
Este trabalho considera o ponto de vista dos colaboradores envolvidos com atividades
que exigem o gerenciamento e aprendizagem do conhecimento relevantes. Portanto,
entrevistas semiestruturas, questionários de avaliação e estudos experimentais serão
conduzidos em organizações de software. Os procedimentos metodológicos para
elaboração deste trabalho estão de acordo com as etapas apresentadas na Figura 1 e
detalhadas a seguir:
Figura 1. Definição da Metodologia de Pesquisa
1. Revisão da Literatura sobre Fatores de Influência de GC e AO em Organizações de
Software – análise dos fatores sugeridos pela literatura e seus métodos de avaliação.
Esses fatores irão auxiliar na execução desta pesquisa e na definição do framework
proposto;
2. Condução de Investigações do estado da Prática em AO e GC – análise dos fatores
que influenciam a GC e AO em organizações de software e das iniciativas de GC e
AO praticadas por essas organizações. Essa análise será feita no contexto de
melhoria de processo de software (com ou sem processo definido). Os resultados
desses estudos vão apoiar a definição dos componentes do framework proposto;
82
XIII Workshop de Teses e Dissertações em Qualidade de Software
3. Definição do framework IFactor-KL (Influence Factors in Knowledge and
Learning) proposto nesta pesquisa. Este framework visa identificar os fatores de
influência da organização, apoiar o diagnóstico do estado da prática e auxiliar na
inserção de práticas de AO e GC nas organizações de software. O framework
Ifactor-KL contém três componentes. Estes componentes serão detalhados na Seção
4.3.
No estágio atual do trabalho estão sendo definidos os fatores de influência para
as iniciativas de GC e AO. Com base na revisão da literatura já foi definida a utilização
de: (a) Processo de GC com base no ciclo de conhecimento SECI [Nonaka e Takeuchi,
1995]; (b) Cultura Organizacional [Choi, 2002; Cameron e Quinn, 2006]; (c) Estrutura
Organizacional (Centralização e Formalização) [Choi, 2002]; (d) Sistema de TI [Choi,
2002]. Além disso, está sendo desenvolvido um apoio ferramental para avaliar a cultura
organizacional e um estudo experimental está sendo planejado para verificar o estado da
prática desses fatores em uma organização de software.
4. Resultados Esperados e Contribuições Parciais
O principal resultado esperado deste trabalho será a definição de um framework para
gerenciamento do conhecimento e aprendizagem organizacional para apoiar essas
iniciativas em organizações de software. Na definição do framework serão considerados
os fatores que podem influenciar essas iniciativas de GC e AO em organizações de
software. Além disso, um conjunto de práticas de GC e AO também será associado a
esses fatores de influência. Para alcançar essa meta, resultados são esperados e
detalhados a seguir.
4.1. Fatores de Influência e Abordagens de Gerência de Conhecimento e
Aprendizagem Organizacional
Uma pesquisa da literatura está sendo conduzida para definir os fatores de influência de
GC e AO. Inicialmente foi identificado um trabalho da literatura que lista outros
trabalhos sobre fatores de influência de GC [AL-Hakim e Hassan, 2012]. Buscando
identificar esses fatores e de que forma eles foram avaliados, para cada um dos trabalhos
listados por AL-Hakim e Hassan (2012), as seguintes informações foram extraídas: a)
contexto de utilização do fator: descreve em que contexto o fator foi aplicado na
pesquisa; b) questionário de avaliação: verifica se o trabalho mostra o questionário
utilizado em estudos; c) base da literatura do questionário: identifica se o questionário já
foi utilizado em trabalhos anteriores ou se foi criado pelos autores da publicação; d)
validade estatística: verifica se o questionário foi validado e quais testes estatísticos
foram aplicados; e) perguntas do questionário: descrição das questões de cada fator.
Além disso, também é feita a contagem de quantas vezes o fator é citado, e de quantas
vezes a referência base do questionário foi utilizada.
Os resultados desta pesquisa estão contribuindo para a criação do corpo de
conhecimento sobre os fatores de influência, além de identificar a forma de avaliar cada
um desses fatores. Os questionários identificados com base na literatura serão utilizados
posteriormente na investigação do estado da prática em organizações de software.
Um dos primeiros fatores que está sendo investigado nesta pesquisa de
Doutorado é a Cultura Organizacional (CO). A CO influencia a forma como os
83
XIII Workshop de Teses e Dissertações em Qualidade de Software
colaboradores da organização aprendem, adquirem e compartilham o conhecimento. Um
estudo de caso foi conduzido em uma organização de software para verificar a relação
entre o ciclo de Gerência de Conhecimento (modelo SECI) de Nonaka e Takeuchi
(1995) e a Cultura Organizacional por meio do Competing Values Framework (CVF)
[Cameron e Quinn, 2006]. Os resultados desse estudo foram publicados em [Rabelo et
al., 2015].
No trabalho de Viana (2015), através de um mapeamento sistemático da
literatura, foi definido um conjunto de tecnologias de gerência do conhecimento e/ou
aprendizagem organizacional que são aplicáveis em organizações de software. Essas
abordagens tratam, em sua maioria, do armazenamento do conhecimento da
organização. Viana (2015) também realizou a inclusão manual de alguns trabalhos
relacionados a Aprendizagem Organizacional apresentados na pesquisa de Menolli
[Menolli, 2013]. Os resultados do Mapeamento Sistemático de Viana (2015) também
fazem parte dessa Pesquisa de Doutorado, pois houve colaboração ativamente entre os
dois pesquisadores na extração dos dados.
4.2. Condução de Investigações sobre Ferramentas/abordagens de Apoio à
Gerência do Conhecimento e Aprendizagem Organizacional
As ferramentas/abordagens de apoio buscam auxiliar a organização e disseminar o
conhecimento na organização. Essas ferramentas/abordagens estão sendo desenvolvidas
no contexto do subgrupo de pesquisa sobre Learning Software Organizations do grupo
de pesquisa de Usabilidade e Engenharia de Software (USES) da UFAM.
No presente momento, está sendo elaborado o apoio ferramental para avaliar o
Perfil Cultural da Organização com base no formulário OCAI [Cameron e Quinn, 2006].
Esse formulário é útil para capturar o perfil atual e preferido da organização de software.
No escopo desta pesquisa, o formulário OCAI já foi utilizado no estudo de caso
publicado em [Rabelo et al., 2015].
Uma abordagem já desenvolvida e avaliada experimentalmente é a PABCPattern – Problema, Ação, Benefício, Contexto - Padrão [Rabelo et al., 2014]. Essa
abordagem, desenvolvida por esta aluna de doutorado, visa facilitar a codificação de
lições aprendidas em organizações de software. Foram realizados dois estudos
experimentais que evoluíram a abordagem para chegar ao modelo atual. Outras
ferramentas/abordagens estão sendo analisadas visando tanto auxiliar a aprendizagem de
conhecimentos explícitos quanto incentivar a troca de conhecimento tácito.
4.3. Definição Inicial do Framework
Os componentes do framework de fatores de influência para gerência de conhecimento e
aprendizagem organizacional em organizações de software são mostrados na Figura 1.
Esse framework possui componentes que auxiliam a capturar as características da
organização com base em fatores de influência de GC e AO, apoiar o diagnóstico do
estado da prática e sugerir práticas de AO e GC para serem executadas, e sugerir
ferramentas de apoio.
Os componentes do framework IFactor-KL são: (1) diagnóstico do estado da
prática de AO e GC relacionado aos fatores de influência: questionários serão utilizados
para capturar as características da organização em relação aos fatores de influência
84
XIII Workshop de Teses e Dissertações em Qualidade de Software
definidos para GC e AO. Além disso, um processo será definido para a realização desse
diagnóstico; (2) catálogo de práticas de AO e GC relacionado aos fatores de influência:
o trabalho de Viana (2015) não considerou os fatores de influência de GC e AO na
catalogação das práticas. Nesta pesquisa de Doutorado, as práticas serão associadas aos
fatores que podem influenciar as iniciativas de GC e AO nas organizações de software.
Este objetivo visa garantir que as organizações possam utilizar práticas que irão atender
às suas necessidades reais; (3) ferramentas/sistemas para auxiliar AO e GC relacionadas
aos fatores de influência: apoios serão desenvolvidos para auxiliar as atividades de
aprendizagem organizacional e gerência do conhecimento na organização. O primeiro
apoio ferramental que está sendo desenvolvido é o que avalia o perfil cultural da
organização.
Agradecimentos
Os autores agradecem o apoio concedido pela: CAPES (Doutorado); FAPEAM por
meio do Projeto PROTI-Mobilidade sob o processo n. 062.00600/2014.
5. Referências
Al-Hakim, L., Hassan, S. 2012. Critical Success Factors of Knowledge Management,
Innovation and Organizational Performance: An Empirical Study of the Iraqi Mobile
Telecommunication Sector". In: British Journal of Economics, Finance and
Management Sciences, v. 4(1), p. 31-49.
Al-Mabrouk, K., 2006, "Critical Success Factors Affecting Knowledge Management
Adoption: A review of the Literature". IEEE Xplore, p. 1-6.
Asoh, D. A., Belardo, S., Crnkovic, J. 2007. Assessing Knowledge Management:
Refining and Cross Validating the Knowledge Management Index using SEM
Techniques. In: International Journal of Knowledge Management, 3(2), p. 1-30.
Cameron, K. S., Quinn, R. E. 2006. Diagnosing and Changing Organizational Culture",
The Jossey-Bass Business & Management Series, Revised Ed., 259 p.
Chan, L., Chau, P. Y. K. 2005. Getting Knowledge Management Right: Lessons from
Failure. In: The International Journal Knowledge Management, 1(3), p. 40 -54.
Choi, B. 2002. Knowledge Management Enablers, Process, and Organizational
Performance: an Integration and Empirical Examination. Unpublished doctoral
dissertation, Korea Advanced Institute of Science and Technology, Korea, 213 p.
Dibella, J., Nevis, C. 1999. Como as Organizações Aprendem: uma Estratégia Integrada
voltada para a Construção da Capacidade de Aprendizagem. São Paulo: Educator,
228p.
Hsieh, J. H. 2007. Organizational Characteristics, Knowledge Management Strategy,
Enablers, and Process Capability: Knowledge Management Performance in US
Software Companies. Unpublished doctoral dissertation. Lynn University, Florida,
224 p.
Mathi K. 2004. Key Success Factors for Knowledge Management, MBA: International
Business Management& Consulting, Unpublished masther thesis, Lindau, Germany,
102 p.
85
XIII Workshop de Teses e Dissertações em Qualidade de Software
Menolli, A. L., Reinehr, S. Malucelli, A. 2013. Organizational Learning Applied to
Software Engineering: A Systematic Review. In: International Journal of Software
Engineering and Knowledge Engineering, v. 23, n. 8, p. 1153 – 1175.
Moffett, S., McAdam, R. and Parkinson, S. 2002. Developing a Model for Technology
and Cultural Factors in Knowledge Management: a Factor Analysis. In: Knowledge
and Process Management, v. 9, n. 4, p. 237-55.
Nonaka, I., Takeuchi, H. 1995. The Knowledge-Creating Company, 17th ed. Oxford
Oxford, 304 p.
Rabelo, J., Oliveira, E., Viana, D., Braga, L., Santos, G., Steinmacher, I., Conte, T.
2015. Knowledge Management and Organizational Culture in a Software
Organization – a Case Study. In: 8th International Workshop on Cooperative and
Human Aspects of Software Engineering (CHASE 2015) - ICSE Workshop,
Florence, Italy, p. 89-92.
Rabelo, J., Viana, D., Santos, G., Conte, T. 20014. Usando PABC-Pattern para
Codificar o Conhecimento: Um estudo Experimental. In: Simpósio Brasileiro de
Qualidade de Software - SBQS, 2014, Blumenau. Simpósio Brasileiro de Qualidade
de Software, v. 1. p. 1-15.
Ruhe, G., 2001, "Learning Software Organisations", Handbook of Software Engineering
and Knowledge Engineering (S.K. Chang, ed.), World Scientific Publishing 2001, p.
663 – 678.
Ruhe, G., Bomarius, F., 2000, Learning Software Organization - Methodology and
Applications, Springer, 230 p.
Rus, I., Lindvall, M., Sinha, S. S. 2001. Knowledge management in software
engineering. DACS state of the art report (SOAR). Disponível em:
https://www.csiac.org/sites/default/files/KM%20in%20SWE%20-%20SOAR.pdf, 57
p.
Santos-Vijande, M.L., López-Sánchez, J.Á., Trespalacios, J.A. 2012. How
Organizational Learning Affects a Firm's Flexibility, Competitive Strategy, and
Performance. In: Journal of Business Research, v. 65, n. 8 (8), p. 1079-1089.
Takeuchi, H., Nonaka, I. 2008. Gestão do Conhecimento", Porto Alegre: Bookman, 319
p.
Viana, D. 2015. Facilitando a Aprendizagem Organizacional em Melhoria de Processo
de Software". Tese de Doutorado em Informática. Programa de Pós-Graduação em
Informática. Universidade Federal do Amazonas, 435 p.
Wong, K. Y. 2005. Critical Success Factors for Implementing Knowledge Management
in Small and Medium Enterprises. In: Industrial Management & Data Systems, v. 105
(3), p.261 – 279.
Yaghoubi, N.M., Maleki, N. 2012. Critical Success Factors of Knowledge Management
(A Case Study: Zahedan Electric Distribution Company). In: Journal of Basic and
Applied Scientific Research, v. 2, n. 12, p. 12024-12030.
Zack, M.H. 2002. Developing a Knowledge Strategy: Epilogue. Retrieved July 26,
2005, http://web.cba.neu.edu/~mzack/articles/kstrat2/kstrat2.htm.
86

Documentos relacionados