You are on page 1of 37

The Latest In Agile Processes -

OpenUP
Per Kroll, Chief Architect
IBM Rational Expertise Development &
Innovation, IBM
pkroll@us.ibm.com
IBM Software Group | Rational software

Per Kroll - Background

Chief Architect, IBM Rational Expertise


Development & Innovation (REDI)

Project lead Eclipse Process Framework

Core Member SWG Agile Adoption Team

(Co-) Author of
The Rational Unified Process Made Easy A
Practitioners Guide to RUP
Agility and Discipline Made Easy Practices from
OpenUP and RUP

2
IBM Software Group | Rational software

Presentation Overview

OpenUP

The Agile Kernel

Practices that Scale

Make OpenUP Your Own

3
IBM Software Group | Rational software

EPF Ecosystem In-house


Content Free Process
Plug-ins Content
EXTENSIONS Plug-ins
Project Mgmt.
Oper. Mgmt.
Systems Mgmt.

Commercial
Process
DSDM with Rule-Based Content
OpenUP Development Plug-ins

Basic Unified
Process
OpenUP Scrum XP
Adapted
Adapted from
from RUP
RUP Scrum

Tool
Extensions
Extensible, Customizable, Flexible TOOLING (Authoring, Publishing)

Common Language & Vocabulary META MODEL (Unified Method Architecture)

Open Source Development ECLIPSE


4
IBM Software Group | Rational software

EPF: Growing Ecosystem


Co-developers

Supporters

5
IBM Software Group | Rational software

OpenUp in a Nutshell Influence

RUP
XP
AMDD

Scrum
Eclipse Way
RUP

RUP
DSDM

6
IBM Software Group | Rational software

Baseline Practices from Eclipse Process Framework (EPF)


(Under Development)

Other Open Source Commercial Practices Company X Practices





Additional Practices to Scale Agility
Shared Vision Agile Architecture
UC-Driven development Evolutionary Design
Risk-Value Lifecycle
Agile Kernel
OpenUP
Iterative development Continuous Integration
Scrum Releasel planning Test-Driven Development XPish
Whole Team Independent Testing

Many practices contain other smaller practices. E.g.


- Whole team contains Sustainable Pace and Self org. Different role sets can be applied. Do
- TDD contains Pair Programming and Refactoring you want Scrum roles or OpenUP
- Iterative development notions of backlogs and Agile roles for your practices?
Estimation.
You can select / deselect also the smaller practices.

7
IBM Software Group | Rational software

OpenUP is Minimal, Complete, and Extensible.

OpenUP is additive
It starts with the minimum
You can always add or modify
The bias is toward simplicity and low-
ceremony, because each addition takes work.

8
IBM Software Group | Rational software

OpenUP is Minimal, Complete, and Extensible.

You can start doing OpenUP right away.


Process Wonks are optional.
Prescribes specific technical practices.

9
IBM Software Group | Rational software

OpenUP is Minimal, Complete, and Extensible.

A foundation to build on.


Free and open source.
There is no one best way.
Supported by the Eclipse Process
Framework Composer tool.
Add and remove practices as needed.

10
IBM Software Group | Rational software

OpenUP
Demo
11
IBM Software Group | Rational software

Presentation Overview

OpenUP

The Agile Kernel

Practices that Scale

Make OpenUP Your Own

12
IBM Software Group | Rational software

The Agile Kernel

Other Open Source Commercial Practices Company X Practices





Additional Practices to Scale Agility
Shared Vision Evolutionary Architecture
UC-Driven development Evolutionary Design
Risk-Value Lifecycle
Agile Kernel
OpenUP
Iterative development Continuous Integration
Scrum Release planning Test-Driven Development XPish
Whole Team Independent Testing

13
IBM Software Group | Rational software

Practice: Iterative Development

Focuses the team

Time-boxed

Has a plan and assessment

Prioritized work

Agile estimation

Produces a demo-able shippable build

14
IBM Software Group | Rational software

Prioritize and Manage Work: Work Items List

Heavily influenced by Scrum/XPs Product and Iteration Backlog.

Each iteration implements the


High Priority
highest-priority work items

High-priority work items New work items can be


should be well-defined added at any time

Work items can be


reprioritized at any time
Low-priority work items
can be vague Work items can be
removed at any time
Low Priority

