Modéstia à parte, sua melhor opção para se destacar no mercado!



Documentos relacionados
Organização Fábrica de Experiência

Aula 0. Agenda 04/02/2009. Curso Superior de Tecnologia em Redes de Computares. Disciplina: Gestão de Projeto de TI. Prof.: Fernando Hadad Zaidan

ü Curso - Bacharelado em Sistemas de Informação

Gestão do Conhecimento A Chave para o Sucesso Empresarial. José Renato Sátiro Santiago Jr.

O papel do bibliotecário na Gestão do Conhecimento. Profª Dr a Valéria Martin Valls Abril de 2008

Gestão do Conhecimento e Dasenvolvimento de Software

Administração de CPD Chief Information Office

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Pesquisa realizada com os participantes do 12º Seminário Nacional de Gestão de Projetos. Apresentação

Sistemas de Informação I

VANTAGEM ESTRATÉGICA. Assunto: Administração do Conhecimento

MASTER IN PROJECT MANAGEMENT

Trilhas Técnicas SBSI

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios

ENGENHARIA DE SOFTWARE I

Programa do Curso de Pós-Graduação Lato Sensu MBA em Engenharia de Software Orientada a Serviços (SOA)

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

Aspectos da engenharia de software que influenciam em uma estratégia de GC

COPPE/UFRJ. Ana Regina Rocha. Programa de Engenharia de Sistemas e Computação

Módulo 15 Resumo. Módulo I Cultura da Informação

Gerenciamento de Níveis de Serviço

SISTEMAS DE GESTÃO São Paulo, Janeiro de 2005

Governança de TI. ITIL v.2&3. parte 1

Gerenciamento de projetos.

Pesquisa realizada com os participantes do 16º Seminário Nacional de Gestão de Projetos APRESENTAÇÃO

CONSULTORIA DE DESENVOLVIMENTO ORGANIZACIONAL

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto


Oficina de Gestão de Portifólio

O Empreendedor e suas Interações; Definições do Empreendedor; Tipos de Empreendedor. Nesta aula veremos o resumo de: O Intra-Empreendedorismo.

Gestão Estratégica de Marketing

GTI Governança de TI. GTI como Ativo Estratégico. GTI - Um Ativo Estratégico 1

TRABALHOS TÉCNICOS Coordenação de Documentação e Informação INOVAÇÃO E GERENCIAMENTO DE PROCESSOS: UMA ANÁLISE BASEADA NA GESTÃO DO CONHECIMENTO

ATIVIDADES DE LINHA E DE ASSESSORIA

Fábrica de Software 29/04/2015

CICLO DE VIDA DE SISTEMAS DE GESTÃO DE CONHECIMENTO

Curso Redes Sociais Corporativas


Portfolio de cursos TSP2

PARTE III Introdução à Consultoria Empresarial

Dicas para implantação do Autodesk Vault para pequenas e médias empresas

3 Qualidade de Software

Gerenciamento de Projetos Modulo II Clico de Vida e Organização

MBA MARKETING DE SERVIÇOS. Turma 19. Curso em Ambiente Virtual

FACULDADE SENAC GOIÂNIA

Introdução. AULA 2 A Organização empresarial e a gestão de projetos. Tema relevante em diversas áreas

Gestão do Conhecimento e Arquivologia:

F.1 Gerenciamento da integração do projeto

Utilizando a ferramenta de criação de aulas

IMPLANTAÇÃO DE UM SISTEMA DE AVALIAÇÃO DE DESEMPENHO NA UFG

A Preservação do Capital Intelectual como Diferencial das Organizações de Sucesso

A Disciplina Gerência de Projetos

Desenvolvendo líderes e transformando empresas para um mundo melhor

Fundamentos de Engenharia de Software Professor Rafael Escalfoni

Diretrizes curriculares nacionais e os projetos pedagógicos dos cursos de graduação

Desafio Profissional PÓS-GRADUAÇÃO Gestão de Projetos - Módulo C Prof. Me. Valter Castelhano de Oliveira

17/02/2009. Curso Superior de Tecnologia: Redes de Computadores. Disciplina: Gestão de Projetos de TI Prof.: Fernando Hadad Zaidan. Unidade 2.

Estratégia de TI. Posicionamento Estratégico da TI: como atingir o alinhamento com o negócio. Conhecimento em Tecnologia da Informação

MBA EM GESTÃO DE PROJETOS PÓS-GRADUAÇÃO DESAFIO PROFISSIONAL Módulo C

Sárgom Ceranto Marketing e Soluções Corporativas comercial@trecsson.com.br

PMONow! Serviço de Implantação de um Escritório de Projetos

GESTÃO DO CONHECIMENTO NA INDÚSTRIA QUÍMICA


A disciplina de Gestão do Conhecimento no currículo do Curso de Biblioteconomia: a experiência da UFRGS/BRASIL.

PPS - Processo de Proposta de Solução Versão 1.3.1

