Download IJC - IPM

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Phase-gate process wikipedia , lookup

Construction management wikipedia , lookup

PRINCE2 wikipedia , lookup

Transcript
Iterative Project
Management
Chapter 3.3 - Controlling an Iterative Project
Modified considerably by Instructor
Many notes from authors not directly found in
chapters.
The Role of Documentation
• Documentation has many roles to play on a project
• Enable communication
– Much documentation tends to be temporary artifacts to support
development.
– Generally used for communications among team members.
– Explanation, education, reporting what’s going on in project…
• Establish a permanent record
– System’s structure and behaviors;
– May provide info for maintenance / change in the future.
– History, justification of decisions, description of key
decisions..
• Provide evidence
–
–
–
–
Agreements among stakeholders;
Achievements;
Records of what has been done.
Results of management and technical reviews.
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
2
Bittner and Spence have thoughts on ‘progress:’
• Progress is NOT indicated by production of documentation in
itself.
• Progress is much better indicated by:
• Increased understanding,
• shared and accepted decisions,
• agreements reached between parties, and, importantly
• working software
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
3
Documentation: How much is enough?
• Enough documentation is required to
–
–
–
–
–
establish a shared vision,
reduce risk,
enable management control,
preserve the integrity of the design and
involve the stakeholders in the project.
– GOTO 11
– You are responsible for slides in between…
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
4
The Role of Requirements
• Goals related to requirements include, to:
–
–
–
–
–
Establish a shared vision
Bridge the gap between the business and the supplier
Communicate the intent of the system
Define the capabilities required of the system
Occasionally: Act as a contract between the stakeholders and the
development team
To establish and maintain agreement with the
customers and other stakeholders on what the
system should do.
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
5
According to the RUP: Purpose of Requirements is:
• To establish and maintain agreement with the
customers and other stakeholders on what the system
should do.
• To provide system developers with a better
understanding of the system requirements.
• To define the boundaries of (delimit) the system.
•  To provide a basis for planning the technical
contents of iterations.
•  To provide a basis for estimating cost and time to
develop the system.
• To define a user-interface for the system, focusing on
the needs and goals of the users
• (Right arrows are mine. Our emphasis here…)
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
6
From a Management Perspective, Requirements:
• Define the scope of the system
– Form the basis of agreement and negotiation with the
stakeholders
• Define the releases
– Both internal and external
• Drive development activities
– Particularly testing and assessment
• Form the basis for estimating and measuring progress
Managers need to be aware of the
requirements set and how they are managed.
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
7
The Role of Architecture
• The architecture represents the significant decisions
about the organization of the system
– It’s the 20% of ‘stuff’ that makes 80% of the difference
– Architecture constrains Design and Implementation
• We talked about this quite a bit! How so?
Discuss.
• Proving the architecture is a significant milestone for
any technology project:
– Get the architecture right
• before committing significant resources to the project. Why?
• before worrying about completeness and precision in the
requirements, test cases, design and code
• How do you ‘prove’ the architecture is correct?
Managers need to be aware of the architecture and
the set of components it defines.
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
8
Architecture continued….If you agree, HOW SO???
• Software architecture encompasses the set of significant
decisions about the organization of a software system
– Selection of structural elements & interfaces by which a system is
composed
– Behavior as specified in collaborations among those elements
– Composition of these structural and behavioral elements into larger
subsystems
– Architectural style that guides the overall organization and
communications.
• Software architecture also involves
–
–
–
–
–
Functionality & Usability
Resilience & Performance
Reuse & Comprehensibility
Economic and technology constraints and tradeoffs
Aesthetic concerns (elegance)
• Grady Booch, Philippe Kruchten, Rich Reitman, Kurt Bittner;
Rational (derived from Mary Shaw)
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
9
Iterative Development Requires Discipline
Iterative Project Management
Requirements
Analysis &
Design
Code &
Unit Test
Continuous
Assessment
Architecture
Environment / Configuration and Change Management
To iterate, all of the core software development disciplines are applied every
iteration to produce a release. Some of the disciplines are particularly strained
by iterative and incremental development.
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
10
Selecting A Development Process
Method
Comments
Unified Process &
Variants
Use-case driven and architecture-centric. Widely
applicable and variable.
Extreme
Programming
Light weight, disciplined, developer focussed process.
Scrum and DSDM
(Dynamic Systems
Development Process)
More management approaches than development
methodologies.
The iterative and incremental development
process you select should be based on reducing
project risk.
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
11
• There are many other iterative and incremental methods
–
–
–
–
–
–
Adaptive Software Development,
MBASE
Alistair Cockburn’s Crystal Methods
Feature Driven Development (FDD),
Lean Development (LD)
Pragmatic Programming, and more
• Most methods (certainly including the UP), are compatible with, or
recommend, a use-case driven approach.
• Nearly all methods adopt OO / component-based development
• All methods listed will work when applied by the right people to the
right kind of problem.
• All the methods contain good practices you could apply to your
projects.
• All of the methods are agile and adaptive in one way or another.
GOTO 17
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
12
The Unified Process’s Key Requirement Artifacts
Key Requirement Artifacts
Vision
Use-Case Model
© 2005 Ivar Jacobson International
Supplementary
Specification
Iterative Project Management / 02 - Controlling an Iterative Project
13
An Introduction to Use-Case Modeling
• A way to establish the requirements of the system
– Use cases place requirements in context
• A way to establish the system boundary
– The model identifies who or what interacts with the system and
what the system should do
• A way to iteratively evolve the requirements
• A way to communicate the requirements to all the
stakeholders
– The use cases provide a common thread through all project
activities
A planning instrument for the management of
iterative and incremental development projects
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
14
Use-Case Modeling: Actors and Use Cases
Icon
Definition
An actor defines a role that a user can play when
interacting with the system. A user can either be an
individual or another system or a device.
An Actor
A use case describes how an actor uses a system to
achieve a goal, and what the system does for the actor
to achieve that goal. It tells the story of how the system
and its actors collaborate to deliver something of
value for at least one of the actors.
A Use Case
Bolding is mine.
Source: Use Case Modeling, Kurt Bittner & Ian Spence, Addison Wesley 2002
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
15
• The two main concepts involved in use-case modeling are
Actors and Use Cases.
• The definitions above are taken from Use Case Modeling,
Kurt Bittner & Ian Spence, Addison Wesley 2002.
• The more formal UML definitions are:
• Actor: A coherent set of roles that users of use cases play
when interacting with these use cases.
• Use Case: A description of a set of sequence of actions,
including variants, that a system performs that yields an
observable result of value to a particular actor.
• We prefer Bittner and Spence’s more expansive, but
compatible definitions, as they are less self-referential,
and hopefully, more approachable.
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
16
Looking Inside A Use Case
• Basic Flow
– The normal way of attaining the value,
• The expected path through the use case
• Alternative Flows
– Other ways of attaining the value
– Exception and error conditions
• Scenarios
– A description of one particular path through the use case (the
basic flow plus 0 or more alternative flows)
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
17
Use Cases: Evolving Requirement Definitions
“Maturity Levels” or “Levels of Granularity.”
One version is not necessarily ‘better’ than another….
Can be individually used at different times for different purposes:
Briefly
Described
Discovered
Bulleted
Outline
Detailed
Description
Essential
Outline
Fully Described
Source: Use Case Modeling, Kurt Bittner & Ian Spence, Addison Wesley 2002
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
18
Use Cases Drive Other Development Activities
Authoring State
Primary Purpose
Downstream Activities : Used for:
Discovered
Identify the use case.
Scope Management
Briefly Described
Summarize the use case’s
purpose.
Scope Management
Bulleted Outline
Summarize the shape and
extent of the use case.
Scope Management
Low Fidelity Estimation
Identify Risks
Identification of the components involved in
delivering the use case (See next slide)
Essential Outline
Summarize the essence of
the use case.
User Interface Design and prototyping.
Collaborative, creative Analysis and Design
Architectural Analysis
Detailed Description
To allow the detail to be
added incrementally.
None – this is purely an intermediate step.
Fully Described
Provide a full requirements
specification for the behavior
encapsulated by the use
case.
Full Analysis and Design
Implementation and Testing
User Documentation.
High Fidelity Estimation.
Adapted from: Use Case Modeling, Kurt Bittner & Ian Spence, Addison Wesley 2002
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
19
IMPORTANT.
• What is interesting here is how the early, less complete
use-case states but still very useful can be used to
identify and support a host of very important activities.
• This is achieved by doing broad brush stroke
use-case realizations based upon the bulleted or
essential outlines.
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
20
Architecture: Component Definition
Sample architectural layout –
layered model showing components and associations.
Some components may already exist; others may require development.
Components grouped into ‘layers.’
Applicationspecific
Businessspecific
Middleware
Systemsoftware
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
21
Architectural Robustness Analysis and Design
Very high level interaction diagram (sequence diagram) analysis model or
initial component-based high level design model showing high-level responsibilities.
Payment
Buyer
Bank
Customer
Management
Get
invoices
Invoice
Management
Get
header
Account
Management
Sequence diagram may be
developed from less than
fully developed use-cases!
Schedule
invoice
Transfer
Invoice
paid
Invoice
paid
Adapted from Software Reuse, Jacobson et al, Addison Wesley 1997
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
22
Other Approaches to Requirements
Technique
Source
Comments
User Stories
Extreme
Programming (XP)
Act in the same way as
briefly described use cases
and flows. (‘briefly-described’
was one of the maturity /
granularity levels of author’s
use cases.)
Features
Feature Driven
Development (FDD)
Typically individual functions.
May be ‘lists.’
Scenarios
Traditional
Can be considered
instances of use cases.
Yes.
Declarative
Statements
Traditional
Usually grouped by subject
area not value delivered.
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
23
Releases must provide a clear value.
• To support iterative development we must be able to
subset the requirements to produce intelligent
definitions of the releases produced by each iteration.
• It is important that releases provide value
• This can only be achieved by implementing end-to-end
threads through the system.
– Use cases, user stories and scenarios allow us to do this.
Declarative statements, typically, do not.
• All approaches can be used for iterative and incremental
development.
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
24
The Lifecycle of a Use Case
Requirements
Identified
Development
Analyzed
Testing
Verified
Designed
Authored
Accepted
Implemented
Agreed
Source: Use Case Modeling, Kurt Bittner & Ian Spence, Addison Wesley 2002
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
26
Use Cases and Testing
Follow the ‘dependency’ arrows…
Use Case
Test Design
and
Preparation
Scenario
Test Scenario
<< White Box Testing >>
Use Case Realization
Test Suite
w. Test Cases
Component
Definition
System Design
and
Implementation
© 2005 Ivar Jacobson International
Unit Tested
Component
Testable
Release
Iterative Project Management / 02 - Controlling an Iterative Project
27
Testing with Use Cases: Test cases; black box and white box..
• Use cases constitute the basis for identifying test cases and
procedures.
• System is verified by performing scenarios based on the
use cases.
• Black Box View of the system is provided by Use cases.
• White Box View is provided by the Analysis and Design
products and relate requirements to individual pieces of the
system.
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
28
Testing with Use Cases: Test cases; black box and white box..
• Based upon the use cases, test design and test case
preparation activities can proceed in parallel with the
software design and implementation.
• This enables the test suite to be available when the
testable release becomes available.
• Test cases derived from the use cases take advantage
of the way that use cases gather together the
requirements to ensure good functional test coverage
of the system and to produce robust, repeatable test
suites.
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
29
Use Case and Scenario-Based Planning
• Use cases providing the end to end threads required to
successfully set the objectives for the iterations
• Scenarios (threads through the uses cases) drive the iterations.
Iteration 1
Iteration 2
Iteration 3
Out of
Scope
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
30
Measuring Progress with Use Cases
Project Progress
Number of Use Cases
25
20
Identified
Agreed
15
Analyzed
Designed
10
Implemented
5
Verified
0
1
2
3
4
5
6
7
8
Iteration
Use case ‘states’ can be used to track project progress
Use Cases drive the process…
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
31
Summary and Review
• Every iteration should produce an executable
release
– The release should fulfill more of the project’s
requirements than the previous release (from the
last iteration).
– This increase in delivered requirements is called an
increment.
– Iterations are defined by their intended results as
well as the evaluation criteria for these results.
– Every iteration should actively address and reduce
project risk
•
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
32
Summary and Review
• Every iteration should be treated as a discrete
time box.
• During an iteration, the project team should focus
on objectives of the current iteration – no more.
• The results of every iteration should be objectively
assessed; the team should be prepared to rework
the solution and project plan as required.
• Use ‘Anchor Point’ Milestones to provide focus to
the series of iterations.
– The milestones (and their phases) measure the state of
the project in terms of its risk
© 2005 Ivar Jacobson International
Iterative Project Management / 02 - Controlling an Iterative Project
33