Eclipse Process Framework: Uma nova visão da engenharia de software Ana Paula Valente Pereira IST Organização e Gestão da Função Informática 22 de Outubro de 2007 1
Tenho alguns anos de experiência em desenvolvimento de software.. 2
Tive que ler muita documentação de boas práticas de desenvolvimento de software... SWEBOK CMM Waterfall Spiral RUP Lean SCRUM XP Crystal FDD DSDM
Mas o problema sempre foi a sua aplicação real... Artigos sobre desenvolvimento ágil Guia de Gestão de Configuração Livro de J2EE Templates de Projecto Guia JUnit Lições de Projectos Anteriores Artigos sobre.net Normas Corporativas O conhecimento não é facilmente adaptado a diferentes projectos ou novas práticas Não exite uma terminologia ou linguagem comum entre processos - redundância and inconsistências Não exite uma comunidade central ou mecanismo de comunicação que facilite a convergência de boas práticas nos diversos dominios.
A melhor solução que encontrei passa por: Normalizar a representação Métodos e criar bibliotecas de Conteúdo reutilizável Desenvolver e gerir Processos para aplicação aos projectos Boas Práticas Normas Corporativas Templates de Planos de Projecto Lições de Projectos Anteriores Configurar uma framework de processos coesa que se possa adaptar às necessidades de cada projecto
A comunidade Eclipse Process Framework tornou possível essa realidade Uma comunidade aberta com uma nova visão da engenharia de software
A Comunidade EPF IBM Per Kroll, Ricardo Balduino, Jim Ruehlin Scott Ambler, Bruce McIsac, Perter Haumer, Charles Yan Telelogic Chris Sibbald, Kurt Sand NumberSix Brian Lyons, Nate Oster Ivar Jacobson Int. DJ de Villiers University of British Columbia Steve Adolph European Software Institute Asier Azaceta Whatever Consulting Group Ana Valente Pereira Xansa, DSDM Mark Dickson www.eclipse.org/epf 7
É um fórum de convergência da industria para investimentos em processos: EXTENSIONS Project Mgmt. Open UP Basic (Agile) SCRUM (Agile) Oper. Mgmt. Systems Mgmt. XP, DSDM Plug-ins (Agile) In-house Content Plug-ins Free Process Content Plug-ins Comercial Process Content Plug-ins Extensible, Customizable, Flexible TOOLING (Authoring, Publishing) Tool Extensions Common Language & Vocabulary META MODEL (based on SPEM) Open Source Development ECLIPSE 8
A comunidade EPF definiu uma linguagem comum para descrever qualquer metodologia 9
Em cada método as pessoas representam papeis que executam tarefas, produzindo resultados 10
Existe uma clara distinção entre as noções de método e de processo 11
Os processos definem como são usados os métodos ao longo do tempo 12
A comunidade EPF disponibiliza uma ferramenta para editar os processos: o EPF Composer Roles Process Lifecycle: Phases Iterations Tasks Templates Guidelines Work Products 13
O EPF Composer gere o conteúdo dos métodos IC / Best Practices Gestão de Conteúdos de: Roles, Tasks, Workproducts, Guidelines, Templates, Checklists, White Papers, etc Books / Publications Standards / Regulations Homegrown Methods 14
O EPF Composer permite definir processos para diversos tipos de projectos Workflow Composição de processos reutilizando contéudo de métodos e padrões Gestão de WBS e Diagramas de Actividades Wizards para criação de Planos de Projecto Workflow Breakdown / Iterations / Increments / Sprints / Waterfall 15
O EPF Composer permite combinar processos, criando conteúdo derivado Ciclo de Vida Processo Unificado Ciclo de Vida SCRUM com Sprints Reutilização do Padrão de Testes do OpenUP no 16 SCRUM
A comunidade EPF disponibiliza processos para aplicação aos projectos de software... 17
As principais áreas de foco têm sido as Metodologias Ágeis... Agile Manifesto: Individuals and interactions Working software Customer collaboration Responding to change over processes and tools over comprehensive documentation over contract negotiation 18 over following a plan
... porque projectos complexos requerem outro ponto de vista Tradicional (Preditivo) Agile (Adaptativo) Condicionantes Requisitos Custo Prazo Plano Valor / Visão Estimativas Custo Calendário Funcionalidades 19
e bastante disciplina... mas não burocracia 20
Os processos ágeis mais conhecidos estão disponíveis para download em eclipse.org/epf 21
Introdução ao SCRUM 22
O SCRUM tem poucos elementos: 23
A equipa auto organiza-se nas reuniões 24
Medindo a sua velocidade a equipa consegue planear as entregas 25
Introdução ao OpenUP 26
O OpenUP é mínimo, completo e extensível 27
O OpenUP também organiza o trabalho da equipa em iterações 28
Mas o foco de cada iteração muda ao longo das fases do projecto 29
Porque cada fase tem objectivos bem definidos 30
O foco do trabalho a realizar em cada dia muda ao longo da iteração 31
Cada elemento da equipa gere o seu trabalho por incrementos 32
O gestor de projecto colabora com a equipa na definição do plano macro do projecto... 33
... e orienta a equipa no plano detalhado de cada iteração e na avaliação dos resultados 34
O analista é responsável pela gestão das intenções do cliente... Formas de Requisitos: Vision: Define o produto do ponto de vista do cliente Use Cases: Definem cenários de utilização Supporting Requirements: Definem requisitos técnicos e não relacionados com a utilização URPS+ 35
...elabora os requisitos ao longo do projecto e define como serão aceites Definição de Requisitos Iterativa Vision define o produto Use-case model define ambito release Use-case detail define trabalho numa iteração Supporting requirements are managed across the lifecycle Casos de Teste para Aceitação Alinhados c/ requisitos e bugs Especificam as condições a validar Determinam dados necessários 36
Arquitecto e developers são responsáveis pela integração contínua da solução Architecture Notebook Development is not a mini-waterfall 37
O OpenUP e o Agile Manifesto Responding to change over following a plan Customer collaboration over contract negotiation Working software over comprehensive documentation Individuals and interactions over process and tools 38
Como é que tudo isto se aplica aos projectos? 39
Projectos simples só precisam de um browser consultar os processos Download de uma versão 40 publicada
Qualquer interessado pode contribuir para um processo: epfwiki.net 41
Para adaptações mais complicadas deve ser usado o EPF Composer Adaptar: download composer e bibliotecas Utilizar o Composer para criar extensões: Substituir Templates Adicionar Guidelines ou Técnicas Especificas Adicionar Mentoring em Ferramentas Extender ou adicionar papeis, tarefas, exemplos, etc Publicar as configurações efectuadas 42
Grandes empresas fazem uso do EPF Composer para facilitar processos de certificação Browser de práticas CMMI, ISO, ITIL, etc 43
Novos processos podem ser partilhados na eclipseplugincentral.com 44
Para saber mais: Eclipse Process Framework (EPF) information http://www.eclipse.org/epf/ See right column for Getting Started, Newsgroup, Developers Mail List, etc Articles in Rational Edge, www.therationaledge.com DeveloperWorks: The Eclipse Process Framework Project, Kroll, http://www.ibm.com/developerworks/rational/library/05/1011_kroll/ Eclipse Review: A Development Library at your Fingertips, Kroll and Sand, http://www.eclipsereview.com/retrieve/er_200609.htm Rational Edge: Eclipse Process Framework Composer - Part 1: Key Concepts, Haumer, http://www.eclipse.org/epf/general/epfcomposeroverviewpart1.pdf Rational Edge: Eclipse Process Framework Composer - Part 2: Authoring Method Content and Processes, Haumer, http://www.eclipse.org/epf/general/epfcomposeroverviewpart2.pdf Books Per Kroll and Bruce MacIsaac, Agility and Discipline Made Easy Practices from OpenUP and RUP, Addision-Wesley (2006) 45
Duvidas? 46