Comparing-Comparing Rup, Xp And Scrum - Mixing The Process Cocktail.pdf

53
©Net Objectives, 3/26/2003 NetObjectives NetObjectives 1 Comparing/Combining RUP, XP, and Scrum – mixing the Process Cocktail www.netobjectives.com Dan Rawsthorne [email protected] e t N BJECTIVES NetObjectives NetObjectives ©Net Objectives, 3/26/2003 2 My Goal Enlighten Teach Entertain Feed

Transcript of Comparing-Comparing Rup, Xp And Scrum - Mixing The Process Cocktail.pdf

  • Net Objectives, 3/26/2003 NetObjectivesNetObjectives1

    Comparing/Combining RUP, XP, and Scrum mixing the Process

    Cocktail

    www.netobjectives.comDan Rawsthorne

    [email protected]

    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 code Provide business value Follow-on work Correct code Quality product offering

    Training Help desk Etc

    Management visibility Quality of life Accurate progress reports React to changing

    requirements CMM/ISO Test 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 Works

    Description 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 Bich

    Tchang 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 all

    This 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 RUP

    Description 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 Iteratively

    Manage Requirements Use component-based

    Architectures Visually Model

    Software Verify Software Quality Control Changes to

    Software

    Develop Software Iteratively

    Manage Requirements Use component-based

    Architectures Visually Model

    Software Verify Software Quality Control Changes to

    Software

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 30

    The Real Motivation of RUPMy View

    Making mistakes is expensive, so make sure you know what you want to do before you do itA good solid system has a good solid architecturePlans and Budgets are hard to follow, so you need many interim deliverables to make sure youre on track (management touch points)Things change, so be iterative and incremental so that you can modify your plans as necessary

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 31

    RUP Activities

    Lifetime of a system is made up of CyclesDevelopment, improvement, maintenance

    PhasesInception, Elaboration, Construction, Transition

    IterationProject Management, Analysis, Requirements, Design, Code, Test

    ActivityList later

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 32

    Cycles/Phases/Iterations

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 33

    Lifetime is made of Cycles

    Deliver v1.0

    Deliver v2.0

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 34

    Business Level

    Product Level

    Development Level

    Phases Concentrate on Different Levels of Development

    kickoff

    InceptionInception

    ElaborationElaboration

    ConstructionConstruction

    TransitionTransition

    delivery 1.0

    ElaborationElaboration

    ConstructionConstruction

    TransitionTransition

    delivery 2.0

    InceptionInception

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 35

    RUP Activities By Phase(Project Management)

    Inception Elaboration Construction

    Project Management

    Identify Risks ****** * *Develop Project Plan ****** * *Staff Project ****** *** ***Develop Iteration Plan * ***** *****Evaluate Iteration * *** *****Revisit Risk List * *** *****

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 36

    RUP Activities By Phase(Business Modeling)

    *******Find Business Workers/Entities

    ******Describe a Business Worker

    ******Describe a Business Entity

    *******Review the Business UC Model

    *******Review the Business Object Mdl

    *******Describe Business UC

    ******Structure Business UC Model

    ******Find Business Actors and UCs

    *******Capture a Common Vocabulary

    Business ModelingConstructionElaborationInception

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 37

    RUP Activities By Phase(Requirements)

    *********Find Actors and Use Cases

    ******Prioritize Use Cases

    ******Structure the Use Case Model

    *******Detail a Use Case

    ********User Interface Modeling

    ******User Interface Prototyping

    *********Review Requirements

    ********Capture a Common Vocabulary

    *******Elicit Stakeholder Requests

    *******Manage Dependencies

    ******Develop Vision

    RequirementsConstructionElaborationInception

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 38

    RUP Activities By Phase(Analysis & Design)

    *******Review Design

    ********Use Case Design

    *******Database Design

    *******Class Design

    ********Subsystem Design

    ********Review Architecture

    *********Describe Distribution

    *********Describe Concurrency

    **********Use Case Analysis

    ********Architectural Design

    **********Architectural Analysis

    Analysis and DesignConstructionElaborationInception

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 39

    RUP Activities By Phase(Implementation)

    ******Integrate Subsystem

    ******Review Code

    ******Perform Unit Test

    ******Fix A Defect

    *******Implement Classes

    ******Plan Subsystem Integration

    *******Integrate System

    ******Plan System Integration

    *******Implementation Model

    ImplementationConstructionElaborationInception

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 40

    RUP Activities By Phase(Test)

    ******Evaluate Test

    ******Implement Test Componentsand Subsystems

    ******Design Test Classes and Pkgs

    ******Execute Performance Test

    ******Execute System Test

    ******Execute Integration Test

    ******Implement Test

    *******Design Test

    *********Plan Test

    TestConstructionElaborationInception

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 41

    RUP Roles

    Project ManagerBusiness-Process AnalystBusiness DesignerBusiness ReviewerSystem AnalystUse Case SpecifierArchitectUser Interface DesignerRequirements Reviewer

    DesignerDatabase DesignerArchitecture ReviewerDesign ReviewerSystem IntegratorImplementorCode ReviewerTest DesignerIntegration TesterPerformance Tester

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 42

    RUP Practices

    The actual practices are pretty much left up to the developerHowever, there are lots of diagrams like these that show how the activities fit together

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 43

    Some RUP Products

    Vision Document/ Business CaseGlossarySoftware Development Plan

    Risk ListProject PlanMeasurement PlanCM PlanIntegration Build PlanTest Plan

    Iteration PlansIteration AssessmentsUse Case ModelAnalysis ModelDesign ModelDeployment ModelImplementation ModelTest Model

    Architecture Description (4+1) Use case view Analysis view Design view Deployment view Implementation view

    User Interface Prototype Interfaces Analysis Packages Design Subsystems Implementation Subsystems Components Test Cases Test Procedures Test Components Test Evaluations Defect Lists

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 44

    Discussion Questions

    Whos going to like RUP, and why?Whos going to hate RUP, and why?

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 45

    Agenda

    The Software ProblemWhat is Process?Why Agility WorksDescription of RUPDescription of XP

    Description of ScrumBest of Breed CombinationsAdditional Success Factors

    Net Objectives, 3/26/2003 NetObjectivesNetObjectives46

    XP (eXtreme Programming)

    Development Practices

    The Customer DrivesIts all about the Code

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 47

    Perceptions of XP

    Formalized hacking, waste of resources, no management control

    Cool, trusts the developers, lets

    me do my thing

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 48

    XP Principles

    Rapid FeedbackAssume SimplicityIncremental Change Quality Work

    Rapid FeedbackAssume SimplicityIncremental Change Quality Work

    Communication Simplicity Feedback Courage/Aggression

    Communication Simplicity Feedback Courage/Aggression

    Fine Scale Feedback Continuous Process Shared Understanding Programmer Welfare

    Fine Scale Feedback Continuous Process Shared Understanding Programmer Welfare

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 49

    The Real Motivation of XPMy View

    Good clean code is easy to changeCustomers make all business decisionsDevelopers make all technical decisionsMake iterations as short as possible so that Customer can drive with rapid feedback

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 50

    XP Activities

    Produce User StoriesRelease PlanningPlanning Game (iteration planning)DevelopmentSpike SolutionRun Acceptance Tests

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 51

    XP Roles

    Programmer CustomerTester Coach Tracker Manager

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 52

    Business Level

    Product Level

    Development Level

    XP Practices

    CollectiveCodeOwnershipCollectiveCodeOwnership

    UnitTestsUnitTests

    PairProgrammingPairProgramming

    ContinuousIntegrationContinuousIntegration

    RefactorMercilesslyRefactorMercilessly

    SimpleDesignSimpleDesign

    CodingConventionsCodingConventions

    SustainablePaceSustainablePace

    AcceptanceTestsAcceptanceTests

    PlanningGamePlanningGame

    SystemMetaphorSystemMetaphor

    OnsiteCustomerOnsiteCustomer

    SmallReleasesSmallReleases

    TestDrivenDevelopmentTestDrivenDevelopment

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 53

    XP Products

    Release PlanUser StoryCodeUnit TestsAcceptance Tests

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 54

    Use Case versus User Story

    Use Case: Describes how an Actor interacts with the system to achieve a Goal

    Focus is on user and validationTells a complete story

    User Story: A bite-size bit of functionality that has business value and can be developed in a few days

    Focus is on developer and productionPart of a complete story

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 55

    Use Case versus User StoryUse Case: Logon to System

    Actor: ATM Customer Scope: ATM Machine Description: After swiping the ATM Card, the user is asked for a password. The system verifies that the card is legitimate and that the password corresponds to the card. The user is then given access to all the other ATM commands. The user is given three chances to enter a correct password; after the third time the ATM Card is kept by the machine.

    Sample User StoriesDisplay welcome screen until user swipes ATM Card Display login screen until password is entered Verify that ATM card is legitimateVerify the password is legitimateImplement three strikes algorithm for password entrySwallow card if card is illegitimateSwallow card if password failsReturn Card if Network Goes Down

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 56

    Another Version

    Story: Ok on Password screen gives full capability to anybodyStory: fixed passwords for different capability suitesStory: "three Strikes" algorithmStory: Screen Capabilities by ID still fixed password for each capabilityStory: Different Password for each IDStory: Full Password capability (different password per ID per capability suite)

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 57

    Ever Unfolding Story

    Use Case

    Goals/Constraints

    Scenario

    Data Element Business RuleUI Element

    Extension Sub Use Case

    Other Models

    Requirements Model

    Vision

    (sub)System

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 58

    Use Cases to User Stories 1

    Use Cases Technical

    Sooner

    Later

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 59

    Use Cases to User Stories 2

    1

    Use Cases Technical

    Sooner

    Later

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 60

    Use Cases to User Stories 3

    1 2

    Use Cases Technical

    Sooner

    Later

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 61

    Use Cases to User Stories 4

    Use Cases Technical

    Sooner

    Later

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 62

    Discussion Questions

    Whos going to like XP, and why?Whos going to hate XP, and why?

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 63

    Agenda

    The Software ProblemWhat is Process?Why Agility WorksDescription of RUPDescription of XPDescription of Scrum

    Best of Breed CombinationsAdditional Success Factors

    Net Objectives, 3/26/2003 NetObjectivesNetObjectives64

    Scrum

    Management Strategy

    Communication and EmpowermentTeam/Management Interactions

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 65

    Perceptions of Scrum

    Huh?!

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 66

    Scrum Principles

    CommitmentFocusOpennessRespectCourage

    CommitmentFocusOpennessRespectCourage

    Built-in instability Change out of

    Chaos Self-organizing

    project teams Overlapping

    development phases Multi-learning Subtle control Transfer of learning

    Built-in instability Change out of

    Chaos Self-organizing

    project teams Overlapping

    development phases Multi-learning Subtle control Transfer of learning

    Visibility Communications Remove

    Impediments No Interference

    Visibility Communications Remove

    Impediments No Interference

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 67

    The Real Motivations of ScrumMy View

    Changes may be hard to make, so identify them as soon as possibleDevelopers know how to develop, so just stay out of their way and let them do itMake 30-day iterations for two reasons:

    Enough heft to allow Developers to believe theyre doing something realShort enough so that Management doesnt feel abandoned

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 68

    Scrum Activities

    Sprint PlanningSprintDaily ScrumSprint Review

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 69

    Scrum Roles

    Scrum MasterProduct OwnerScrum Team

    Not much detail, because Scrum is a light-weight management process, not a development process

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 70

    Scrum Practices

    Identify and Remove ImpedimentsIdentify Product BacklogDefine Sprint BacklogNo Interference, no Intruders, no PeddlersFrequent, First-Hand Observations

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 71

    Scrum Products

    Sprint BacklogRelease BacklogProduct Backlog

    Burndown Graph

    020406080

    100120140160180

    1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

    days

    wor

    k re

    mai

    ning

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 72

    Discussion Questions

    Whos going to like Scrum, and why?Whos going to hate Scrum, and why?

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 73

    Agenda

    The Software ProblemWhat is Process?Why Agility WorksDescription of RUPDescription of XPDescription of Scrum Best of Breed Combinations

    Additional Success Factors

    Net Objectives, 3/26/2003 NetObjectivesNetObjectives74

    Best of Breed Combinations

    My View of the Best

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 75

    Best of Breed Practices/Concepts

    These are the practices/concepts that I look for in a Projects process

    999Risk Management99Quality Code99Management Touch Points99Large Teams99Small Teams99Complex Projects

    99Use Cases

    999Developer/Support Interaction99Developer/Management Interaction99Developer/Customer Interaction99Validation-Centric

    ?9Architecture-Centric999Iterative and Incremental

    ScrumXPRUPPractice or Concept

    999Business Owner Buy-In

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 76

    Two Sample Cocktails

    Top-Down ProcessLarge, complex projectManagement centered, ceremony needed

    Bottom-Up ProcessSmall e-commerce projectDeveloper centered, keep as simple as possible

    Each project must mix its own cocktail

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 77

    Cocktail 1 Large, Complex Projectwhat Im thinking

    Start with RUPUse 1-month iterations, a la ScrumUse XP Practices as much as possible

    System Analyst or Architect acts as XP Customer for Construction PhaseAdapt XP Practices as I can for other Phases

    Handle Team/Management interaction in Scrum fashionTailor out as much else as I can, without running foul of any major Stakeholders fears

    Call the process Tailored RUP because thats what it is

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 78

    InceptionDevelop use cases in pairs (analyst/architect + user)Do just enough to develop a backlog to start with

    ElaborationDevelop architecture in pairs (analyst/architect + lead developer)Continue to work on Use Cases

    ConstructionMultiple XP teams developing different parts of the architectureScrum Master for each team with Project Manager over allCross-team pairing for interface and infrastructure issues

    TransitionIntegration of different parts of the architecturePairing to fix bugs and integrate

    Cocktail 1 what it looks like

    Iteration 1 Iteration 2 Iteration 3 Iteration 4 Iteration 5 Iteration 6

    Inception Elaboration Construction Transition

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 79

    Cocktail 2 Small e-commerce project

    Start with XPUse 1-month iterations, a la Scrum (shorter if your tools can handle it and the team wants to)Add other Scrum practices to manage the teams relations to management

    Scrum MasterProtect/Insulate the team

    Add Use Cases from RUPArchitect pairs with Marketing Staff to develop themMarketing sells use cases to the worldArchitect converts use cases to user stories for the developers

    Call the process XP++ or Scrum with an XP Center

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 80

    Cocktail 2 what it looks like

    Business Level

    Product Level

    Development Level

    CollectiveCodeOwnershipCollectiveCodeOwnership

    UnitTestsUnitTests

    PairProgrammingPairProgramming

    ContinuousIntegrationContinuousIntegration

    RefactorMercilesslyRefactorMercilessly

    SimpleDesignSimpleDesign

    CodingConventionsCodingConventions

    SustainablePaceSustainablePace

    AcceptanceTestsAcceptanceTests

    PlanningGamePlanningGame

    SystemMetaphorSystemMetaphor

    OnsiteCustomerOnsiteCustomer

    Small ReleasesSmall Releases

    TestDrivenDevelopmentTestDrivenDevelopment

    Use CasesUse Cases

    Identify and Remove ImpedimentsIdentify and Remove Impediments No Interference, no Intruders, no PeddlersNo Interference, no Intruders, no Peddlers

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 81

    Needs to Tasks Problem

    No matter what process you use, the fundamental technical problem is to analyze the users needs in order to determine development tasks

    Business Level

    Product Level

    Development LevelTaskTaskTask

    TaskTaskTaskTaskTaskTask

    TaskTaskTask

    Need

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 82

    Needs to Tasks - RUP

    Here are the major steps in moving from a Users need to a collection of Developer Tasks in RUP

    Business Level

    Product Level

    Development LevelTaskTaskTask

    TaskTaskTaskTaskTaskTask

    TaskTaskTask

    Need

    Use CaseDetail a Use Case

    Analyze a Use CaseUse CaseRealization Analysis ClassesAnalyze a Class

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 83

    Needs to Tasks - XP

    Here are the major steps in moving from a Users need to a collection of Developer Tasks in XP

    Business Level

    Product Level

    Development LevelTaskTaskTask

    TaskTaskTaskTaskTaskTask

    TaskTaskTask

    Need

    User StoryUser StoryUser StoryUser Story

    Magic Performed by Customer

    Iteration Planning Game

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 84

    Needs to Tasks Combined

    Heres what I recommend for the major steps in moving from a Users need to a collection of Developer Tasks

    Business Level

    Product Level

    Development LevelTaskTaskTask

    TaskTaskTaskTaskTaskTask

    TaskTaskTask

    Need

    User StoryUser StoryUser StoryUser Story

    Iteration Planning Game

    Use CaseDetail a Use Case

    Ever-Unfolding Story

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 85

    Agenda

    The Software ProblemWhat is Process?Why Agility WorksDescription of RUPDescription of XPDescription of ScrumBest of Breed CombinationAdditional Success Factors

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 86

    Team Values

    Cooperation Communication Trust Honesty Respect Courage/Aggression Quality work Play to win

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 87

    Environment

    Available Customer Source Code Management Coding Standards Continuous Integration Facilitate Communications Information Radiators Team Room

    Net Objectives, 3/26/2003 NetObjectivesNetObjectives88

    Please Fill Out Evaluations

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 89

    Net Objectives Who We Are

    Mission: Guiding and empowering our customers in their software development efforts via courses and coaching.Vision: Effective and efficient software development without suffering.We provide training, mentoring and consulting for all phases of object-oriented software development.We assist companies transitioning to object-oriented development by providing mentoring throughout the entire development process.

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 90

    Use Cases and Analysis

    Writing Effective Use Cases. Capturing functional requirements with Use Cases is a software development best practice. This two-day course provides theory and practice in writing use cases, an understanding of how use cases fit into software development, and a variety of optional topics. The course is largely based on Alistair Cockburn's book "Writing Effective Use Cases" - winner of the Jolt Productivity Award for 2001. As a certified member of Cockburn and Associates, we are one of the few companies authorized to teach it.

    Use Case Based Requirements Analysis. Use Cases are the best tool known for capturing and documenting the functional requirements for a system. Unfortunately, trying to capture a system's use cases all at once often leads to a severe case of "analysis paralysis". The Ever-Unfolding Story is an incremental technique for developing use cases and refining them into more detailed requirements. Because it's incremental, the Ever-Unfolding Story allows for frequent validation of the requirements, and supports both artifact-driven and agile development processes. The course consists of lecture and hands-on exercises, and the use case portion is largely based on Alistair Cockburn's book "Writing Effective Use Cases" - winner of the Jolt Productivity Award for 2001.

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 91

    Agile Development and OOA/UML

    Agile Development Best Practices. In simple terms, an Agile Project is one that is predicated on making sure it is always doing the right thing, not merely following a plan that has since gone out of date. Thecornerstone of this approach is getting and adapting to feedback as the project progresses. Most projects can't do this, so they fall further behind and either fail or provide inferior products. Changes are of many types, but the most common (and important) changes are to the system's requirements. This course analyzes what it means to be an agile project, and provides a number of best practices that provide and/or enhance agility. Different agile practices (including RUP, XP and Scrum) are discussed.

    Object-Oriented Analysis With the UML. The word "analysis" means many things when discussing software development. In this two-day course you will learn about three different kinds of analysis: Domain Analysis, Requirements Analysis, and Architectural Analysis. The course consists of lecture and many hands-on exercises; you will learn a number of different modeling techniques, and use many common Unified Modeling Language (UML) diagrams. Throughout the course the focus is on the Analyst's job - providing information that will give other developers a "fighting chance" to develop the correct software.

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 92

    Design Patterns Explained: A New Perspective on Object-Oriented Design. This course goes beyond merely teaching several design patterns. It also teaches the principles and strategies that make design patterns good designs. This enables students to use these advanced design techniques in their problems whether design patterns are even present. After teaching several patterns and the principles underneath them, the course goes further by showing how patterns can work together to create robust, flexible, maintainable designs.

    Refactoring and Unit Testing Key Skills for Agile Development. The practice of Agile Software Development requires, among otherthings, a high degree of flexibility in the coding process. As we get feedback from clients, stakeholders, and end users, we want to be able to evolve our design and functionality to meet their needs and expectations. This implies an incremental process, with frequent (almost constant) change to the code we're working on. Refactoring, the discipline of changing code without harming it, is an essential technique to enable this process. Unit testing, which ensures that a given change has not caused an unforeseen ripple effect in the system, is another.

    Design Patterns and Refactoring

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 93

    Java: On-site and Instructor Led Web-Based Training

    Object-Oriented Programming: Java Edition. Java is a powerful programming language, but its true value emerges only when a solid understanding of Object Oriented Programming techniques are applied. This two-day course focuses on the essential concepts of OO: Encapsulation, Inheritance, and Polymorphism, and includes practical examples and exercises using Java code. Emphasis is placed on implementation issues such as strong cohesion, loose coupling, and eliminating redundancy. Best practices, as illustrated by common design patterns are also discussed.

    On-line/instructor led Java Training. This is our on-line equivalent of our 5-day Java training. This is not a self-study program where you get e-mail answers to your question. This is a high-touch training program where you work in frequent (albeit remote) contact with both the instructor and your student community. The core of the Java language is taught as well as some SWING and many of the core Java classes. It requires about 4 hours a week from each participant and takes place over 12 weeks.

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 94

    C#: On-site and Instructor Led Web-Based Training

    C# for C++ and Java Developers. C# is the flagship language for .NET, and despite what many have suggested, it is neither Java with enhanced syntax. nor is it C++ with better manners. C# is a new language, with many new syntactic elements. Also, programming in .NET requires an understanding of the framework and the development process it isdesigned to support. This 1-day course is intended to elucidate the C# language in terms of syntax, process, and some early-adopter best practices, making the transition for Java and C++ developers as smooth as possible.

    On-line/Instructor Led C# Training. This course teaches the basics of the C# language as well as many of the standard C# classes that support the language. It is equivalent to a 5-day C# training class. It requires about 4 hours a week from each participant and takes place over 12 weeks.

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 95

    Object-Oriented Programming in .NET

    Object-Oriented Programming: C# Edition. The emergence of .Net for distributed computing has brought along with it a new flagship language: C# (C-Sharp). Those who are familiar with C, C++, and Java will find the syntax of C# relatively easy to absorb, but using the language properly will require a firm grounding in OO concepts and practices. This two-day course focuses on the essential concepts of OO: Encapsulation, Inheritance, and Polymorphism, and includes practical examples and exercises using C# code. Emphasis is placed on implementation issues such as strong cohesion, loose coupling, and eliminating redundancy. Best practices, as illustrated by common design patterns are also discussed.

    Object-Oriented Programming: VB.NET Edition. Visual Basic (VB) has undergone a major transformation with the new version for .Net. What was once an object-based, procedural language has now become an Object Oriented language akin to C++, Java, and C#. While the primary aspects of its syntax has not changed, this shift to a true Object Orientation will require those with an investment in VB knowledge to learn new concepts such as inheritance, polymorphism, designing to interfaces, and object composition. This 2-day course will take the experienced VB 5.0 or VB 6.0 developer and teach them the OO concepts they need to move to VB.Net.

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 96

    C++ and XML

    Object-Oriented Programming: C++ Edition. C++ is a powerful programming language, but its true value emerges only when a solid understanding of Object Oriented Programming techniques are applied. This two-day course focuses on the essential concepts of OO: Encapsulation, Inheritance, and Polymorphism, and includes practical examples and exercises using C++ code. Emphasis is placed on implementation issues such as strong cohesion, loose coupling, and eliminating redundancy. Best practices, as illustrated by common design patterns are also discussed.

    XML and Its Family of Technologies. XML is a powerful new standard for data modeling and communication, controlling presentation, and inter/intra-process communication. As XML is a cross-platform tool, it is a natural fit for the Java programming language, which is also operating system independent. This course introduces the student to XML and its primary supportive technologies such as SAX/DOM, DTD/Schema, JDOM, and XSLT, with an emphasis on the motivations behind these tools and the way they interrelate. The instructor will then provide detailed, practical examples of how these tools can be used in a Java-based project.

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 97

    Bibliography

    Best place to buy books: www.bestbookbuys.com

    Full bibliography at http://www.netobjectives.com/resources/rs_bks.htm

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 98

    Net ObjectivesCommunity of Practice

    We provide a public forum for discussion of topics including:

    Design patternsAgile methods (including XP, Scrum, RUP)Use casesEmergent design

    We also have several books under development on-line for review by the community.Go to http://www.netobjectivesgroups.com for more information.To subscribe to our e-zine, send an e-mail to [email protected] with subscribe in the subject line

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 99

    Bibliography Patterns - Core

    Design Patterns: Elements of Reusable Object-Oriented Software, Gamma, Helms, Johnson, Vlissides (still the best reference book on patterns)

    Design Patterns Explained: A New Perspective on Object-Oriented Design, Shalloway, Trott Design Pattern Java Workbook, Metsker (good for Java implementation)

    Pattern Oriented Software Architecture: A System of Patterns, Bushmann, (a little dated, but still useful)Timeless Way of Building, Christopher Alexander (a classic. The only book in my top ten personal and top ten business)

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 100

    Bibliography Patterns - Specialized

    Patterns Of Enterprise Application Architecture, Fowler, et. al.

    Pattern Oriented Software Architecture Vol 2: Patterns for Concurrent and Networked Objects, Schmidt, Stal, Rohnert, Buschmann, (great book for multithreaded, distributed patterns)

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 101

    Bibliography - Agile Methodologies

    Agile Software Development, CockburnAgile Software Development With Scrum, Schwaber, BeedleExtreme Programming Explained: Embrace Change, BeckExtreme Programming Installed, JeffriesExtreme Programming Applied: Playing to Win, Auer, Miller

    Bibliography - The UML and Use CasesWriting Effective Use-Cases, CockburnPatterns for Effective Use Cases, Adolph&Bramble, et. al. with contributions from our own Dr. Dan RawsthorneUML Distilled, Martin Fowler (easiest and best way to learn what the UML is)

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 102

    Bibliography - Java

    Effective Java, BlochJava Design, Coad (best book on how to do OO in Java by far)Thinking in Java (3rd Ed), Eckel. Great book to learn Java and object-oriented programming from.

    Bibliography - Miscellaneous(The) CRC Card Book , Bellin, Simone (CRC cards are a great way to verify initial designs)Multi-Paradigm Design for C++, Coplien (excellent description of commonality/variability analysis -- I even recommend the first part for Java programmers. See http://www.netobjectives.com/download/CoplienThesis.pdf for the books equivalent on the web)

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 103

    Bibliography Refactoring/XP Related

    Emergent Design: Refactoring and Design Patterns for Agile Development, by Scott L. Bain, Alan Shalloway, Dr. Dan Rawsthorne. Late 2003. For previews:http://www.netobjectives.com/emergentdesign/ed_toc.htmJava Tools for Extreme Programming: Mastering Open Source Tools Including Ant, JUnit, and Cactus, Richard Hightower, Nicholas LesieckiRefactoring, Martin Fowler (most in depth book on this old practice)Test Driven Development: By Example, Kent Beck. Not as great as we were hoping, but very useful.

    NetObjectivesNetObjectivesNet Objectives, 3/26/2003 104

    On-Line Books

    Many books are available on-line at:www.netobjectivesbooks.com/N_O_BookFeedback_Wiki/owbase/ow.asp?OnLineBooks

    Specific Articles of Great Interest

    Test Infected: Programmers Love Writing TestsA great article on doing test driven development with Junit byGamma and Beck - the authors of JUnit.

    http://members.pingnet.ch/gamma/junit.htm

  • NetObjectivesNetObjectivesNet Objectives, 3/26/2003 105

    Famous Sayings

    The check is in the mail.Ill respect you in the morning.Weve got all the requirements.Thatll never happen.That always happens.I'll write the tests later.I can write bad code because I know refactoring.Yes, Im sure.Well integrate it in later.Ill fix it later.