Click here to load reader
View
224
Download
6
Embed Size (px)
Net Objectives, 3/26/2003 NetObjectivesNetObjectives1
Comparing/Combining RUP, XP, and Scrum mixing the Process
Cocktail
www.netobjectives.comDan Rawsthorne
etNBJECTIVES
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 2
My Goal
Enlighten Teach
Entertain Feed
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 3
Agenda
The Software ProblemWhat is Process?Why Agility WorksDescription of RUPDescription of XPDescription of ScrumBest of Breed CombinationsAdditional Success Factors
Net Objectives, 3/26/2003 NetObjectivesNetObjectives4
THE SOFTWARE PROBLEM
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 5
The Purpose of a Project is
To provide a solution for usersThat consists of quality code
And doesnt cost too much
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 6
This Leads To
Technical Problem building quality code that satisfies the Users needsBudget Problem managing the project so that it doesnt cost too much to do so
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 7
The Technical Problem has Three Parts
RequirementsDetermine What the Software has to doChallenge: Satisfy the Users
ProductionActually Build the Software Challenge: Deliver Quality Product
MaintenanceModify Software to satisfy new requirementsChallenge: Maintain Quality
Agility has changed the ways we do theseAgility has changed the ways we do these
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 8
The Budget Problem has Many Issues
How much do I want to spend to solve the Users problem?Do my developers know how to solve the problem?Are we making progress? Are we wasting money? Are we on schedule?Is the product good enough? CMM? Are other stakeholders going to be satisfied?
How do we answer these questions?How do we answer these questions?
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 9
Players
User CommunityHas problems to be solvedUsually disorganized, chaotic, group
Customer TeamProvides requirements and validationShould speak with one voice
DevelopersActually builds the stuffLots of different roles here
Business OwnerManages resources and moneyOften ignored in Development Process
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 10
Relationships Between the Players
Developers
Customer
User
Business Owner
Develop Product
Requirements
Reporting, Monitoring
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 11
The Processes we are Discussing
The three processes being discussed today are modern ones that enable agility
Rational Unified Process (RUP) RationaleXtreme Programming (XP) Kent BeckScrum Ken Schwaber, Mike Beedle
These are not the only ones, but are some of the most common. Others include:
Dynamic Systems Development Method (DSDM)Crystal Methodologies Alistair CockburnFeature Driven Development (FDD) Peter CoadAdaptive Software Development Jim Highsmith...
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 12
Agenda
The Software ProblemWhat is Process?Why Agility WorksDescription of RUPDescription of XPDescription of ScrumBest of Breed CombinationsAdditional Success Factors
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 13
Every software project has a process: somewhere between hack it out and Space Shuttle softwareBasically, processes tell you what to do, and when to do it.
Plan-driven: you determine up-front what youre going to do, and follow itEvaluation-driven: at any given time figure out what the next thing to do is, and do itCombination: have an initial plan, continuously updating as needed
Process
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 14
A process is needed because stakeholders have various expectations for a software project, and want some guarantee that they will get them
Why do We Need a Process?
Quality codeProvide business valueFollow-on workCorrect codeQuality product offering
TrainingHelp deskEtc
Management visibility Quality of lifeAccurate progress reportsReact to changing requirementsCMM/ISOTest Coverage
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 15
Formal Process vs Team Discipline
There is a natural tension between having a disciplined team and having formal processThe more disciplined the team is, the lessformal process you needMost people arent disciplined enough, so some process is usually necessaryProcess is useful, but we must look at why we want the processEvery Project is different
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 16
What Defines a Process?
Principles/Fears what guides you?Activities what do you do?Roles who does it?Practices how do you do it?Products what gets produced (and persisted)?
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 17
Three Levels of Development
Business Level
Product Level
Development Level
BusinessNeedUsersUsers
CustomersCustomers
DevelopersDevelopers
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 18
Evaluating a Process
Understand the Process: what are the Principles/Fears, Activities, Roles, Practices, and Products?Determine the Coverage: how well does the process span the three levels of development?Use Your Judgment: does this process meet your needs, for this team, for this project, at this time?
Always remember: there is no one size fits all, silver bullet, process out thereAlways remember: there is no one size fits all, silver bullet, process out there
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 19
Agenda
The Software ProblemWhat is Process?Why Agility WorksDescription of RUPDescription of XPDescription of ScrumBest of Breed CombinationsAdditional Success Factors
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 20
Agility is
The ability to move faster than those things that can harm your projectThe ability to keep up with relevant changes
In requirementsIn knowledge of our systemIn environment
Agility is only relevant in a context
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 21
These Things Include
Changing RequirementsNew FunctionalityLearn more about system
Changing PrioritiesDifferent StakeholdersNew Situations
Changing EnvironmentNew OS, Languages, etc
Changing BudgetsFewer DevelopersDo More with Less
More
How Can We Make This Work?
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 22
In Order to Succeed You Need Something to Work With
All managers know that you need float in order to make a project workWhen developing software, where is the floatthat we have to work with?
Lets think about this for a minute
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 23
Scope, Functionality and Robustness
Scope measures how much is in the system the product of functionality and robustnessFunctionality is based on the problems being solved or goals being addressed
some is more important than othersThought of as the width of the systemDescribed mile wide inch deep
Robustness measures the depth at which functionality is handledSecondary versionsError recoveryBusiness RulesRefinementsThe actual depth
Example: say you had to handle names in your system
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 24
Say You Need to Handle Names in Your System
Names are how people identify themselvesJohn A. SmithProf. Frederick Martin Biedenweg III, PEChuck OReilly, Susan Walton-SmytheAlbert van der HoevenFrank O, Adolph WolfeschlegelsteinhausenbergerdorftCher, Madonna, StingNguyen Bich Frank Bich Nguyen Frank BichTchang Kai Chek, Chang Kai Chek, Chiang Kai-shek, JiangJieshi,
(the artist formerly known as Prince)As you can imagine, there is a large cost difference between handling the basic functionality and handling it allThis difference is the float you have to work with
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 25
Delivering Functionality in an Agile Project
What we know to start
What we budget
What we deliver
The Universe of Possibilities
MaxROI
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 26
Agenda
The Software ProblemWhat is Process? Why Agility WorksDescription of RUPDescription of XPDescription of ScrumBest of Breed CombinationsAdditional Success Factors
Net Objectives, 3/26/2003 NetObjectivesNetObjectives27
RUP (Rational Unified Process)
Process Framework
Well Engineered Development Management
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 28
Perceptions of RUP
Manageable, traceable, visible, the way things
should be done
Heavyweight, boring, waste of
time
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 29
RUP Principles
Use Case DrivenArchitecture CentricIterative and IncrementalUses UMLCan be Tailored to a Projects needs
Use Case DrivenArchitecture CentricIterative and IncrementalUses UMLCan be Tailored to a Projects needs
Develop Software IterativelyManage RequirementsUse component-based ArchitecturesVisually Model SoftwareVerify Software QualityControl Changes to Software
Develop Software IterativelyManage RequirementsUse component-based ArchitecturesVisually Model SoftwareVerify Software QualityControl Changes to Software
NetObjectivesNetObjectivesNet Objectives, 3/26/2003 30
The Real Motivation of RUPMy View
Making mistakes is expensive, so make