Title: The Eclipse Process Framework
1The Eclipse Process Framework
2The Eclipse Process Framework
- EPF is an Open Source project within the Eclipse
Foundation - Goals
- An extensible framework and tooling for
authoring, configuring and publishing processes - Exemplary Process first delivered is OpenUP
- EPF is NOT
- Only applicable for Eclipse Java development.
- Intended to create the perfect process
- EPF is based in SPEM 2.0 (Software Process
Engineering Metamodel)
3The Eclipse Process Framework
- EPF is for two audiences
- Process Authors and Coaches (Process Management
Team) - Tooling for creating and publishing processes
- Foundational process for starting point
- Libraries of additional content that can be
plugged-in - Process Consumers (Project Team)
- Published website of process content for simple
browsing - Guidance in the form of checklists, concepts,
guidelines - Browse the content adapted to your experience
level
4Basic Concepts - EPF
- Method Library
- All Method Elements are stored in a Method
Library - Method Plug-in
- Physical container for Method Packages and
Process Packages - Method Configuration
- A logical subset of a Method Library
- Delivery Process
- A complete and integrated approach for performing
a specific type of project
5Basic Concepts - EPF
- Libraries contain
- Method plug-ins
- Configurations
- The OpenUP library has
- Three method plug-ins
- base_concepts
- dsdm_openup
- openup
- Two delivery processes
- Openup_DSDM
- openup_lifecycle
- Two configurations
- OpenUP
- OpenUPDSDM
6Basic Concepts - EPF
- Process (When)
- End-End sequence of Phases, Iterations,
Activities and Milestones that define the
development lifecycle. - Defines When tasks are performed via Activity
Diagrams and/or Work Breakdown Structures
- Method Content (Who, What, Why, How)
- Highly re-useable information
- Definition of Roles, Tasks, Work Products and
associated relationships - Includes Guidance and Categories
- No timing information
7Method Content - EPF
- Role
- Set of related skills, competencies and
responsabilities - Are NOT individuals
- Individuals may play multiple roles
- Perform Tasks
- Are responsible for Work Products
- Work Product
- Tangible things used, modified or produced by a
Task - Roles use and produce Work Product performing
tasks - Are responsability of a Role
- 3 types
- Artifact
- Deliverable
- Outcome
- Task
- Define a assignable unit of work
- Perfomed by Roles
- Describe a work step-by-step to achieve a goal.
- Modify or produce Work Products
- Dont define WHEN they are performed in the
lifecicle.
8Method Content - EPF
- Guidance
- May be associate with Roles, Tasks and Work
Products - Different types depending upon purpose
- Detailed methodology and supporting information
- Tasks say what
- Guidance say how-to
- Categories
- Group related method elements
- Five Standard Categories
- Discipline
- Domain
- Work Product Kind
- Role Set
- Tool
- May be nested
- Can define custom categories
- Used to build views in published website
- Types
- Checklist
- Concept
- Example
- Guideline
- Estimate
- Considerations
- Practice
- Report
- Reusable Asset
- Roadmap
- Supporting Material
- Template
- Term Definition
- Tool Mentor
- Whitepaper
9Process Content - EPF
- Capability Patterns
- Sequence of related tasks, performed to achieve a
greater purpose - Tasks can be specialized for the given context
Task Descriptor (instance of Task)
Role Descriptor (instance of Role)
Work Product Descriptor (instance of Work
Product)
10Process Content - EPF
- Capability Patterns
- Capability Patterns may be nested and viewed
graphically - An Activity is an instance of a Capability Pattern
Activity (Instance of Capability Patterns)
11Process Content - EPF
- Delivery Process
- Defined using Work Breakdown Structure and/or
Activity Diagrams - Define end-end full lifecycle process
- May include Iterations, Phases, Milestones (type
of Activity)
12EPF Composer Authoring Perspective
Authoring Perspective
Library View
Task Editor (form based)
Configuration View
13EPF Composer Authoring Perspective
Form based plain text or
Rich Text editors
14EPF Composer Publishing
15Processes Available as Reusable EPF Specification
- EPF available s examples of process to use
- OpenUP
- SCRUM
- XP
- http//www.eclipse.org/epf/downloads/downloads.php
16Interesting Aspects of OpenUPSpecified in EPF
- An Agile Inspired process with its roots in the
UP - An iterative software development process that is
minimal, complete, and extensible - Minimal - Contains vital roles, tasks and
guidance - Complete - Complete for small co-located teams
- Extensible - Serves as a foundation that can be
extended and tailored
17OpenUP Core Principles
- OpenUP is based on a set of mutually supporting
core principles - Collaborate to align interests and share
understanding - Evolve to continuously obtain feedback and
improve - Balance competing priorities to maximize
stakeholder value - Focus on articulating the architecture
- OpenUP incorporates a number of agile practices
- Test-First Design
- Continuous Integration
- Agile Estimation
- Daily Standup, Iteration Assessment, Iteration
Retrospective - Self-organizing teams
- within the context of an iterative, incremental
lifecycle (UP).
18OpenUP Project Lifecycle
- OpenUP uses an iterative, incremental lifecycle.
- Proper application of this lifecycle directly
addresses the first core principle (Evolve). - The lifecycle is divided into 4 phases, each with
a particular purpose and milestone criteria to
exit the phase - Inception To understand the problem.
- Elaboration To validate the solution
architecture. - Construction To build and verify the solution in
increments. - Transition To transition the solution to the
operational environment and validate the
solution.
19OpenUP - Disciplines
- A discipline is a collection of tasks that are
related to a major "area of concern" within the
overall project. - Within the lifecycle, tasks are performed
concurrently across several disciplines. - Separating tasks into distinct disciplines is
simply an effective way to organize content that
makes comprehension easier. - OpenUP defines the following Disciplines
20OpenUP - Roles
- Roles define a set of related skills,
competencies and responsibilities. - OpenUP defines the following Roles
21Interesting Aspects of XPSpecified in EPF
- eXtreme Programming is a development process that
can be used by medium and small sized times in
the face of vague or rapidly changing
requirements. - Customer create stories that is a very
lightweight use-cases - Development is done iteratively and incrementally
- Every two weeks delivers working stories to the
customer - Programmers work on their programming tasks in
pairs
22XP Values
- Communication
- XP emphasizes face-to-face communication
- Simplicity
- XP presumes that it is better to do the simple
thing today - Feedback
- Continuous feedback allows the customer to steer
the project to success - Courage
- Perhaps a better name for this value is trust
23XP Practices
24XP Roles
25XP Work Products
26Interesting Aspects of SCRUMSpecified in EPF
- Is a mechanism in the sport of rugby for getting
an out-of-play ball back into play - Scrum focuses on the social and collective aspect
of development - Scrum Goal is to improve quality and
productivity, with an empirical approach, relying
on autonomous teaming - Empirism
- An empirical process requires a good visibility
- 2 regulation cycles
- During Daily Scrums
- During Sprint Reviews
- Scope
- not describe all the software development
activities - analysis, design, coding, testing
27SCRUM Lifecycle
28SCRUM Roles
29SCRUM Artifacts
30SCRUM Colaboration Points