36
WOSES 2012: 11 de junho, Fortaleza – CE – Brasil Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento Edmundo Andrade Wander Silva Sangelly Aires Roberta Sousa Idonab Neves

Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

Embed Size (px)

DESCRIPTION

Apresentação realizada por Edmundo Andrade no dia 11 de junho de 2012, no WOSES 2012 - VIII Workshop "Um Olhar Sociotécnico Sobre a Engenharia de Software", na cidade de Fortaleza, CE, Brasil. Autores do artigo: Edmundo Andrade, Wander Silva, Sangelly Aires, Roberta Sousa e Idonab Neves.

Citation preview

Page 1: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

WOSES 2012: 11 de junho, Fortaleza – CE – Brasil

Metodologia para Definição de Processo de Desenvolvimento de

Software Baseada em Princípios de Gestão do Conhecimento

Edmundo Andrade Wander Silva Sangelly Aires Roberta Sousa Idonab Neves

Page 2: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

AGENDA

Processos de software

Gestão do conhecimento

Estudo de caso

Metodologia aplicada

Resultados

Considerações finais

Page 3: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

P R O C E S S O SD E

S O F T W A R E

Page 4: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

SOFTWARE NASORGANIZAÇÕES

Missão

Processos de negócio

Sistemas de Informação

Tecnologias de Informação e Comunicação

Processos de TIC

Processos de ciclo de vida de softwareABNT NBR ISO/IEC 12207:2009

Processos de suporte ao negócio

Page 5: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

SOFTWARE NASORGANIZAÇÕES

Missão

Processos de negócio

Sistemas de Informação

Tecnologias de Informação e Comunicação

Processos de TIC

Processos de ciclo de vida de softwareABNT NBR ISO/IEC 12207:2009

Processos de suporte ao negócio

PR

OC

ES

SO

S Q

UE

EN

VO

LV

EM

CO

NH

EC

IME

NT

O

Page 6: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

DESENVOLVIMENTO DE SOFTWARE

Engenharia de Software (viés técnico)

Manifesto ágil (2001) e SPI Manifesto (2010)

Fatores significativos: pessoas, leiaute, proximidadeFatores a adaptar: metodologia e arquitetura

Cockburn (2003)

Page 7: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

DESENVOLVIMENTO DE SOFTWARE

Engenharia de Software (viés técnico)

Manifesto ágil (2001) e SPI Manifesto (2010)

Fatores significativos: pessoas, leiaute, proximidadeFatores a adaptar: metodologia e arquitetura

Olhar sociotécnico no desenvolvimento de software!

Cockburn (2003)

Page 8: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

G E S T Ã OD O

C O N H E C I M E N T O

Page 9: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

GESTÃO DO CONHECIMENTO

Ferramenta para gerenciar o capital intelectual das organizações

Área de conhecimento multidisciplinar para lidar com o conhecimento organizacional

Conceito estabelecido há duas décadas no trabalho pioneiro de Nonaka e Takeuchi

Missão de reconhecer e manter fatores que promovam a criação, compartilhamento e aplicação de informações e conhecimentos organizacionais

Page 10: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

CONHECIMENTO ORGANIZACIONAL

Conhecimento explícito(pode ser transmitido, sistematizado, ensinado)

Conhecimento tácito(pouco tangível)

Conhecimento organizacional integra experiência física, tentativa e erro, geração de modelos mentais e aprendizado com os outros

Conhecimento cultural(estruturas cognitivas e afetivas compartilhadas)

Nonaka e Takeuchi (1997), CHOO (2006)

Page 11: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

DOMÍNIOS DE PERCEPÇÃO

Domínio GC-2: Saber prático(know-how das atividades e capacidades)

Domínio GC-3: Capacidade de cooperação/adaptação(contexto que potencializa essa capacidade)

Domínio GC-1: Informação(publicações internas e externas)

Davenport e Cronin (2000)

Page 12: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

PRINCÍPIOS DE GCGC custa caro: capacitação+aquisição

Davenport (1996)

GC requer soluções híbridas: pessoas+tecnologia

GC é altamente política: conhecimento poder

GC requer gestores de conhecimento: promotores

Mapas e mercados > Modelos e hierarquias

Compartilhar e usar conhecimento requer esforço

GC aprimora processos que envolvam conhecimento

Acesso ao conhecimento: apenas o início

GC nunca termina: permanente evolução

GC requer contrato regulador

Page 13: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

E S T U D OD E

C A S O

Page 14: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

O CASO ESTUDADO

2003: Concepção do Procede

2010:Concepção do Siga-me

2007: COPEQ

Div

ersi

dade

de

plat

afor

mas

e

ferr

amen

tas

de

dese

nvol

vim

ento

.

2004: Implantação do Procede

- Plataforma padrão J2EE- Reestruturação das equipes- Aquisição de ferramentas- Capacitação das equipes

Promover a Melhoria Contínua no Procede

Comitê de Processo de Desenvolvimento

Aplicação de princípios de GC na redefinição do processo de desenvolvimento.