Gerenciamento de Stakeholders 8h

Universidade Federal de Goiás UFG Campus Catalão CAC Departamento de Engenharia de Produção. Sistemas ERP. PCP 3 - Professor Muris Lage Junior

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Projeto de Sistemas I

Processos de Desenvolvimento de Software

A Miopia dos CSO s. Por Jordan M. Bonagura

biblioteca Cultura de Inovação Dr. José Cláudio C. Terra & Caspar Bart Van Rijnbach, M Gestão da Inovação

Módulo 07 Gestão de Conhecimento

Algumas Instituições. World Bank. Gartner Group. Knowledge Transfer International APQC OCDE IPEA

Seja Bem-Vindo(a)! Neste módulo vamos trabalhar os principais conceitos de Gestão, mais especificamente o item 2 do edital: Gestão de Pessoas

1 Fórum de Educação a Distância do Poder Judiciário. Gestão de Projetos de EAD Conceber, Desenvolver e Entregar

TI em Números Como identificar e mostrar o real valor da TI

Universidade de Brasília Departamento de Ciência da Informação e Documentação Programa de Pós Graduação em Ciência da Informação Prof a.

MINISTÉRIO DA EDUCAÇÃO FUNDO NACIONAL DE DESENVOLVIMENTO DA EDUCAÇÃO TERMO DE REFERÊNCIA PARA CONTRATAÇÃO DE PESSOA FÍSICA - CONSULTOR POR PRODUTO

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com

04/02/2009. Curso Superior de Tecnologia: Redes de Computadores. Disciplina: Gestão de Projetos de TI. Prof.: Fernando Hadad Zaidan. Unidade 1.

Go To Market Estratégias de Otimização de Resultados Porque Educação Executiva Insper Cursos de Curta e Média Duração

Prof. Marcelo Machado Cunha

CENTRO UNIVERSITÁRIO ESTÁCIO RADIAL DE SÃO PAULO SÍNTESE DO PROJETO PEDAGÓGICO DE CURSO 1

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Introdução a Computação

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

RH: GESTÃO INOVADORA ORGANIZACIONAL

Síntese do Projeto Pedagógico do Curso de Sistemas de Informação PUC Minas/São Gabriel

CAPÍTULO 1 - CONTABILIDADE E GESTÃO EMPRESARIAL A CONTROLADORIA

Relatório de Competências

Vendas - Cursos. Curso Completo de Treinamento em Vendas com Eduardo Botelho - 15 DVDs

Faculdade de Ciência da Informação Prof a Lillian Alvares

No mundo atual, globalizado e competitivo, as organizações têm buscado cada vez mais, meios de se destacar no mercado. Uma estratégia para o

SAM GERENCIAMENTO DE ATIVOS DE SOFTWARE

Políticas de Qualidade em TI

Transcrição:

Modéstia à parte, sua melhor opção para se destacar no mercado! A Escola Superior da Tecnologia da Informação oferece as melhores opções em cursos, formações, graduações e pós-graduações para profissionais de desenvolvimento e programação. São programas voltados para a formação de profissionais de elite, com aulas 100% práticas, corpo docente atuante no mercado, acesso à mais atualizada biblioteca de TI do Rio, laboratórios equipados com tecnologia de ponta, salas de estudo e exames. PÓS-GRADUAÇÃO Engenharia de Software: Desenvolvimento Java Engenharia de Software: Desenvolvimento.NET GRADUAÇÃO Engenharia de Computação Análise e Desenv. de Sistemas FORMAÇÕES Desenvolvedor Java Desenv. Java: Sist. Distribuídos Gestor de TI Desenvolvedor Web.NET 2008 MCITP Server Administrator SQL Server 2008 Acesse nosso site e conheça todos os nossos programas: www.infnet.edu.br/esti www.infnet.edu.br - cursos@infnet.edu.br - Central de Atendimento: (21) 2122-8800 EDUCAÇÃO SUPERIOR ORIENTADA AO MERCADO TURMAS NO RIO DE JANEIRO