Work Item List

15
IBM Software Group | Rational software

Executing an iteration

Iteration planning Stable weekly build Stable iteration Iteration review /


build Retrospective
A few
hours A few
hours

A few
days

Continuous
Upfront planning Continuous bug-fixing /
and architecture micro-increments / micro-increments /
bug-fixing / builds builds

(Kroll, 2007)16
IBM Software Group | Rational software

Practice: Whole Team

Self organization
Motivated team members
Manager coaching and leading, not directing
Decision making People closest to the decision make the decision
Work assignment - Pull instead of push model
It is about involvement and respect, not wool sweaters and hugging

Collaboration
Daily meetings
Extended team
X-functional team organized around components

Sustainable Pace

17
IBM Software Group | Rational software

Practice: Release Planning

Project Plan explains at high level Project Plan defines


how to go from here to here Major milestones
Number of iterations
2 3 4 5 6 Objectives of each iteration
1
1 2 3 4 5 6
Planned Path

Stakeholder
Satisfaction Space
Initial Project
Status
Iteration Plan defines
Detailed Iteration Plan is done
Iteration Objectives
for one iteration at the time
Who takes on what tasks
Evaluation criteria

18
IBM Software Group | Rational software

Iterations: Use Feedback to Change Direction

Planned
Planned Planned
Planned
Initial
Initial State
State Completion
Completion

Actual 1 2 3 4 5 6
Actual
Initial
Initial State
State Planned Path

Actual Path
Initial Project 1
Status 2 3
4 Stakeholder
7
5 6 Satisfaction Space

19
IBM Software Group | Rational software

Practice: Test Driven Development

Automated acceptance testing drives your


detailed requirements efforts
Automated developer testing drives the detailed
design of the system
Tests form the majority of your detailed
specifications
Youll still need some high-level models to
provide overviews
This is the first time in IT history that developers
are motivated to keep the specifications up-to-
date
An example of single sourcing information
www.agiledata.org/essays/tdd.html
Slide provided by Scott Ambler.
20
IBM Software Group | Rational software

Practice: Continuous Integration

Update and test our code constantly


Daily builds are a good start
Integrating each mini-increment is better
A good build:
Compiles the code
Reruns your test suite
Optionally runs a static code analysis tool
You need to automate your build process

21
IBM Software Group | Rational software

Practice: Independent Testing

The agile cook book answer


Testing is the responsibility of the development team
Business reality for many mission / safety critical or complex environments
Sometimes extremely advanced test environments, requiring specialized knowledge and
advanced setups
Extensive testing required, sometimes on many platforms
Agile development applied to complex test environments
Development team responsible for high-quality product, but maybe only on or a few
platforms
When necessary, have separate test team to test on other environments and for more
complex test environments (such as advanced load testing)

22
IBM Software Group | Rational software

Presentation Overview

OpenUP

The Agile Kernel

Practices that Scale

Make OpenUP Your Own

23
IBM Software Group | Rational software

Additional Practices and Hooks to Scale

Other Open Source Commercial Practices Company X Practices





Additional Practices to Scale Agility
Shared Vision Evolutionary Architecture
UC-Driven development Evolutionary Design
Risk-Value Lifecycle
Agile Kernel
OpenUP
Iterative development Continuous Integration
Scrum Release planning Test-Driven Development XPish
Whole Team Independent Testing

24
IBM Software Group | Rational software

Practice: Risk-Value Lifecycle

Provides the extended team with explicit milestones


centered on balancing risk mitigation and value creation
Key stakeholders frequently do not have time to carefully review
and discuss the results of every iteration. Fewer key milestones
are needed.
Forces extended team to agree on:
Do we understand what
we are building?
Do we understand how
to build it?
Are we ready to release
in the near future?
iteration

iteration

iteration

iteration
iteration
iteration

iteration
Can we release now?

25
IBM Software Group | Rational software

Practice: Vision

Ensure that everybody pulls in the same direction


Provides the why and the high-level requirements and design constraints.
A short read to ensure all stakeholders and team members understand what
the project is about

Content areas covered in vision


Problem Statement
Product Positioning Description (elevator pitch)
Stakeholders and End Users
Features
Constraints and Quality Measures

26
IBM Software Group | Rational software

Vision Common Mistakes

Too long people will not read it


