SoberIT Challenges in Managing Multiple Software Development

Transcription

SoberIT Challenges in Managing Multiple Software Development
SoberIT
Software Business and Engineering Institute
Challenges in Managing Multiple
Software Development Projects
T-76.3601, 28.3.2006
Jarno Vähäniitty
Helsinki University of Technology
Software Business and Engineering Institute
(SoberIT)
http://www.soberit.hut.fi/
HELSINKI UNIVERSITY OF TECHNOLOGY
1
SoberIT
Software Business and Engineering Institute
Why Important?
 The majority of software companies offer both
products and customer-specific services
(Cusumano 2004)
 Sharing risk
 Balancing cash flow
 Supporting product development
 Product business is different from Service business
(Cusumano 2004, Hoch et. Al 2002, Nambisan 2001)
 Resources
 Competences
 Processes
 You almost always have to do both...
 ...but finding the balance is challenging
 ”An easy way to ruin a good [small] business”?
(Cusumano 2004, Hietala et al. 2003, Jokinen et al. 2004, Kuitunen et al. 2005)
 Small = less than 50 (EU def.)
2
Mr. Snot Giddier
(Development
Manager)
”Our portfolio is too
Hot to Handle now
yes it is!”
Portfolio
management?
What’s that?
”Nobody knows
the trouble I’ve
seen...”
SoberIT
Software Business and Engineering Institute
Finding the Balance with Product Portfolio
Management?
= Optimising resource usage according to
Value

Strategic alignment

Risk level

Feasibility (e.g. # of ongoing projects)
(Cooper, Edgett, & Kleinschmidt 2002b)
4
SoberIT
Software Business and Engineering Institute
Product Portfolio Mgmt is a
Decision-Making Process

Responsible for
 Evaluating and launching new
projects
 Deciding on ongoing activities
 Prioritisation
 Go / hold / kill –decision-making
 Fine-tuning resource allocation
 Evaluating the portfolio as a whole
(Cooper 1998b, Cooper, Edgett, & Kleinschmidt 2002b)
5
An Attempt at Illustration
Gate 1: Strategic
alignment
Portfolio
Reviews
Gate 2: Assess value,
balance risk
Gate 3: Go to
development
Gate n: Testing
and Validation
Product
Launch
SoberIT
Software Business and Engineering Institute
A Gap in the Theory
 Software engineering (SE)
Primarily technical (Glass et al. 2002)
Managing individual development projects
 New Product Development (NPD)
Models for managing product development
 Adoption to SE still at the beginning
(Nambisan 2000, Wallin et al. 2002, Karlström 2005)
 Direct applicability questionable
• Manufacturing vs. Software?
• Large corporation vs. Small company?
7
How to Combine Software Development and
Business Decision-Making Processes? Decision on
Initial screen
Ideation
Post
implementation
review
Gate
1
Stage 5
Full production &
market launch
Second screen
Stage 1
Preliminary
investigation
Gate
5
Precommercialization
business analysis
Gate
2
Stage 4
Testing and
validation
business case
Stage 2
Detailed
investigation
(business case)
Gate
4
Postdevelopment
review
Gate
3
Stage 3
Development
SoberIT
Software Business and Engineering Institute
How to conceptualise the connection
between business and SW
product development
decision-making?
9
SoberIT
Software Business and Engineering Institute
Anybody Remember
”Time Pacing”
?
10
Time Horizons
1) Splitting the development work into regular iterations
Doing – between the control points
- Suitable increments of functionality
- Freezing the requirements and resources
 work without constant interruptions (työrauha)