Ano 2-21ª Edição - 2010 Corpo Editorial Colaboradores Rodrigo Oliveira Spínola rodrigo@sqlmagazine.com.br Marco Antônio Pereira Araújo Eduardo Oliveira Spínola Capa Romulo Araujo - romulo@devmedia.com.br Diagramação Janete Feitosa Coordenação Geral Daniella Costa - daniella@devmedia.com.br Revisor e Supervisor Thiago Vincenzo - thiago.v.ciancio@devmedia.com.br Na Web www.devmedia.com.br/esmag Impresso no Brasil Apoio EDITORIAL O propósito da qualidade é estabelecer um diferencial competitivo, através de contribuições como redução de defeitos, redução de custos, redução de retrabalho e aumento da produtividade, entre outras. Existem diversas iniciativas para garantia da qualidade de produtos e processos nas empresas. Nesta edição, a Engenharia de Software Magazine destaca duas delas: turidade mundialmente conhecido, usado para criar uma infraestrutura de processos organizacionais, abordando domínios específicos, tais como software e engenharia de sistemas. uma abordagem sistêmica e utilização intensiva do pensamento estatístico, que visa a redução de defeitos nos produtos para 3,4 defeitos produtos e processos. Neste contexto, temos como capa desta edição um artigo que fornece a compreensão necessária das relações entre as iniciativas e propor a utilização do Seis Sigma na melhoria da qualidade de software para a Além desta matéria, esta edição traz mais cinco artigos: Desejamos uma ótima leitura! Equipe Editorial Engenharia de Software Magazine Atendimento ao Leitor A DevMedia conta com um departamento exclusivo para o atendimento ao leitor. Se você tiver algum problema no recebimento do seu exemplar ou precisar de algum esclarecimento sobre assinaturas, exemplares anteriores, endereço de bancas de jornal, entre outros, entre em contato com: Cristiany Queiróz Atendimento ao Leitor www.devmedia.com.br/mancad Kaline Dolabella kalined@terra.com.br Publicidade Para informações sobre veiculação de anúncio na revista ou no site entre em contato com: Kaline Dolabella publicidade@devmedia.com.br Fale com o Editor! É muito importante para a equipe saber o que você está achando da revista: que tipo de artigo você gostaria de ler, que artigo você mais gostou e qual artigo você menos gostou. Fique a vontade para entrar em contato com os editores e dar a sua sugestão! Se você estiver interessado em publicar um artigo na revista ou no site SQL Magazine, entre em contato com os editores, informando o título e mini-resumo do tema que você gostaria de publicar: Rodrigo Oliveira Spínola - Colaborador editor@sqlmagazine.com.br Rodrigo Oliveira Spínola rodrigo@sqlmagazine.com.br Doutorando em Engenharia de Sistemas e Computação (COPPE/UFRJ). Mestre em Engenharia de Software (COPPE/UFRJ, 2004). Bacharel em Ciências da Computação (UNIFACS, 2001). Colaborador da Kali Software (www.kalisoftware.com), tendo ministrado cursos na área de Qualidade de Produtos e Processos de Software, Requisitos e Desenvolvimento Orientado a Objetos. Consultor para implementação do MPS.BR. Atua como Gerente de Projeto e Analista de Requisitos em projetos de consultoria na COPPE/UFRJ. É Colaborador da Engenharia de Software Magazine. Marco Antônio Pereira Araújo (maraujo@devmedia.com.br) Doutor e Mestre em Engenharia de Sistemas e Computação pela COPPE/UFRJ - Linha de Pesquisa em Engenharia de Software, Especialista em Métodos Estatísticos Computacionais e Bacharel em Matemática com Habilitação em Informática pela UFJF, Professor e Coordenador do curso de Bacharelado em Sistemas de Informação do Centro de Ensino Superior de Juiz de Fora, Professor do curso de Bacharelado em Sistemas de Informação da Faculdade Metodista Granbery, Professor e Diretor do Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas da Fundação Educacional D. André Arcoverde, Analista de Sistemas da Prefeitura de Juiz de Fora, Colaborador da Engenharia de Software Magazine. Eduardo Oliveira Spínola (eduspinola@gmail.com) É Colaborador das revistas Engenharia de Software Magazine, Java Magazine e SQL Magazine. É bacharel em Ciências da Computação pela Universidade Salvador (UNIFACS) onde atualmente cursa o mestrado em Sistemas e Computação na linha de Engenharia de Software, sendo membro do GESA (Grupo de Engenharia de Software e Aplicações).

Caro Leitor, Para esta edição, temos um conjunto de 4 vídeo aulas. Estas vídeo aulas estão disponíveis para download no Portal da Engenharia de Software Magazine e certamente trarão uma significativa contribuição para seu aprendizado. A lista de aulas publicadas pode ser vista abaixo: Tipo: Requisitos Título: Diagrama de Casos de Uso na Prática Partes 4 a 7 Autor: Rodrigo Oliveira Spínola Mini-Resumo: Estas aulas são parte de uma série sobre a construção de diagrama de casos de uso da UML. O objetivo do conjunto de aulas é apresentar de forma prática como elaborar o diagrama de casos de uso a partir de diferentes estudos de caso. Nestas aulas, serão elaborados diversos diagramas de casos de uso. Também será visto como especificar um caso de uso para um dos diagramas elaborados. ÍNDICE Abordagens Tradicionais de Desenvolvimento 05 - Seis Sigma e CMMI Luiz Fernando da Silva Fiel, Ana Nathalie de Mello Rodrigues e Marcelo Nascimento Costa 32 - Colaboração em Processos de Aquisição de Software João Condack, Rafael Vieira 38 - Organização Fábrica de Experiência Fernando Hadad Zaidan, George Leal Jamil e Leandro Libério da Silva 43 - Customização e Integração de Ferramentas Open-Source Felipe Furtado, Gustavo Carvalho, Andrea Pinto e Ryan Albuquerque 50 - Métricas de Software Thamine Chaves Leite de Abreu, Leonardo da Silva Mota e Marco Antônio Pereira Araújo Validação, Verificação e Teste 56 - Integração contínua com Hudson, Maven2, TestNG e Subversion Victor Vidigal Ribeiro, Fabrício Nogueira de Almeida e Marco Antônio Pereira Araújo 4 Engenharia de Software Magazine