Área de TIC de uma instituição pública federal

Page 15: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

RISCOS A MITIGAR

Equipes não se sentindo proprietárias dos processos

Equipes desmotivadas a colaborar com os processos

Equipes considerando os processos pouco realistas

Equipes evitando expressar discordância relevante

Equipes sem compreender a integração entre processos

Gestores sem clareza das necessidades das equipes

Page 16: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

A PESQUISA

Questão:Os princípios de GC são aplicáveis à definição do

processo de desenvolvimento de software?

Pressupostos:Aplicação dos princípios de GC

reduz tensões aumenta engajamento

Ouvir o que as áreas pensam gera conhecimento favorece o diálogo evidencia fatores relevantes evidencia pontos de convergência e de conflito

Page 17: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

M E T O D O L O G I AA P L I C A D A

Page 18: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

METODOLOGIA

Page 19: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

CICLO DE MELHORIA

Page 20: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

R E S U L T A D O S

Page 21: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

PONTOS DE INTERESSE

Mais de 200 pontos de interesse registrados e priorizados

Page 22: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

ACORDOS INTERNOS

Page 23: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

PROJETOS PILOTO

Page 24: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

SITE DE PROCESSOS

Page 25: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

ESTRUTURA DO PROCESSO

Nome do Processo

Papel

Atividade

Page 26: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

ESTRUTURA DO PROCESSO

PropósitoResultados Esperados

Definição do papel

DescriçãoPapel responsávelArtefatos de EntradaArtefatos de SaídaOrientações GeraisFerramentasServiços de Apoio

Page 27: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

Você pode obter

detalhes de uma

atividade do processo

Page 28: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

PRINCÍPIOS EFICAZES

Participação do cliente

Agregação de valor

Documentação essencial

Iterações curtas

Qualidade do produto

Aprendizado

Colaboração

Visibilidade

Integração

Foco nos interesses organizacionais

Agilidade

Respeito

Simplicidade

Page 29: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

PONTOS POSITIVOSRápida assimilação e aceitação dos processos

Levantamento dos pontos de interesse permitiu maior interação entre as equipes

Adoção da notação BPMN facilitou muito a compreensão e a discussão dos processos

A ferramenta de colaboração (Wiki) permitiu agilidade na evolução dos processos e ampliou o nível de interação e colaboração entre as equipesAmbiente resultante bastante rico, favorecendo o aprendizado organizacional e o adequado tratamento das diferenças culturaisPatrocínio explícito do gestor da unidade de TIC

Percepção de elevada convergência de interesses

Page 30: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

DESAFIOS ENCONTRADOS

Quantidade e complexidade das atividades e artefatos dos processos tende a crescer

Necessidade de uniformizar ferramentas e técnicas adotadas pelas equipes piloto sem prejudicar a produtividade

Ambiente ceticismo e resistência de pessoas em função de experiência negativa anterior

Page 31: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

LIÇÕES APRENDIDAS

Atenção constante para garantir alinhamento das expectativas dos interessados

Respeito à cultura pré-existente

Comunicação e reforço contínuos da visão do projeto

Estímulo ao compartilhamento de conhecimento

Controle das demandas concorrentes ao projeto

Desacoplamento do processo com ferramentas, práticas e padrões específicos

Capacitação e motivação da equipe do projeto

Page 32: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

DEPOIMENTOS“... Ficou muito bem organizado, muito didático, muito fácil dos profissionais entenderem o funcionamento, bastante flexível, ele não te amarra e te dá alternativas para executar determinadas atividades, para usar determinados modelos... Não reinventamos a roda, apenas procuramos aproveitar as boas práticas que já existiam... que já eram muitas. Faltava alguém para organizar, para formalizar isso. Então por isso é que acho que é um processo bem sucedido”

(gerente)

“… A integração entre as áreas... também é um importante benefício deste processo. É óbvio que os nossos clientes têm muito a ganhar com isso” (desenvolvedor)

“… A integração entre as áreas... também é um importante benefício deste processo. É óbvio que os nossos clientes têm muito a ganhar com isso”

(desenvolvedor)

Page 33: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

C O N S I D E R A Ç Õ E SF I N A I S

Page 34: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

CONCLUSÕESPontos de interesse como habilitador da integração e

cooperação entre as equipes de TI

A combinação de BPMN com Wiki permitiu agilizar a discussão e a evolução do processo

CIO como líder motivador do uso e discussão do processo de desenvolvimento

Equipe de processos deve ser fiel aos princípios declarados

Gestão do conhecimento como catalisador doprocesso de desenvolvimento de software

Page 35: Metodologia para Definição de Processo de Desenvolvimento de Software Baseada em Princípios de Gestão do Conhecimento

TRABALHOS FUTUROS

Documentar padrões de GC aplicáveis à gestão doprocesso de desenvolvimento software,

especificando: nome, problema, solução, aplicabilidade e consequências.

Investigar benefícios da automação de atividades do processo de desenvolvimento software

Experimentar práticas e ferramentas que viabilizem a automação da rastreabilidade requisito-build