- Fixed schedule, adjustable scope
Planning – in the control points
- Regular reflection of the situation at hand
- Ending the previous iteration:
status check & demonstration
- Planning the following iteration
Time horizon 2-4 weeks
Control Points
Time
Time Horizons
2) Grouping the iterations into release projects
- Release criteria and goals
- Iteration planning
- Timing, initial goals, scope, themes
- Resourcing
- Investment and prioritisation
- Roles and responsibilities
Time horizon 3-6 months (regular release rhythm)
Time
Time Horizons
3) Monitoring progress and synchronising work in
heartbeats
Different practices
E.g. Status meeting
- What have you done?
- What do you do next?
- Any problems?
Time horizon ≤ week
Time
The Fourth Time Horizon Runneth Over
- Long-term product and release planning (Release cycles,
development rhythm, goals and contents of future releases,
estimating future resource needs, …)
- Management of the product development portfolio (resourcing,
short-term prioritisation, fire-fighting, escalating decisions, …)
- Connection to corporate and business unit level strategy work
Time horizon “> 2 releases ahead”
Release project
Iteration
Heartbeats
Different kinds of)
decisions...on
different time
horizons
More than one
cycle?
Roadmap revision
Opening Up the ”4th” Time Horizon
Business strategy
Business
management
Corporate strategy
Product development strategy
Strategic
Release
Management
Development portfolio
management
Iteration
Heartbeat
Software
development
Release project
Characterising the Time Horizons
Intent
Business strategy
Clarity
Product development strategy
Choice
Development portfolio
management
Release project
Concentration
Iteration
Heartbeat
Action
Software
development
Completion
Business
management
Corporate strategy
Key Decisions (an example)
...
Corporate strategy
Business goals & revenue,
Product vision,
release cycles
Business strategy
Product development
strategy
Development portfolio
management
Release project
Iteration
Heartbeat
Product roadmaps (i.e. individual
segments / solution offerings /
technology), resource requirements,
release goals,
Development roadmap,
balanced release goals and
resource allocation
Milestone pass/fail
-decisions,
iteration goals, req specs
Detailed task / feature
lists,
within-iteration
implementation order,
func specs
Personal task lists,
Updating
Effort left -estimates
When to
escalate?
...suppose
something
changes...
(for example, requirements
understood better / task more
difficult than estimated / new
important requirement / major bug
found)
Planning Range
Corporate strategy
Intent
Business strategy
Product life cycle
...
~ 3-6x release cycle
Product development strategy
Clarity
Development portfolio
management
Choice
Release project
Completion
Iteration
Heartbeat
Concentration
Action
Current and
upcoming release
Ongoing iteration
The 7 Time Horizons as a Generic Framework
for Understanding Software Business Mgmt?
Implementation
can vary
Business
management
For each,
- Emphasis
Similar for different
Corporate
strategy
- Key decisions
companies
- Process (rhythm) & interfaces
- Participating roles
- Planning range
Business strategy
- Documents involved
Product development strategy
Development portfolio
management
Iteration
Heartbeat
Software
development
Release project
Mr. Snot Giddier
(Development
Manager)
”Watchin’ my life
roll away...”
Mr. Petrol Brant
(Salesman)
”All that glitters
is gold and I’m
selling you
software like
heaven”
Mr. Bony Bald
(Process therapist)
”...How does it
feel? (when your
projects are like a
rolling stone)”
It makes me
wonder...
What does
inadequate
portfolio mgmt
look like?
Problems Associated with Inadequate Portfolio Mgmt in
the Literature...
Oh dear. Let’s
try to make
some sense
out of this
Main Problem Categories
Better!
But what
about
causality?
”Symptoms”
”Intermediate causes”
All right.
But surely, all of the issues
are not strictly portfolio
mgmt?
”Root causes”
The Outer Rim
Issues
affected by
the PM
process
The Slopes
The Core
I
Issues related
to the PM
process
Issues related
to the portfolio
management
process
I
OK. I wonder if this
this model stands
closer scrutiny?
SoberIT
Software Business and Engineering Institute
30
SoberIT
Software Business and Engineering Institute
31
SoberIT
Software Business and Engineering Institute
32
Phew!
Phew!
SoberIT
Software Business and Engineering Institute
Towards a Managed
Development Portfolio
35
SoberIT
Software Business and Engineering Institute
Wait a Minute – Do Small Companies Need
Portfolio Management, Too?
Would you
benefit from
portfolio
management
sometimes?
36
SoberIT
Software Business and Engineering Institute
Do Small Companies Need Portfolio
Management, Too?
 Yes
…
…By necessity, they usually employ a portfolio of
different types of development effort
 Release-based product development
 One or more products
 Customer-specific development
 not necessarily even product-related
 Deliveries, installation, training
 Consulting services
 Body shopping
 ...
37
Same people,
many roles and
tasks – How to
manage such a
portfolio in
practice?
SoberIT
Software Business and Engineering Institute
What We Found – The Four Main Challenges
in Small Software Companies

A shared understanding of the
development portfolio missing
 Overbooking of resources
Unclear and shifting priorities
 Impulsiveness in setting up new projects
 Not getting old assignments finished
 Multiple and sometimes conflicting roles &
responsibilities
No common understanding of the decisionmaking process
 Prioritisation by fire-fighting or personal judgement