Abordagens Tradicionais de Desenvolvimento Esta seção traz artigos que apresentam como e quando utilizar as diferentes abordagens tradicionais de apoio ao desenvolvimento de projetos de software Organização Fábrica de Experiência Obtendo vantagens competitivas nas empresas desenvolvedoras de software Fernando Hadad Zaidan fhzaidan@gmail.com Atua no ramo de TI há mais de 25 anos. Doutorando na Ciência da Informação - UFMG. Mestre em Administração pela Universidade FUMEC Bacharel em Ciência da Computação pela Universidade FUMEC. Gestor e desenvolvedor de Sistemas Web pelo UNI-BH. Analista de Sistemas e Programador de Computadores pela UFMG. Inclui cargos de diretor de empresas de desenvolvimento de software, administrador de TI, analista/desenvolvedor de sistemas e arquiteto de dados. Consultor de TI e organizacional. Professor e Coordenador da Pós-graduação da Faculdade Pitágoras. Professor de graduação da Faculdade Ined. Palestrante. Autor de artigos e livro. George Leal Jamil gljamil@gmail.com Possui graduação em Engenharia Elétrica pela Universidade Federal de Minas Gerais (UFMG) (1982), Mestrado em Ciência da Computação pela UFMG (1999) e doutorado em Ciência da Informação pela UFMG (2005). Atualmente é professor adjunto da Fundação Mineira de Educação e Cultura - FUMEC/BH. Tem experiência na área de Ciência da Computação e Gestão Estratégica de Empresas, com ênfase em Engenharia de Software, atuando principalmente nos seguintes temas: ciência da computação, engenharia de software, sistemas de informação, informática, processo de software, gestão estratégica e de marketing. Leandro Libério da Silva leandroliberio@gmail.com É mestrando em Educação Tecnológica pelo Centro Federal de Educação Tecnológica - CEFET- MG. MBA em Gestão Comercial pela Fundação Getúlio Vargas - FGV. Especialista em Banco de Dados pelo Centro Universitário de Belo Horizonte - UNI-BH (2002). Possui graduação em Tecnologia em Informática pelo Centro Universitário Newton Paiva (2001). Atua também como professor e coordenador de cursos de especialização em Tecnologia da Informação do Núcleo de Pós- Graduação do Sistema Universitário Pitágoras. Também leciona no UNI-BH. Compreendemos a gestão do conhecimento como um processo contínuo onde uma organização orienta suas várias ações com base no conhecimento empresarial. Como tarefas típicas temos a geração, valorização, registro, compartilhamento e aplicação do conhecimento para planos e processos variados dentro da empresa. Os resultados positivos da gestão do conhecimento são inegáveis, uma vez que torna este precioso acervo o conhecimento num elemento decisivo para a formulação de vantagem competitiva pela empresa em seu cenário competitivo. De que se trata o artigo? Neste artigo compreenderemos o modelo de processo de desenvolvimento de software denominado organização fábrica de experiência. A criação deste modelo se deu no laboratório de Engenharia de Software da Universidade de Maryland, EUA. A característica principal é a presença de uma equipe destinada à finalidade de externalizar o conhecimento dos desenvolvedores. Para que serve? Visa à obtenção de vantagens competitivas e melhores resultados no desenvolvimento de software como exemplo na estimativa de custos, qualidade e prazos por meio da contribuição de experiências de projetos de software anteriores e da gestão da informação e do conhecimento. Em que situação o tema é útil? Este modelo permite que as organizações de desenvolvimento retenham conhecimento dos projetos do passado para melhorar as habilidades no desenvolvimento futuro, não permitindo que o conhecimento se perca ou se dissipe facilmente. Considerar o processo de desenvolvimento de software com o apoio da gestão do conhecimento, ou sob sua ótica, é extremamente oportuno. O processo 38 Engenharia de Software Magazine - Organização Fábrica de Experiência

