Академический Документы
Профессиональный Документы
Культура Документы
BJECTIVES
Dan Rawsthorne
drdan@netobjectives.com
www.netobjectives.com
NetObjectives
My Goal
Enlighten
Teach
Entertain
Net Objectives, 3/26/2003 2
Feed
NetObjectives
Agenda
The Software Problem What is Process? Why Agility Works Description of RUP Description of XP Description of Scrum Best of Breed Combinations Additional Success Factors
NetObjectives
NetObjectives
The Purpose of a Project is To provide a solution for users That consists of quality code And doesnt cost too much
NetObjectives
This Leads To
Technical Problem building quality code that satisfies the Users needs Budget Problem managing the project so that it doesnt cost too much to do so
NetObjectives
Production
Actually Build the Software Challenge: Deliver Quality Product
Maintenance
Modify Software to satisfy new requirements Challenge: Maintain Quality
Agility has changed the ways we do these Agility has changed the ways we do these
Net Objectives, 3/26/2003 7
NetObjectives
NetObjectives
Players
User Community
Has problems to be solved Usually disorganized, chaotic, group
Customer Team
Provides requirements and validation Should speak with one voice
Developers
Actually builds the stuff Lots of different roles here
Business Owner
Manages resources and money Often ignored in Development Process
Net Objectives, 3/26/2003 9
NetObjectives
User
Requirements
Business Owner
Reporting, Monitoring
Customer
Develop Product
NetObjectives
These are not the only ones, but are some of the most common. Others include:
Dynamic Systems Development Method (DSDM) Crystal Methodologies Alistair Cockburn Feature Driven Development (FDD) Peter Coad Adaptive Software Development Jim Highsmith ...
Net Objectives, 3/26/2003 11
NetObjectives
Agenda
The Software Problem What is Process? Why Agility Works Description of RUP Description of XP Description of Scrum Best of Breed Combinations Additional Success Factors
12
NetObjectives
Process
Every software project has a process: somewhere between hack it out and Space Shuttle software Basically, processes tell you what to do, and when to do it.
Plan-driven: you determine up-front what youre going to do, and follow it Evaluation-driven: at any given time figure out what the next thing to do is, and do it Combination: have an initial plan, continuously updating as needed
Net Objectives, 3/26/2003 13
NetObjectives
Management visibility Quality of life Accurate progress reports React to changing requirements CMM/ISO Test Coverage
NetObjectives
15
NetObjectives
16
NetObjectives
Business Need
17
NetObjectives
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 Always remember: there is no one size fits all, silver bullet, process out there fits all, silver bullet, process out there
Net Objectives, 3/26/2003 18
NetObjectives
Agenda
The Software Problem What is Process? Why Agility Works Description of RUP Description of XP Description of Scrum Best of Breed Combinations Additional Success Factors
19
NetObjectives
Agility is
The ability to move faster than those things that can harm your project The ability to keep up with relevant changes
In requirements In knowledge of our system In environment
20
NetObjectives
Changing Priorities
Different Stakeholders New Situations
Changing Environment
New OS, Languages, etc
Changing Budgets
Fewer Developers Do More with Less
NetObjectives
22
NetObjectives
NetObjectives
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
Net Objectives, 3/26/2003 24
NetObjectives
What we budget
MaxROI
What we deliver
NetObjectives
Agenda
The Software Problem What is Process? Why Agility Works Description of RUP Description of XP Description of Scrum Best of Breed Combinations Additional Success Factors
26
NetObjectives
Process Framework
Well Engineered Development Management
27
NetObjectives
Perceptions of RUP
NetObjectives
RUP Principles
Use Case Driven Use Case Driven Architecture Centric Architecture Centric Iterative and Iterative and Incremental Incremental Uses UML Uses UML Can be Tailored to a Can be Tailored to a Projects needs Projects needs
Develop Software Develop Software Iteratively Iteratively Manage Requirements Manage Requirements Use component-based Use component-based Architectures Architectures Visually Model Visually Model Software Software Verify Software Quality Verify Software Quality Control Changes to Control Changes to Software Software
29
NetObjectives
30
NetObjectives
RUP Activities
Lifetime of a system is made up of Cycles
Development, improvement, maintenance
Phases
Inception, Elaboration, Construction, Transition
Iteration
Project Management, Analysis, Requirements, Design, Code, Test
Activity
List later
31
NetObjectives
Cycles/Phases/Iterations
32
NetObjectives
Deliver v1.0
Deliver v2.0
33
NetObjectives
Business Level
Inception Inception Transition Transition Inception Inception Transition Transition
Product Level
Elaboration Elaboration Elaboration Elaboration Construction Construction
Development Level
Construction Construction
34
NetObjectives
35
NetObjectives
36
NetObjectives
37
NetObjectives
38
NetObjectives
39
NetObjectives
40
NetObjectives
RUP Roles
Project Manager Business-Process Analyst Business Designer Business Reviewer System Analyst Use Case Specifier Architect User Interface Designer Requirements Reviewer Designer Database Designer Architecture Reviewer Design Reviewer System Integrator Implementor Code Reviewer Test Designer Integration Tester Performance Tester
41
NetObjectives
RUP Practices
The actual practices are pretty much left up to the developer However, there are lots of diagrams like these that show how the activities fit together
42
NetObjectives
Iteration Plans Iteration Assessments Use Case Model Analysis Model Design Model Deployment Model Implementation Model Test Model
Net Objectives, 3/26/2003 43
User Interface Prototype Interfaces Analysis Packages Design Subsystems Implementation Subsystems Components Test Cases Test Procedures Test Components Test Evaluations Defect Lists
NetObjectives
Discussion Questions
Whos going to like RUP, and why? Whos going to hate RUP, and why?
44
NetObjectives
Agenda
The Software Problem What is Process? Why Agility Works Description of RUP Description of XP Description of Scrum Best of Breed Combinations Additional Success Factors
45
NetObjectives
XP (eXtreme Programming)
Development Practices
The Customer Drives Its all about the Code
46
NetObjectives
Perceptions of XP
47
NetObjectives
XP Principles
Rapid Feedback Rapid Feedback Assume Simplicity Assume Simplicity Incremental Change Incremental Change Quality Work Quality Work Fine Scale Feedback Fine Scale Feedback Continuous Process Continuous Process Shared Understanding Shared Understanding Programmer Welfare Programmer Welfare
NetObjectives
49
NetObjectives
XP Activities Produce User Stories Release Planning Planning Game (iteration planning) Development Spike Solution Run Acceptance Tests
50
NetObjectives
51
NetObjectives
XP Practices
Business Level
OnsiteCustomer OnsiteCustomer AcceptanceTests AcceptanceTests SmallReleases SmallReleases SustainablePace SustainablePace PlanningGame PlanningGame
Product Level
CodingConventions Development Level RefactorMercilessly TestDrivenDevelopment CodingConventions RefactorMercilessly TestDrivenDevelopment SystemMetaphor SystemMetaphor CollectiveCodeOwnership CollectiveCodeOwnership PairProgramming PairProgramming
52
NetObjectives
XP Products
Release Plan User Story Code Unit Tests Acceptance Tests
53
NetObjectives
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 production Part of a complete story
54
NetObjectives
Another Version
Story: Ok on Password screen gives full capability to anybody Story: fixed passwords for different capability suites Story: "three Strikes" algorithm Story: Screen Capabilities by ID still fixed password for each capability Story: Different Password for each ID Story: Full Password capability (different password per ID per capability suite)
Net Objectives, 3/26/2003 56
NetObjectives
Goals/Constraints
Scenario
Extension
(sub)System
Data Element
UI Element
Business Rule
Other Models
Net Objectives, 3/26/2003 57
NetObjectives
Sooner Later
Net Objectives, 3/26/2003 58
NetObjectives
Sooner Later
Net Objectives, 3/26/2003 59
NetObjectives
Sooner Later
Net Objectives, 3/26/2003 60
NetObjectives
Sooner Later
Net Objectives, 3/26/2003 61
NetObjectives
Discussion Questions
Whos going to like XP, and why? Whos going to hate XP, and why?
62
NetObjectives
Agenda
The Software Problem What is Process? Why Agility Works Description of RUP Description of XP Description of Scrum Best of Breed Combinations Additional Success Factors
63
NetObjectives
Scrum
Management Strategy
Communication and Empowerment Team/Management Interactions
64
NetObjectives
Perceptions of Scrum
Huh?!
65
NetObjectives
Scrum Principles
Commitment Commitment Focus Focus Openness Openness Respect Respect Courage Courage Visibility Visibility Communications Communications Remove Remove Impediments Impediments No Interference No Interference
Net Objectives, 3/26/2003 66
Built-in instability Built-in instability Change out of Change out of Chaos Chaos Self-organizing Self-organizing project teams project teams Overlapping Overlapping development phases development phases Multi-learning Multi-learning Subtle control Subtle control Transfer of learning Transfer of learning
NetObjectives
67
NetObjectives
Scrum Activities
Sprint Planning Sprint Daily Scrum Sprint Review
68
NetObjectives
Scrum Roles
Scrum Master Product Owner Scrum Team
Not much detail, because Scrum is a lightweight management process, not a development process
Net Objectives, 3/26/2003 69
NetObjectives
Scrum Practices
Identify and Remove Impediments Identify Product Backlog Define Sprint Backlog No Interference, no Intruders, no Peddlers Frequent, First-Hand Observations
70
NetObjectives
Scrum Products
Sprint Backlog Release Backlog Product Backlog
Burndown Graph
180 160 140 120 100 80 60 40 20 0
work remaining
11
13
15
17
19
21
23
25
27
days
71
NetObjectives
Discussion Questions
Whos going to like Scrum, and why? Whos going to hate Scrum, and why?
72
NetObjectives
29
Agenda
The Software Problem What is Process? Why Agility Works Description of RUP Description of XP Description of Scrum Best of Breed Combinations Additional Success Factors
73
NetObjectives
74
NetObjectives
RUP
XP
Scrum
NetObjectives
Bottom-Up Process
Small e-commerce project Developer centered, keep as simple as possible
76
NetObjectives
Handle Team/Management interaction in Scrum fashion Tailor out as much else as I can, without running foul of any major Stakeholders fears
NetObjectives
Elaboration
Iteration 2 Iteration 3
Construction
Iteration 4 Iteration 5
Transition
Iteration 6
Inception
Develop use cases in pairs (analyst/architect + user) Do just enough to develop a backlog to start with
Elaboration
Develop architecture in pairs (analyst/architect + lead developer) Continue to work on Use Cases
Construction
Multiple XP teams developing different parts of the architecture Scrum Master for each team with Project Manager over all Cross-team pairing for interface and infrastructure issues
Transition
Integration of different parts of the architecture Pairing to fix bugs and integrate
Net Objectives, 3/26/2003 78
NetObjectives
NetObjectives
Business Level
OnsiteCustomer OnsiteCustomer AcceptanceTests AcceptanceTests
SustainablePace SustainablePace
CodingConventions Development Level RefactorMercilessly TestDrivenDevelopment CodingConventions RefactorMercilessly TestDrivenDevelopment SystemMetaphor SystemMetaphor CollectiveCodeOwnership CollectiveCodeOwnership PairProgramming PairProgramming
80
NetObjectives
Need
Task Task Task Task Task Task Task Task Task Task Task Task
81
NetObjectives
Use Case
Use Case Realization
Analyze a Use Case Analyze a Class
Analysis Classes
Development Level
Net Objectives, 3/26/2003
Task Task Task Task Task Task Task Task Task Task Task Task
82
NetObjectives
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
Iteration Planning Game
Need
Magic Performed by Customer
Development Level
Net Objectives, 3/26/2003
Task Task Task Task Task Task Task Task Task Task Task Task
83
NetObjectives
Need
Ever-Unfolding Story
Development Level
Net Objectives, 3/26/2003
Task Task Task Task Task Task Task Task Task Task Task Task
84
NetObjectives
Agenda
The Software Problem What is Process? Why Agility Works Description of RUP Description of XP Description of Scrum Best of Breed Combination Additional Success Factors
85
NetObjectives
Team Values
Cooperation Communication Trust Honesty Respect Courage/Aggression Quality work Play to win
86
NetObjectives
Environment
Available Customer Source Code Management Coding Standards Continuous Integration Facilitate Communications Information Radiators Team Room
87
NetObjectives
88
NetObjectives
89
NetObjectives
90
NetObjectives
NetObjectives
92
NetObjectives
93
NetObjectives
94
NetObjectives
NetObjectives
96
NetObjectives
Bibliography
97
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 info@netobjectives.com with subscribe in the subject line
Net Objectives, 3/26/2003 98
NetObjectives
Design Patterns Explained: A New Perspective on ObjectOriented 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)
99
NetObjectives
Pattern Oriented Software Architecture Vol 2: Patterns for Concurrent and Networked Objects, Schmidt, Stal, Rohnert,
Buschmann, (great book for multithreaded, distributed patterns)
100
NetObjectives
101
NetObjectives
Bibliography - Java
Effective Java, Bloch Java 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
verify initial designs)
(The) CRC Card Book , Bellin, Simone (CRC cards are a great way to 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)
102
NetObjectives
Hightower, Nicholas Lesiecki Refactoring, 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.
103
NetObjectives
104
NetObjectives
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.
105
NetObjectives