Gestão do Conhecimento e Dasenvolvimento de Software Gabriel Gavasso 1 Anderson R. Yanzer Cabral 2 Resumo: Gerenciar o conhecimento nas organizações tem se tornado um grande desafio, visto a grande importância que o conhecimento tem quando tratamos de vantagem competitiva e diminuição dos ciclos vida de seus produtos e serviços. Observa-se uma grande preocupação das organizações em gerenciar seu conhecimento e seus ativos intelectuais, afim de contribuir para a sua produtividade e inovação. Em empresas que trabalham com desenvolvimento de software, esta situação não é diferente, onde a necessidade de produtividade e de manter-se na vanguarda tecnológica às vezes é muito grande. A Gestão do Conhecimento no Processo de Desenvolvimento de Software pode trazer alguns desses benefícios, através de metodologias que combinem técnicas e tecnologias benéficas que contribuam para os processos internos da empresa. Esse trabalho visa então fornecer um referencial teórico acerca da relação entre Gestão do Conhecimento e Desenvolvimento de Software. Introdução Gerenciar o conhecimento durante o processo de desenvolvimento de software pode ser justificado por ser uma atividade essencialmente humana e que utiliza intensamente o conhecimento (BIRK et. al. apud RUS et. al., 1999). Similar a outras áreas, umas das principais vantagens competitivas de uma organização que desenvolve software é o seu capital intelectual. RUS et. al. (2001), em seus estudos, afirmam que as atividades de desenvolvimento de software envolvem um grande número de decisões, que podem ser desde um analista que define um algoritmo eficiente a ser utilizado, ao programador que define as variáveis e funções que serão utilizadas, até o testador que seleciona os casos de teste. Essas decisões são baseadas na experiência pessoal e sensações de cada profissional envolvido. Porém os 1 Acadêmico do Curso de Sistemas de Informação da ULBRA Guaíba,< gabriel@holic.com.br > 2 Professor Orientador do Curso de Sistemas de Informação da ULBRA Guaíba,<yanzer@guaiba.ulbra.tche.br >
projetos de software tornam-se maiores e estas atividades tornam-se uma atividade em grupo onde os indivíduos precisam comunicar-se e coordenar-se. Portanto o conhecimento individual precisa ser alavancado aos níveis do projeto e da organização. É isso que a Gestão do Conhecimento propõe-se. A Gestão do Conhecimento desmistifica o herói individual e troca o foco para a criatividade coletiva. Isto complementa iniciativas como o CMMI, que tenta estabelecer processos de software que são independentes das pessoas envolvidas, focando-se nos papéis que cada um tem dentro do processo. Segundo os mesmo autores, dois tipos de conhecimento podem ser identificados no desenvolvimento de software: conhecimento incorporado aos produtos, como resultado de atividade intelectual; meta-conhecimento, que é o conhecimento sobre os produtos e processos. Motivações para a Gestão do Conhecimento no Desenvolvimento de Software Nessa perspectiva, os autores listam motivações para a Gestão do Conhecimento durante o processo de desenvolvimento de software. Necessidade de capturar e compartilhar o conhecimento de diferentes processos e produtos: refere-se principalmente ao fato dos processos e produtos serem diferentes e seus contextos e objetivos. Portanto apenas uma visão sobre estes fatores não pode ser assumida para todos os projetos e produtos. Isto torna a atividade de desenvolvimento muitas vezes experimental e onde se ganha experiência com cada projeto. Necessidade do domínio do conhecimento: o desenvolvimento de software não requer apenas conhecimento sobre seu próprio domínio, mas também sobre o domínio para o qual o software está sendo desenvolvido. Pode-se então ser necessário aprendizado de outras técnicas de gerenciamento de projetos, ou outra linguagem de programação pode ser necessária. Necessidade de adquirir conhecimento sobre novas tecnologias: refere-se a necessidade das empresas de manterem-se atualizadas perante as novas tecnologias. Para esta atividade, é muito difícil estimar custos, tempo e riscos para os projetos, além de não ser possível garantir integralmente a estabilidade
destas novas tecnologias. Necessidade de compartilhar o conhecimento sobre políticas locais: trata das convenções locais para o desenvolvimento de software, que pode envolver, entre outros fatores, convenções de programação ou a arquitetura para o desenvolvimento. Segundo o autor, este tipo de conhecimento relacionado ao software tipicamente existe como folclore e é informalmente mantido pelos desenvolvedores mais experientes ou pelos gerentes e é transferido aos desenvolvedores mais novos através de encontros informais. Necessidade de saber quem sabe o quê: muito conhecimento pode ser guardado pela empresa através de seus funcionários, mas ainda muito do conhecimento da empresa está no cérebro de seus funcionários, no seu conhecimento tácito. Nesse contexto, a empresa precisa saber quais conhecimentos seus funcionários detêm, afim de contribuir para a organização e para os próprios funcionários, que podem ter acesso mais rápido aos detentores do conhecimento o qual precisam. Necessidade de colaboração a distância: refere-se principalmente ao fato de equipes distantes geograficamente poderem comunicar-se, colaborar-se e coordenarem-se, independente de tempo e lugar. Desafios da Gestão do Conhecimento no Desenvolvimento de Software No mesmo relatório, os autores ainda citam alguns desafios da Gestão do Conhecimento no processo de desenvolvimento de software. tempo dos membros da equipe, que está envolvida em projetos de desenvolvimento e não pode se envolver em outros projetos, entre eles os relacionados a Gestão do Conhecimento; muito tempo é necessário para se visualizar os retornos do investimento em Gestão do Conhecimento; software não é visível, assim como um prédio, causando o pouco reuso de componentes e soluções, além de os próprios desenvolvedores não confiarem em códigos desenvolvidos por outras pessoas, o que contraria os objetivos da Gestão do Conhecimento, que é exatamente o reuso de soluções; a maioria do conhecimento dos membros das equipes é tácito e jamais se tornará explicito, devido ao tempo para fazer este conhecimento se tornar
explícito e a falta de técnicas e instrumentos para fazer este conhecimento tornar-se explicito Como estratégias para a superação destes desafios, os autores falam sobre a necessidade de se criar uma cultura de compartilhamento de conhecimento, com suporte de ferramentas tecnológicas para suportar a Gestão do Conhecimento, nunca esquecendo que um dos principais valores da organização é seus empregados. Ainda em contraponto aos desafios, alguns aspectos podem tornar mais fácil a implantação de um sistema para Gestão do Conhecimento durante o processo de desenvolvimento de software. O principal fator a considerar é que todos os envolvidos nas atividades do processo de desenvolvimento de software já tem certa familiaridade com ferramentas tecnológicas. Portanto, as ferramentas tecnológicas que podem vir a serem utilizadas não intimidarão os seus usuários e os envolvidos estarão abertos a tentar utilizar estas ferramentas, desde que acreditem que elas podem ajudá-los a fazer um trabalho melhor. Outro ponto favorável é de todos os artefatos relacionados as atividades dos envolvidos já estão em meio eletrônico, o que facilita a distribuição e compartilhamento. Um ponto que cabe destacar é a importância de se ter um processo de desenvolvimento de software definido, como já abordado anteriormente, que relacionada as práticas da Gestão do Conhecimento possibilita a identificação dos momentos onde o conhecimento utilizado de alguma forma, afim de dedicar uma atenção especial a estes determinados momentos. Assim, pode ser disponibilizado tempo e recursos aos envolvidos no projeto para as atividades relacionadas a Gestão do Conhecimento, tornando-se parte integrante do processo da empresa. Conclusão DAVENPORT e PRUSAK (1998) afirmam que Gestão do Conhecimento coexiste com a estratégia de negócios. Em pesquisas realizadas por estes autores, os gerentes de projetos do conhecimento queriam, em seus projetos, trazer benefícios no que se refere ao desenvolvimento de novos produtos, treinamento, suporte a clientes, desenvolvimento de software, entre outros processos e funções da organização. A Gestão do Conhecimento, através de um processo onde a organização consciente e sistematicamente captura, organiza e compartilha o conhecimento (FALCÃO e BRESCIANI FILHO apud CARBONE, 2005). Com a análise deste acervo é possível utilizar o conhecimento para atingir seus objetivos de negócio. No caso das empresas de software, normalmente o objetivo está ligado a inovação e
criatividade no desenvolvimento de novos produtos, a agilidade no desenvolvimento e a qualidade do produto final gerado. Enfim, a Gestão do Conhecimento contribui para alcançar os objetivos de negócio definidos pelas estratégias organizacionais da empresa. Referências Bibliográficas DAVENPORT, Thomas H.; PRUSAK, Laurence. Conhecimento Empresarial. Rio de Janeiro : Editora Campus, 1999. FALCÃO, S. D.; BRESCIANI FILHO, E. Gestão do Conhecimento. Revista da III Jornada de Produção Científica das Universidades Católicas do Centro-Oeste, Goiânia, v. 2, set.1999. RUS, Ioana; LINDVALL, Mikael; SINHA, Sachin S. Knowledge Management in Software Engineering A State-of-the-Art Report. Relatório técnico, DoD Data Analysis Center for Software, Rome, N.Y., 2001.