ENGENHARIA DE SOFTWARE de desenvolvimento de software é, segundo estudado na engenharia de software, um conjunto coordenado de tarefas organizacionais destinado a disponibilizar software de todas as formas para que uma empresa o utilize segundo seus planos estratégicos. Atividade de intensiva comunicação e que estrutura ideias e procedimentos muitas vezes não formalmente documentados, o processo de desenvolvimento de software oferece uma perspectiva muito interessante se for analisado sob as lentes da gestão do conhecimento. Neste contexto, o trabalho das fábricas de experiência oferece possibilidades importantes para a associação que evidenciamos. A Organização Fábrica de Experiência (OFE) é um modelo desenvolvido pelo laboratório de Engenharia de Software da Universidade de Maryland. É composta de duas organizações que trabalham perfeitamente integradas. Neste modelo, existe uma equipe específica destinada à finalidade de externalizar (ou seja, difundir ou publicar) o conhecimento gerado dos próprios desenvolvedores. O desenvolvimento de software pode obter melhores resultados como exemplo na estimativa de custos, qualidade e prazos por meio da contribuição de experiências de projetos anteriores. Com cronogramas pressionados, elevadas expectativas quanto à qualidade e produtividade e desafios técnicos constantes, muitos projetos de software não oferecem possibilidades de explicitar (ou seja, estruturar formalmente, a partir do informal) o conhecimento. Porém, neste modelo, esta importante atividade fica por conta da equipe chamada fábrica de experiência. Esta equipe será encarregada de analisar e sintetizar todos os tipos de experiência, incluindo as lições aprendidas, dados de projetos e relatórios que explicitam estas experiências mediante a criação de repositórios. Tal atividade, se considerada diante do processo de gestão do conhecimento, se constitui em potencial ganho para o produtor de software ao realizar as funções de geração, formalização, retenção, compartilhamento e valorização. Contextualização As organizações de fábrica de software são empreendimentos que têm expressiva demanda por informações para a execução de seus processos. O uso adequado da gestão do conhecimento e da informação pode ser revertido em vantagens competitivas para este tipo de organização. Compreende-se a engenharia de software como uma disciplina que visa o desenvolvimento de software de computador, integrando processo, métodos e ferramentas. Existem modelos de processo para que cada produtor implemente a melhor solução em termos de um processo de produção real, eficaz e efetivo, porém todos definem um conjunto de atividades, uma coleção de tarefas que são conduzidas para realizar cada atividade, produtos de trabalho produzidos como conseqüência das tarefas a serem exigidos para o aceite ou complementação da tarefa, bem como um conjunto de atividades padrões que se espalham por todo o processo. Neste contexto, o trabalhador do conhecimento, notadamente presente nas empresas de desenvolvimento de software, valoriza o conhecimentos e sua aplicação pelas organizações como fator de uma nova realidade. As organizações devem almejar a aplicabilidade do conhecimento dos funcionários no intuito de gerar novos conhecimentos. Os trabalhadores do conhecimento podem descobrir, criar, compilar, distribuir ou aplicar o conhecimento. Os processos organizacionais, dentre eles o processo de desenvolvimento de sistemas de informação, estão em constante melhoria, tornando-se uma busca constante por parte das organizações. O processo de desenvolvimento de software pode ser compreendido como um método de trabalho estruturado, em etapas gerenciáveis individual e coletivamente, que tem como objetivo produzir, de forma coordenada, software para uma aplicação em geral. O modelo proposto por Victor Basili e seus colaboradores da Universidade de Maryland USA, denominado Organização Fábrica de Experiência, apresenta uma equipe destinada à finalidade de externalizar o conhecimento. Os principais ativos das empresas de desenvolvimento de software não são as construções, materiais ou equipamentos caros é o capital intelectual. O maior problema com o capital intelectual é que ele tem pernas e caminha para casa todos os dias, dificultando as organizações na permanência dos mesmos. A seguir, estudamos o processo de desenvolvimento de software, sua interação com a gestão do conhecimento e a oportunidade das Organizações de Fábricas de Software neste poderoso contexto. Processo de desenvolvimento de software Ao se abordarem o conceito de processo de software, verificase que este é configurado como um conjunto de atividades, tais como a análise de requisitos, planejamento de produção, projeto, desenvolvimento dos códigos, testes, manutenção, aquisições ou contratações e demais providências que levem à produção de um software. O processo é proposto como uma rotina que necessita de documentação que detalhe aspectos e artefatos como: especificação formal e precisa do produto a ser desenvolvido; os passos ou fases que serão executados, incluindo sua ordem, gestão de risco e precedência; preparo e atribuições dos agentes que atuarão na produção; os insumos que serão utilizados e os resultados que se espera alcançar. Como casos típicos de especificações para processo de software, citamos os modelos Personal Software Process (PSP) e Team Software Process (TSP), ambos de autoria do Software Engineering Institute (www.sei.cmu.edu). Nota do DevMan Externalizar o conhecimento: Nonaka e Takeuchi explicam no seu livro criação de conhecimento na empresa: como as empresas japonesas geram a dinâmica da inovação, que a criação do conhecimento organizacional é uma interação contínua e dinâmica entre o conhecimento tácito e o conhecimento explícito. Tal interação é moldada pelas mudanças entre diferentes modos de conversão, que são a socialização, a externalização, a internalização e a combinação. Dentre os quatro modelos de conversão do conhecimento, a externalização é a chave para a criação do conhecimento, pois elabora conceitos novos e explícitos a partir do conhecimento tácito. Edição 21 - Engenharia de Software Magazine 39