Hiding the vision document the point was to use it to point everybody in the same
direction
Does not include an elevator pitch never got to the core
No clear articulation of stakeholders how can you build the right system if you do
not know who you need to work with to get it right?

27
IBM Software Group | Rational software

Practice: Use-Case-Driven Development

Provides a collaboration space for the x-functional team (plan,


req, dev, test, doc, etc ) centered around end-to-end usage scenarios
How you document the results of that documentation is secondary.

Who is in the x-functional team?


Stakeholder / user What will I get?
Developer What do I need to develop?
Tester What needs to be tested?
Tech doc What should I write in online help / doc?
Manager What should be done in which iteration?
Architect How do I drive out technical risk?

28
IBM Software Group | Rational software

Practice: Evolutionary Architecture

Identify architectural issues and prioritize with any other work


Just-in-time' architecture work
Prioritization will be based on need for technical risk mitigation versus value creation
Implement and test key capabilities as a means to address architectural issues
Document key architectural decision in an Architectural Notebook
Consider early model brainstorm and implementation of minimal code to validate
the assumptions behind the architecture
The architecture is never done. It keeps on evolving.

29
IBM Software Group | Rational software

Practice: Evolutionary Design

Effectively take and communicate design


decisions
Model the details just in time (JIT)
No big upfront design
Travel light
Document design with the level of detail
required based on your context
May be enough to reference applicable
patterns and some high-level decisions?
You need good modeling tools

30
IBM Software Group | Rational software

Sample Practices to Address Agility at Scale


Sample Scaling Factors Sample Practices
Management related practices
Risk-value lifecycle
Large teams Requirements related practices
Shared vision - Ensure that everybody pulls in the
same direction
Use-Case-Driven Development Drive planning,
req, dev, test, doc, etc. based on end-to-end usage
Geographical distribution scenarios
Architecture management practices
Agile Architecture implement key aspects of the
applications to determine what are the correct
architectural decisions
Application complexity
Evolutionary design - Effectively take and
communicate design decisions

31
IBM Software Group | Rational software

Summary: Sample Practices to Address Agility at Scale

Management related practices


Risk-value lifecycle Provides the extended team with explicit milestones centered
on balancing risk mitigation and value creation
Requirements related practices
Shared vision - Ensure that everybody pulls in the same direction
Use-Case-Driven Development Provides a collaboration space for the x-
functional team (plan, req, dev, test, doc, etc ) centered around end-to-end usage
scenarios
Architecture management practices
Agile Architecture implement key aspects of the applications to determine what
are the correct architectural decisions
Evolutionary design - Effectively take and communicate design decisions

32
IBM Software Group | Rational software

Presentation Overview

OpenUP

The Agile Kernel

Practices that Scale

Make OpenUP Your Own

33
IBM Software Group | Rational software

Adoption Advice

Identify what you are trying to achieve as a business


Reduce Time-to-Market, Improve Quality, Increase Innovation,
Agility at Scale complexity drivers
Adopt (only) those practices that will help you achieve those business objectives
Do an incremental adoption, learn as you go
Use different sources for practices: Scrum, XP, OpenUP, RUP, Eclipse Way, AMDD,
Capture your own lessons learnt (augmentation of existing practices and new practices)
Consider consistency across your organization
Are there some practices that everybody should follow?
Which practices fit in what context?

34
IBM Software Group | Rational software

EPF Composer Can Help

EPF Composer capabilities


Pick out the processes or practices you want to adopt
Publish desired processes and practices as a Web site for easy consumption
Leverage EPF Wiki so team members can modify and provide feedback on their
process
Customize a process or individual practices
Create new processes or practices

35
IBM Software Group | Rational software

Resources

EPF / OpenUP: http://www.eclipse.org/epf/

Guidance on incremental adoption of a process:


Agility and Discipline Made Easy Practices from OpenUP
and RUP, Kroll and MacIsaac, Addison-Wesley, 2005

36
IBM Software Group | Rational software

Copyright IBM Corporation 2007. All rights reserved.


The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible
for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or
representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in these materials
to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may
change at any time at IBMs sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way.
IBM, the IBM logo, the on-demand business logo, Rational, the Rational logo, and other IBM products and services are trademarks of the International Business Machines Corporation,
in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.

37

You might also like