Can RUP Be Agile? Can RUP Be Extreme? - Agile Logic · Can RUP Be Agile? Can RUP Be Extreme? ......
Transcript of Can RUP Be Agile? Can RUP Be Extreme? - Agile Logic · Can RUP Be Agile? Can RUP Be Extreme? ......
Can RUP Be Agile?Can RUP Be Extreme?
Orange County Rational Users’ GroupJanuary 20, 2005
By Paul Hodgetts, Agile Logic www.AgileLogic.com
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Introductions
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Solutions for Delivering Your Projects:Agile Process Adoption SolutionsCoaching, Consulting, Mentoring ServicesTraining in Agile Processes, Software Development and Enterprise TechnologiesTurn-Key Software Development Projects
Fullerton, CA, basedFounded 2001 by industry veteransContact info: www.agilelogic.com (866) 64-AGILE
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Paul Hodgetts
Team coach, trainer, consultant, developerFounder and CEO of Agile Logic22 years overall, 5 years agile experienceCertified ScrumMaster TrainerInnovator in Agile business and project managementAuthor (Extreme Programming Perspectives)
Presenter at conferences (ADC, XPAU, JavaOne)
Agile Alliance Program DirectorMember of CSUF agile advisory boardContact info: [email protected]
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Agenda
Development ProcessesProcess AttributesProcess SpectrumUnified ProcessAgile ProcessesProcess ContextsUP/RUP and Agility
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Development Process
Common understanding of “how we do things around here”Process can provide:
Guidance on what to do, when, by whoA framework for coordinationInstrumentation pointsGuidance on sufficiency and completeness
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Process Improvement
Looking for better ways to do things
Not “doing a process” for its own sake
Increasing our capability to deliver software
Adoption strategies – incremental to wholesale
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Agenda
Development ProcessesProcess AttributesProcess SpectrumUnified ProcessAgile ProcessesProcess ContextsUP/RUP and Agility
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Process Attributes
What kinds of things can we look at to better understand and discuss processes?
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Activity Sequencing
Phased ApproachGathers similar activity types togetherPreference towards serial completionUltimate in phased approach is waterfall
Concurrent and ParallelActivities occur opportunisticallyActivities of all types happening at same timePartial completion considered the norm
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Delivery Strategy
Defined by degree of iteration and incrementsIterative
Repeatedly executing a process cycleIterations provide synchronizing pointsIterations provide feedback points
IncrementalSystem is built in progressive stagesIterations add features and refinementsEach increment has a degree of completeness
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
People Strategies
Collaborative vs. HeroicIndividual vs. CollectiveDecision Structure:
Hierarchical, “command and control”Flattened, local empowerment
Assigned vs. Accepted AccountabilityDegree and Range of ResponsibilityFixed vs. Flexible Roles
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Predictive Planning and Control
Predict and plan expected activitiesManagement by controlling activities per planChange is minimized and managed via change control
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Adaptive Planning and Empirical Control
Prioritized set of deliverables form the planOpportunistic execution of activities to create deliverablesManagement via feedback and adaptationEmpirical process control
VisibilityInspectionAdaptation
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Project Balancing
ResourcesTimeScopeMust be in balance for a healthy project
Time Resources
Scope
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
The Resource Variable
Staffing is usually the least effective variable to adjust.
Staffing increases have long lead times.Increased intensity has diminishing returns.Team culture requires some degree of stability.
Tools and technology can provide benefits.Effective tools provide continuing benefits.Front-end costs need to be carefully amortized.The wrong tools and technology increase friction.
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
The Time Variable
Can be the most painful variable to adjustEarly commitments are usually date-based.Target dates are often the most important objective.There’s only so many hours in a day, and they pass by regardless of how we use them.
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
The Scope Variable
Can be the most effective variable to adjustCan adjust scope breadth – what’s included.Can adjust scope depth – refinement.Partial scope can often generate immediate returns.It is often preferable to reach a date with partial scope completely finished, rather than complete scope partially finished.
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Prescription
Prescriptive is like a cookbook:What to doWhen to do itHow to do it
CreativeLocal decisionsContext determines activities
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Formality and Ceremony
Formality specifies:Types and forms of work productsProcedures for activities
Ceremony specifies:Level of activity surrounding eventsDegree of audit trailsTypes and forms of communications
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Rigor
Rigor is the precision and completeness in the executionRigor is not a process attributeRigor is about the way the team approaches and executes their processA process may provide guidance and practices to encourage rigor
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Discipline
Discipline is about conscientiousness, courage, motivation, “doing the right thing”Discipline is not an attribute of a processDiscipline is about the way the team approaches and executes their processA process may encourage discipline by the provided activities and criteria
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Agenda
Development ProcessesProcess AttributesProcess SpectrumUnified ProcessAgile ProcessesProcess ContextsUP/RUP and Agility
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Chaotic Processes
Minimal shared process
Code and fix
Short term decisions
Can sprint very fast
Does not scale
Increasing debtQuality, design, integration, knowledge
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Bureaucratic Processes
Targeted for all contextsLarge and complexMandated activitiesComprehensive frameworkHigh overheadLong release cyclesInability to keep up with business needs
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Options for Process Improvement
“Heroic” ApproachRelies heavily on individual effortDifficult to plan, results unreliableHigh risk of failureHeavy human cost
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Options for Process Improvement
“Formal” MethodologiesDetailed, bureaucratic processEngineering/construction-style planning –predictive of activitiesExpensive, time-consuming to implementLimited success, not popular with teams
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Options for Process Improvement
“Agile” MethodologiesJust enough processAdaptive rather than predictivePeople-oriented focus to the processFaster and less-costly to implement
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Agenda
Development ProcessesProcess AttributesProcess SpectrumUnified ProcessAgile ProcessesProcess ContextsUP/RUP and Agility
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
UP Background
Objectory Process (1987-1995)Ivar Jacobsen at Ericsson
Rational Objectory Process (1996-1997)Rational approach (Philippe Krutchen)UML
Rational Unified ProcessGrady Booch, Jim Rumbaugh, other sourcesRational tool set
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Characteristics of the UP
A process framework, not a specific processRefined into a specific process instantiation
Tailored to a Development Case
Very broad coverageAll activities and work products are optionalEncourages minimal development case
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
UP Values
Use-case drivenArchitecture-centricIterative and incrementalAttack risk earlyDeliver executable architectures (systems)Provoke and accommodate change earlyBaseline architecture earlyPrefer component-based designs
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
UP Roles
Large collection of rolesRoles organized around disciplinesRoles further specializedUP encourages cross-functional teams
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
UP Work Products
~50 non-software work productsVision, risk list, iteration plan, use case model, design model
All are optional, some are recommendedWork products are information abstractionsOrganized within disciplines
Requirements, design, project management
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
UP Activities and Workflows
Large collection of activities to support the creation of artifactsGuidance provided for each activityStrong assignment of roles to activitiesActivities and workers grouped into workflows
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
UP Activity Sequencing
Iterative and incrementalIterations classified into “phases”
Inception, elaboration, construction, transition
Milestone objectives define boundaries
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
UP Characteristics
Sequencing and delivery is iterative and incremental, with some phasingEncourages collaboration, but pretty strong individual role assignmentsActivities suggest predictive planningNo preference for balancing strategyVery prescriptive, although lots of optionsFormality and ceremony optional
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
UP vs. RUP
The Unified ProcessBroad frameworkMany optional activities and work productsTool support optional and unspecified
The Rational Unified ProcessA specialization of the UP, still a frameworkA licensed productTemplates for work productsTailored to Rational toolset
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Agenda
Development ProcessesProcess AttributesProcess SpectrumUnified ProcessAgile ProcessesProcess ContextsUP/RUP and Agility
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
What Exactly Is an “Agile” Process?
Focus on adaptability and responsivenessBuilt around core strategies:
Iterative and Incremental Development (IID)Adaptive project managementCollaborative, “whole team” approachCommon shared vision and goals
Constructed from “best practices”:Emphasis on simplicity, lightness, communication, self-directed teams, quality and technical excellence
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
The World of Agile Processes
Extreme Programming (XP)Feature-Driven Development (FDD)ScrumDSDM (Dynamic System Development Method)Crystal Family of Processes, e.g. Crystal ClearLean Software DevelopmentAdaptive Software Development (ASD)Others: MSF Agile, Agile UP/RUP, Evo, Win-Win Spiral
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
The Agile Alliance
2001 – representatives from agile processes meet in Snowbird, Utah.Agreed on a “manifesto” of values and principles:
Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a plan
“That is, while there is value in the items on the right, we value the items on the left more.”
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
History of Extreme Programming
Early InfluencesIncremental, stakeholder-driven design process from AlexanderProgramming as learning from Papert, Kay
Kent Beck & Ward CunninghamMid-80s – Pair programming at Tektronix80s, 90s – Smalltalk culture produces refactoring, continuous integration, constant testing, close customer involvementGeneralized to other environmentsEarly 90s – Core values developed within patterns community, Hillside Group
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
History of Extreme Programming
1995 – Kent summarizes in Smalltalk Best Practices1996 – Ward summarizes in Episodes1996 – Kent adds unit testing, metaphor at Hewitt1996 – Kent takes on Chrysler C3 projectC3 adds Ron Jeffries as coachPractices refined on C3, published on Wiki
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
History of Extreme Programming
Scrum practices incorporated and adapted as planning game1999 – Extreme Programming Explained1999 – Fowler publishes Refactoring1999 – XP Immersion held, e-group formed2000 – more books, first conferencesEvolution continues through today2004 Kent Beck releases EPE 2nd Edition
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
What Is Extreme Programming?
XP is a specific instantiation of an agile processXP combines best practices in a different wayXP is a different approach to developmentXP provides a core process modelXP is not intended to be a complete framework
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Emergence
XP provides values and principles to guide team behaviorTeam expected to self-organizeXP provides specific core practicesEach practice is simple and self-completeCombination of practices produces more complex emergent behaviorSynergy of practices still not fully understood
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Why Is It Called “Extreme?”
Selected the minimal set of effective practices“Turned the knob up to 10” on each practice
Very short cycles (planning game)Continuous code reviews (pair programming)Extensive testing (unit testing, acceptance testing)Continuous integrationConstant design improvement (refactoring)Continuous architecture refinement (metaphor)Etc…
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
XP Values
CommunicationSimplicityFeedbackCourage
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
XP Principles
Rapid FeedbackAssume SimplicityIncremental ChangeEmbracing ChangeQuality WorkTeach LearningSmall Initial InvestmentPlay to Win
Concrete ExperimentsOpen Honest CommunicationWork With InstinctsAccepted ResponsibilityLocal AdaptationTravel LightHonest Measurement
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
XP Project Community
Emphasis on the “Whole Team”Collaboration and colocationThree general roles
CustomerDeveloperManager
Roles define areas of accountabilitySpecific job functions neither specified nor excluded (e.g., QA, PM, operations, etc.)
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
XP Process Cycle
XP is iterative and incrementalXP is driven by time-boxed cyclesThe rhythm of the XP process is crucial
Episodes
ProductLife Cycles
Releases
Iterations
Tasks
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
XP Process Cycle
Charter Release Release Release Release Wrap Up
Planning Iteration Iteration Iteration Delivery Retrospect
Planning Task Task Task Build & Test Retrospect
Pull Task Episode Episode Episode Story Test Retrospect
Pair Up TDD TDD TDD Integrate Retrospect
Write Test Write Code Refactor
1 to 6 months
1 week to 1 month
½ to 2 days
15 minutes to 2 hours
5 to 30 minutes
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
The Original 12 XP Practices
On-Site Customer The Planning Game Small Releases Testing Simple Design Pair Programming Refactoring Continuous Integration Collective Ownership Coding Standards Metaphor 40-Hour Week
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Evolving PracticesOn-Site Customer
Whole TeamThe Planning Game
Release PlanningIteration Planning
TestingAcceptance TestingUnit TestingTest-Driven Development
RefactoringDesign Improvement
40-Hour WeekSustainable Pace
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Additional Practices
Stand-Up MeetingsTracking & Metrics RetrospectivesBig Visible ChartsTeam Culture Consensus Skunk Works, War Room Version & Configuration Management, Automated Builds, Build Promotion
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
XP Characteristics
XP is iterative and incremental, there are no phasesEach iteration intended to be shippableXP is highly collaborative
Collective control and ownershipSelf-organizing teamsBasic role structure, assumes flexibility
XP utilizes adaptive planningPreferred balancing strategy is via scopeXP is creative overall, prescriptive at the practice levelXP discourages unnecessary formality and ceremony
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Agenda
Development ProcessesProcess AttributesProcess SpectrumUnified ProcessAgile ProcessesProcess ContextsUP/RUP and Agility
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Process Context
Factors to consider when choosing processPersonnel
Dynamism (% Requirements-change/month)
Culture (% thriving on chaos vs. order)
Size (# of personnel)
Criticality (Loss due to impact of defects)
5030
105
1
90
70
50
30
10
3
10
30
100
300
35
30
25
20
15
Essential Funds Discretionary
Funds Comfort
Single Life
Many Lives
(% Level 1B) (% Level 2&3)
0
10
20
30
40
Agile
Plan-driven
Personnel
Dynamism (% Requirements-change/month)
Culture (% thriving on chaos vs. order)
Size (# of personnel)
Criticality (Loss due to impact of defects)
5030
105
1
90
70
50
30
10
3
10
30
100
300
35
30
25
20
15
Essential Funds Discretionary
Funds Comfort
Single Life
Many Lives
(% Level 1B) (% Level 2&3)
0
10
20
30
40
Agile
Plan-driven
Source: Balancing Agility and Discipline, Boehm & Turner
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Agenda
Development ProcessesProcess AttributesProcess SpectrumUnified ProcessAgile ProcessesProcess ContextsUP/RUP and Agility
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
XP and RUP
XP plug-in for RUP from IBM/RationalAvailable from http://www-106.ibm.com/developerworks/rational/library/4156.html
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
Can RUP Be Agile?
RUP is a flexible frameworkRUP is often over-implemented
Subtractive vs. additive process design
Where RUP pushes against agilityPrescriptive nature of the frameworkTendency towards predictive planning
RUP can and has been implemented in an agile way
Copyright © 2004, Agile Logic, Inc. All Rights Reserved
References and ResourcesExtreme Programming Explained (2nd edition)
By Kent Beck
Software Development for Small TeamsBy Gary Pollice, et al
Balancing Agility and DisciplineBy Barry Boehm & Richard Turner
Lots and lots of other XP and RUP booksRon Jeffries’s XP Site
www.xprogramming.comIBM Rational’s RUP Site
www-306.ibm.com/software/awdtools/rup/index.htmlXP Discussion List
groups.yahoo.com/group/extremeprogramming/(Lots of other great Yahoo! groups.)
The Agile Alliance Sitewww.AgileAlliance.org
Agile Logic’s Resources Sitewww.AgileLogic.com/resources.html
So. Cal. Agile / XP User Groupgroups.yahoo.com/group/xpsocal/