Há uma imensa diversidade de modelos para processos de software, não se considerando a existência de um processo ideal para todos os produtores. Numa concepção atual da Engenharia de Software, disciplina que prioriza em seu estudo a criação, implantação e manutenção do processo de desenvolvimento de software, aplicam-se tais modelos para que o Engenheiro, conhecendo as demandas do produtor, adapte estas técnicas para criar o modelo ideal a ser ali utilizado, de acordo com as especificidades de cada produtor. Diante de tal fato, pode-se afirmar que as organizações desenvolveram abordagens diferentes para o processo de software. O desenvolvimento de software sofre mudanças rápidas. Este tipo de negócio se utiliza do conhecimento intensivo e envolve muitas pessoas trabalhando em diferentes fases ou atividades. São diversos os conhecimentos encontrados nas empresas desenvolvedoras, porém, existem problemas para identificar o conteúdo, localização e o uso deste conhecimento. O uso apurado deste conhecimento é uma motivação básica para conduzir a gestão do conhecimento nas empresas desenvolvedoras, merecendo uma análise profunda. No desenvolvimento de software, cada pessoa envolvida toma decisões técnicas ou administrativas, muitas delas pontuais ou eventuais, diante de situações inéditas. Membros do time de desenvolvimento tomam decisões baseadas no conhecimento pessoal, experiências ou conhecimento obtido usando contatos informais. Isso é possível em empresas menores, com um potencial caótico em empresas maiores, conduzindo a conflitos e imprecisões nos trabalhos de produção do software. Porém, em empresas que lidam com um grande número de informações, este processo torna-se ineficiente. Grandes organizações não podem confiar na participação informal do conhecimento pessoal dos funcionários, bem como em situações temporárias em que estes funcionários eventualmente atuem, refletindo-se tais situações em improvisos, informalidades que não podem ser adotadas como comportamentos organizacionais padronizados. Tal situação é frequentemente referenciada na literatura da Engenharia de Software ao afirmar que processos não estruturados dependem de atuações salvadoras de gerentes e especialistas (bons programadores, analistas que dominem o contexto da aplicação, gerentes que conseguem improvisar com sucesso), eventos que não trazem em si garantia nenhuma que poderão ser repetidos em novos projetos. O conhecimento individual, sobre técnicas, processo, métodos, infraestrutura, bases e gerenciamento, principalmente, precisa ser compartilhado. Desta forma, os processos de compartilhamento do conhecimento precisam ser perfeitamente definidos. Vantagem Competitiva Entende-se a vantagem competitiva como uma diferença positiva que um determinado competidor apresenta, em um segmento, sobre seus concorrentes, percebido pelos clientes daquele segmento. O software oferece inúmeras situações de potencial construção da vantagem competitiva, indo desde a melhora ou customização do atendimento, passando pelo aprimoramento na oferta de produtos e serviços que sejam diferenciados aos olhos dos consumidores. Destaca-se aqui também a diferenciação, e consequente vantagem, nas formas de oferta, como bons serviços de comércio eletrônico. Analisando o contexto do processo de desenvolvimento de software, da gestão do conhecimento e a construção da vantagem competitiva, pode-se afirmar que, no desenvolvimento de software, inúmeros documentos são elaborados. Dessa forma, o conhecimento produzido deve ser retido e disponibilizado para o time de desenvolvimento, possibilitando o reuso em projetos futuros. Para tanto, o conhecimento individual necessita ser explicitamente capturado, oferecendo a oportunidade para o aprendizado de outros. A busca por posições estratégicas que combinem ou superem as existentes nas organizações é um grande desafio que as empresas enfrentam, e norteará a direção futura delas, tanto para o sucesso, quanto para o fracasso. A empresa é um conjunto de recursos cuja utilização é organizada por um quadro de referência administrativo, tornando os produtos finais da organização representantes das possibilidades pelas quais se pode utilizar seu conjunto de recursos para desenvolver suas potencialidades básicas. Definimos recursos como todos os ativos, processos organizacionais, atributos, informação, conhecimento, etc., controlados pelas organizações, que as tornam capazes de conceber e implementar estratégias que melhorem sua eficiência e eficácia. As organizações não podem ser consideradas idênticas, bem como os recursos reais são heterogêneos (originais) e imóveis (não são adquiríveis). É aqui que o software, como afirmamos antes, pode se constituir num diferenciador potencial, produzindo vantagem competitiva. Tipos de conhecimento e a aplicação para produção de software Dentre os conhecimentos típicos que são encontrados num ambiente de desenvolvimento de software, podemos exemplificar: Os métodos de cálculos de estimativas de prazos e custos financeiros; Especificações técnicas de modelagem de programas, lógicas e relacionamentos entre módulos; Métodos de planejamento de atividades, de delegação de controle e tarefas durante a produção de software, como os de testes; Formulários e artefatos variados, como definições de layout para repositórios de requisitos; Nota do DevMan Processos organizacionais: procurando estruturar-se em processos, as organizações terão maior eficiência na obtenção de produtos e serviços e estarão mais preparadas para mudanças, com melhor integração de seus esforços e maior capacidade de aprendizado. 40 Engenharia de Software Magazine - Organização Fábrica de Experiência