”Single project” decisions ripple across
the portfolio
 ... setting off cascades of new decisions
38
SoberIT
Software Business and Engineering Institute
Solving the Portfolio Management
Challenge – in Just Three Easy Steps!

Wake up!
Grow up
Get a grip.
39
You too!
(here & now)
SoberIT
Software Business and Engineering Institute
Come again? OK, in 4 Easy Steps:

Identify the types of development activity
Set target spending levels
Synchronise the portfolio
Define portfolio control points
40
1) Identify the Types of Development Activity
Achilles
Hector
Odysseus
Product
development
Platform
development
Product
development
Application
development
Customerspecific
development
projects
(release-based)
Application
development
(release-based)
Product
development
(customer-triggered)
(customer-triggered)
(not product related)
Research-like
development
Developer rental
Customer
deliveries and
installations
Delivery and installation
projects
Consulting
Sales support
Technology
development
1) Identify the Types of Development Activity
Identify your own
for the
Achilles
Hector ”activity types”
Odysseus
Spring Term...
Product
development
Customerspecific
development
projects
 Creates
Product
development
Platform
a development
mind-set and
(release-based)
terminology
for viewing and
Application
discussingdevelopment
the performed
Product
(release-based)
activities as an explicit portfolio development
(customer-triggered)
Application
development
 Helps see whether planned /
(customer-triggered)
ongoing activities
really contribute
Technology
Research-like
development
development
to what the
company strives to be
(not product related)
Developer rental

Customer
Delivery and installation
Makes it easier
for
management
deliveries and
projects
to discuss installations
and decide what mix is
currently appropriate and why
Consulting
... and
list your
Sales support
activities (3min)
2) Set Target Spending Levels
Achilles
Hector
Odysseus
Product
development
Platform
development
Product
development
40%
Product
development
15%
Technology
development
25%
Application
development
Customerspecific
development
projects
(not product related)
Developer rental
(release-based)
Application
development
(release-based)
(customer-triggered)
(customer-triggered)
Research-like
development
Customer
deliveries and
installations
Consulting
Delivery and installation
20%
projects
Sales support
-
2) Set Target Spending Levels
Achilles
Hector
 Decide
be
Producthow much should
Platform
development
development
spent
on each activity
type to
reflect strategy and desired
Application
development
risk level
(release-based)

Customerspecific
development
Track
how
projects
Application
development
(customer-triggered)
much effort
is
(not product related)
actually
spent – andResearch-like
reflect
development
on whether your spending
/
targets are appropriate
Customer
Developer rental
deliveries and
installations
Consulting
Odysseus
Product
development
40%
Product
development
15%
Make
an
Technology
development
estimate?
25%
You too!
(release-based)
(customer-triggered)
Delivery and installation
20%
projects
Sales support
-
SoberIT
Software Business and Engineering Institute
3) Synchronise the Development Portfolio
 Different types of development activity should be
managed differently
 Developing a new major release vs. customer-specific
tailoring vs. deliveries vs. training …
 One-size process does not fit all
 Processes for different types of development should
be synchronised at the portfolio level to avoid the
ripple effect
45
A Synchronised Development Portfolio
2 months
Release project
Release
development
Deliveries &
integration
Customertriggered feature
development
Platform
development
Development
increment
4 weeks
4) Define Portfolio Control Points
4 months
4 weeks
Release
development
Deliveries &
integration
Customertriggered feature
development
Allocate resources &
set development goals
until the next portolio
review (velocity
velocity)
Platform
Dealing with surprises
in a controlled manner
Creating and updating longterm plans for the products
(direction
direction)
development
Portfolio reviews
Fire brigade
Roadmap
revision
A couple of examples from the real world (A)
Project 1
Project 2
Project 3
...
Project 4
Project ...
Project N
...
Release meetings
Strategy Day
Internal deadline
Major Release
Time
B
New GUI ( ?
Planned
/ 18%
Actual)
Hardware driver ( ? / 31%)
Maintenance and bugfixes of the old platform( ? / 13%)
...
Developing the new platform ( ? / 35%)
...
SW Dev steering group
meetings
(Irregular, semi-conscious portfolio review & roadmap
revision w/ ad hoc agenda and informal roles &
responsibilities)
Time
Minor
Release
Major Release
”Hard to
Handle, Now!”
SoberIT
Software Business and Engineering Institute
Questions & Discussion
51