ENGENHARIA DE SOFTWARE Melhores práticas de processos e projetos, a serem aplicadas sucessivamente na formulação de novos produtos. Algumas das áreas do conhecimento e das necessidades relativas às organizações são: Adquirir conhecimento sobre novas tecnologias: novas tecnologias podem ser bastante eficientes para o desenvolvimento de software, mas tornam-se pesadelos para os gerentes de projeto. É difícil para os desenvolvedores ficarem aptos com as novas tecnologias e, para os gerentes, entenderem seus impactos e estimar os novos custos. Tecnologias não muito familiares fazem uso intensivo do aprender fazendo, que pode trazer retardo nos resultados; Conhecimento de acesso do domínio: o desenvolvimento de software necessita de acesso ao conhecimento não apenas do seu domínio e em novas tecnologias, mas também sobre o domínio para o qual o software está sendo desenvolvido; Compartilhamento do conhecimento das práticas e políticas locais: os conhecimentos são passados, entre desenvolvedores experientes e os com pouca experiência, em encontros informais; com isso, nem todos têm acesso. Esta prática deve ser estimulada, mas a captura e compartilhamento formal do conhecimento asseguram que todos os funcionários terão acesso a ele. As organizações devem analisar os projetos do passado para melhorar as habilidades no desenvolvimento. Isto requer conhecimentos extensivos baseados nas mais diferentes experiências no desenvolvimento, bem como insights. Padrões, melhores práticas, modelos e recomendações são exemplos de resultados destas atividades do conhecimento. A organização Fábrica de Experiência (OFE) O modelo desenvolvido denominado organização fábrica de experiência, conforme mostrado na (Figura 1), possui duas organizações perfeitamente integradas. Uma equipe específica é destinada à finalidade de externalizar o conhecimento dos próprios desenvolvedores. Este processo tem como objetivo obter melhores resultados no desenvolvimento de software custos, qualidade e prazos por meio da alavancagem de experiências de projetos anteriores. Nota do DevMan Estratégia: Não existe uma definição única e universalmente aceita para estratégia. Inicialmente deu-se ênfase especial ao uso militar do termo estratégia, originada das mais antigas literaturas do mundo. Strategos referia-se ao papel de um general no comando de um exército, passando posteriormente a ser a arte de habilidades psicológicas e comportamentais com as quais exercia esse seu papel. Uma estratégia bem formulada ajuda a ordenar e alocar os recursos de uma organização para uma postura singular e viável. Diversos autores relacionam o conceito de estratégia em uma série de pontos de vista, como plano, padrão, posição e perspectiva. Figura 1. Arquitetura da solução Victor Basili adaptada pelos autores Com cronogramas, expectativas quanto à qualidade e produtividade e desafios técnicos, muitos projetos não podem dedicar recursos suficientes para explicitar o conhecimento. Porém, isto fica por conta da equipe chamada fábrica de experiência. Esta equipe está encarregada de analisar e sintetizar todos os tipos de experiência, incluindo as lições aprendidas, dados de projetos e relatórios que explicitam estas experiências mediante a criação de repositórios. A OFE agrega valor ao conhecimento, mediante a criação de modelos baseados em documentos ou em indivíduos. Externalização e internalização são integradas, de modo que a equipe do projeto trabalhe em harmonia com a OFE. Implantar o conceito de OFE requer mudanças culturais nas organizações, devido à criação de equipes e processos distintos de trabalho. O que é mais essencial na OFE não é a experiência, mas os novos conhecimentos gerados a partir da experiência. As OFE precisam empacotar a experiência, por meio da análise, síntese e avaliação da experiência bruta, e construir modelos que representam a abstração dessas experiências. A aprendizagem organizacional é o know-how incorporado, resultante da capacidade de absorção, bem como da receptividade da empresa a uma nova tecnologia. Cada organização tem sua capacidade e habilidade de aprender a partir de outras organizações. A capacidade em absorver o conhecimento vem da habilidade em reconhecer os valores novos, externos, e assimilar e aplicar em fins comerciais. Quanto mais a organização conhece sua tecnologia, mais fácil torna-se o aprendizado. A Gestão do Conhecimento na Engenharia de Software As organizações podem aplicar a gestão do conhecimento para fornecer soluções nos seus negócios. Para evitar erros e retrabalho, para diminuir tempo e custos de desenvolvimento e aumentar a qualidade, as empresas desenvolvedoras Edição 21 - Engenharia de Software Magazine 41

necessitam aplicar, nos futuros projetos, o conhecimento obtido em projetos anteriores. Infelizmente, a realidade é que o time de desenvolvimento não se beneficia das experiências anteriores e repete os mesmos erros cometidos, embora alguns desenvolvedores saibam como evitá-los. O ganho individual e da organização poderia ser maior se o conhecimento fosse compartilhado. As atividades da gestão do conhecimento que suportam o desenvolvimento de software são: Gestão de documentos: muitos documentos, processos e atividades são envolvidos na engenharia de software. Estes documentos são freqüentemente criados, revisados e utilizados. Existem diversas ferramentas para a gestão de documentos; Gestão de competência: ou gestão de habilidades; quem sabe o quê uso do conhecimento não documentado; Reuso de software: programadores não se cansam de implementar a mesma solução; o reuso é para evitar o retrabalho; incentivo ao repositório de reuso. Somente será desenvolvido algo novo caso não se encontre nada para reusar; Aprender com experiências necessita de um suporte à memória do produto e do projeto. As práticas da engenharia de software que ajudam a construir memórias são: controle de versão, gestão de modificações, documentação de padrões e rastreabilidade de requisitos. Em todas estas práticas, a retenção do conhecimento é altamente indicada. Implementando a gestão do conhecimento na Engenharia de Software Para implementar a gestão do conhecimento na engenharia de software, muitos desafios e obstáculos estão presentes. Três questões são particularmente importantes: Questão tecnológica: A tecnologia de software suporta a gestão do conhecimento? É possível integrar todas as ferramentas para alcançar o nível planejado de compartilhamento? Questão organizacional: É um erro focar somente na tecnologia e esquecer a metodologia. É um risco cair na cilada tecnológica sem um planejamento adequado para a implementação da gestão do conhecimento; Assuntos individuais: Funcionários frequentemente não têm tempo de entrar ou procurar por conhecimento, ou não desejam disponibilizar seus conhecimentos. E não querem reusar conhecimentos dos outros. Uma análise das características da gestão do conhecimento revela que muitas organizações que falharam não determinaram seus objetivos e estratégias antes de implementar sistemas de gestão do conhecimento, não tendo uma boa preparação do método ou processo da gestão do conhecimento. É necessário despender um tempo antes de os benefícios da gestão do conhecimento aparecerem. Algumas culturas organizacionais incentivam o individualismo e limitam o trabalho cooperativo. A falta de uma cultura do conhecimento tem sido citada como um obstáculo para o sucesso da gestão do conhecimento. Se a organização não incentiva a cultura de compartilhamento, o funcionário se sente dono do seu conhecimento. Os funcionários não se sentem à vontade com as suas experiências negativas e lições aprendidas por falhas, temendo que as informações fornecidas possam ser usadas contra eles. Conclusão As organizações não devem apenas encorajar os funcionários, mas recompensá-los por compartilhar seus conhecimentos, procurar por conhecimentos e usá-los. A vantagem da experiência ou do conhecimento explícito é que pode ser armazenado, organizado e disseminado para terceiros, sem o envolvimento de quem o originou. Para alcançar vantagem máxima do compartilhamento, as empresas deveriam encorajar os funcionários a documentar e armazenar seus conhecimentos em um repositório. As comunidades são bons exemplos de compartilhamento de conhecimento. Elas se formam de modo relativamente fácil. As organizações se esforçam para aprender e aumentar suas expertises mediante as entradas vindas de fora da organização. Projetos em empresas de desenvolvimento de software cujo objetivo é construir uma base de conhecimento incluem um centro para estas bases, assim como o acúmulo de modelos empíricos para serem utilizados na validação de novos projetos. A maioria do conhecimento das empresas de software não é explícito. O tempo é curto para tornar o conhecimento explícito, e existem poucas ferramentas para transformar o conhecimento tácito em explícito. Porém, os artefatos do desenvolvimento de software se encontram em formato eletrônico, possibilitando o uso de ferramentas de TI para a retenção, e facilitando o compartilhamento e a disseminação. Links Artigo A Reference Architecture for the Component Factory http://www.lib.umd.edu/drum/bitstream/1903/7521/1/a%20reference%20architecture.pdf Artigo Knowledge Management in Software Engineering http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1003450 Nota do DevMan Insights: Uma visão que se manifesta de repente, como a compreensão de como resolver um problema difícil. O termo foi cunhado pelo psicólogo alemão e teórico linguista Karl Bühler. Dê seu feedback sobre esta edição! A Engenharia de Software Magazine tem que ser feita ao seu gosto. Para isso, precisamos saber o que você, leitor, acha da revista! Dê seu voto sobre este artigo, através do link: www.devmedia.com.br/esmag/feedback Dê seu Feedback sobre esta edição 42 Engenharia de Software Magazine - Organização Fábrica de Experiência