Process Patterns For Software Outsourcing

advertisement
Process Patterns
For Software Outsourcing
How to customize MSF, RUP, XR, etc.
for distributed teams ?
Vladimir L Pavlov
Andrey A Terekhov
vpavlov@microsoft.com
andreyte@microsoft.com
Agenda
Introduction
Organizational Patterns
Process Patterns
2
About The Authors
Vladimir L Pavlov (Microsoft, Russia)
D&PE Lead
Microsoft Endorsed MSF Practitioner,
MCSD for .NET, MCSD, MCDBA, (ex-)MCT,
CompTIA Certified IT Project+
Senior Member of IEEE, member of PMI, ACM and IEEE Computer Society
Andrey A Terekhov (Microsoft, Russia)
Academic Programs Manager
PhD in Computer Science
Microsoft Endorsed MSF Practitioner, MCSD, (ex-)MCT,
IEEE Certified Software Development Professional
Member of ACM, IEEE and IEEE Computer Society
This presentation is mostly based on experience gained by authors prior
to joining Microsoft, when authors worked as chief executives
of several large Russian/Ukrainian software outsourcing companies
We had a chance to look at outsourcing projects
from both sides of the ocean
This presentation does not represent an official Microsoft point of view
on the discussed topic
3
What Is a “Process Pattern”?
A Pattern is a description of a general solution to a
common problem or issue from which a detailed
solution to a specific problem can be determined
A Process Pattern is a specific Pattern created for,
employed within or defined in terms of Software
Process Engineering domain
Software Process Engineering is a knowledge area
concerned with the definition, implementation,
assessment, measurement, management,
change, and improvement of the software
engineering process itself
4
In This Presentation
We will use MSF in our examples. To understand these examples
one does not need to know MSF. However some experience in one
of the modern IT management methodologies/frameworks (RUP,
MSF, CDM etc.) is required
The Microsoft Solutions Framework (MSF) is a collection of
Microsoft's proven practices on managing successful IT projects
Similar to Windows or any other product, MSF evolves and
matures as new versions are released. Initially Microsoft made
MSF available in 1994. The latest version of MSF is 3.0
The new version of the MSF (MSF 4.0) will become available
in a few months
5
Software Outsourcing:
Typical Models
There are different approaches to adapting modern software
development management methodologies and frameworks
to offshore outsourcing projects
US / Europe
Mediator
company
Client
Development
office
Main office
Client
SERVICE
Development
company
client gets PRODUCT
or service
development office provides
Russia / Ukraine
6
How Many Borders Do We Have?
Ukraine / Russia
offshore
office
Language
barrier
Europe / US
US/Europe
office
time
shift
Client
cultural
differences 7
Single-Site Development
a strategy
an
organizational
structure
business
processes
8
Distributed Development
Russia / Ukraine
US / Europe
9
Agenda
Introduction
Organizational Patterns
Process Patterns
10
Software Outsourcing:
Typical Models
There are different approaches to adapting modern software
development management methodologies and frameworks
to offshore outsourcing projects
Europe / US
Mediator
company
Client
Development
office
Main office
Client
SERVICE
Development
company
client gets PRODUCT
or service
development office provides
Ukraine / Russia
11
Software Outsourcing:
the “Broken Phone” Game
Russia / Ukraine
“Technical”
people
US / Europe
“Business”
people
Client
When a technical person speaks to a business person, some
information is often lost or misinterpreted
When two specialists from different countries speak over the ocean,
some information is often lost or misinterpreted
So, imagine what happens when a technical person speaks to a
business person over the ocean…
12
MSF Team Model
Solution Delivery
Solution Design
Program
Management
Architecture
Solution Definition
Solution Construction
Product
Management
Development
Advocacy
User
Experience
Solution Usability
Test
Release /
Operations
Solution
Deployment
Solution Quality
13
MSF Team Model for Software
Outsourcing Projects
Ukraine / Russia
Europe / US
Program
Management
Development
Product
Management
Test
User
Experience
Architecture
Release /
Operations
14
Our Solution: In Software Outsourcing
Projects All Functional Areas Should
be Covered on Both Sides
Russia / Ukraine
US / Europe
Architecture
Program
management
Program
management
Architecture
Development
Product
Management
Development
Product
Management
User
Experience
Release
Mngmnt
User
Experience
Test
Test
Release
Management
15
MSF Team as a Matrix Organization
An MSF team is structured as a team of peers. In this model, the
Program Management role takes a highly facilitative approach to
managing the functions within its responsibilities. As such, the
MSF team would organizationally be structured similarly to what is
referred to in the PMBOK as a Matrix Organization. These are
cross-functional teams that combine the skills and foci from
difference areas of the organization into a single team assembled
for the project
Additionally, the MSF team, as a team of peers, would most
closely resemble a Weak Matrix Organization,
in its purest form, as described in the PMBOK.
Here, “weak” refers to the level of decision-making
clout of the project manager and not the quality
or capabilities of the team
16
Matrix Organizations
Organizational
Type
Project
Characteristics
Matrix
Functional
Projectized
Weak Matrix
Balanced Matrix
Strong Matrix
Low to Moderate
Moderate to
High
High to
Almost Total
Project Manager’s
Authority
Little or None
Limited
% of Organization's
Personnel Assigned
Full-time
Virtually
None
0-25%
15-60%
50-95%
85-100%
Project Manager’s
Role
Part-time
Part-time
Full-time
Full-time
Full-time
Common Titles for
Authority PM’s Role
Project
Coordinator/
Project Leader
Project
Coordinator/
Project Leader
Project
Manager/
Project Officer
Project
Manager/
Program Manager
Project
Manager/
Program Manager
Project Manager’s
Administrative Staff
Part-time
Part-time
Part-time
Full-time
Full-time
PMI PMBOK
17
Functional Organization
Chief
Executive
Functional
Manager
Functional
Manager
Project
Coordination
Functional
Manager
Staff
Staff
Staff
Staff
Staff
Staff
Staff
Staff
Staff
18
Project Organization
Project
Coordination
Project
Manager
Chief
Executive
Project
Manager
Project
Manager
Staff
Staff
Staff
Staff
Staff
Staff
Staff
Staff
Staff
19
Weak Matrix Organization
Chief
Executive
Functional
Manager
Functional
Manager
Functional
Manager
Staff
Staff
Staff
Staff
Staff
Staff
Staff
Staff
Staff
Project 20
Coordination
Balanced Matrix Organization
Chief
Executive
Functional
Manager
Functional
Manager
Functional
Manager
Staff
Staff
Staff
Staff
Staff
Staff
Project Manager
Staff
Staff
Project
21
Coordination
Strong Matrix Organization
Chief
Executive
Functional
Manager
Functional
Manager
Manager of
Project Managers
Staff
Staff
Project Manager
Staff
Staff
Project Manager
Staff
Staff
Project Manager
22
Project
Coordination
Our Solution: MiniMax Pattern for
Geographically Distributed Matrix
Organizations
If a matrix organization is geographically distributed over
number of offices/countries/time zones
So it becomes 3D matrix
Each function should be present on as many sites as
possible
However, for offshore development some functions (i.e. sales)
may not make sense on some sites
Each project should be allocated to
as few sites as possible
This is an extension to the known approach called
“collocation”
However, for offshore development each project
will be allocated to at least two sites
23
Agenda
Introduction
Organizational Patterns
Process Patterns
24
MSF Risk Management Discipline
Analyze
and
Prioritize
Risk Statement
Identify
Control
Learn
Risk Database,
Risk Concepts
and Processes
Risk
Assessment
Document
Top n
Risks
Plan and
Schedule
Track and
Report
25
Risk Management for
Software Outsourcing Projects
Russia / Ukraine
Identify
Analyz
e and
Prioriti
ze
Risk
Statement
Control
Learn
Risk
Database,
Risk
Concepts
and
Processes
Europe / US
Risk
Assessme
nt
Document
Top n
Risks
Track
and
Repor
t
Plan
and
Sched
ule
Identify
Analyz
e and
Prioriti
ze
Risk
Statement
Control
Learn
Risk
Database,
Risk
Concepts
and
Processes
Risk
Assessme
nt
Document
Top n
Risks
Track
and
Repor
t
Plan
and
Sched
ule
26
Our Solution: One Transparent Risk
Management Process
for All Sub-Teams
Ukraine / Russia
US / Europe
Analyze
and
Prioritize
Risk Statement
Identify
Control
Learn
Risk Database,
Risk Concepts
and Processes
Risk
Assessment
Document
Top n Risks
Plan and
Schedule
Track and
Report
27
IBM Rational Unified Process
Phases
Disciplines
Inception Elaboration
Construction
Transition
Business Modeling
Requirements
Analysis & Design
Implementation
Test
Deployment
Configuration Mgmt
Management
Environment
Preliminary
Iteration(s)
Iter.
#1
Iter.
#2
Iter.
#n
Iter. Iter.
#n+1 #n+2
Iterations
Iter.
#m
Iter.
#m+1
28
RUP Disciplines For Software
Outsourcing Projects
Russia / Ukraine
Europe / US
29
Our Solution: RUP Disciplines For
Software Outsourcing Projects
Ukraine / Russia
Inception
Elaboration
US / Europe
Construction
Transition
30
Project Postmortem
A postmortem is a procedure whereby project team summarizes a project's history and analyzes its
positive and negative aspects. The goal of a postmortem is to draw meaningful conclusions to help project
team learn from past successes and failures
Russia / Ukraine
POSTMORTEM
Europe / US
POSTMORTEM
POSTMORTEM
31
Our Solution: “Big Postmortem” For
All Project Stakeholders
Unfortunately, it is not a common practice
for offshore outsourcing projects today
Ukraine / Russia
US / Europe
P O S T M O R T E M
POSTMORTEM
POSTMORTEM
POSTMORTEM
32
One Of The GRASP Design Patterns:
Polymorphism
Problem:
How to handle alternatives based on type? How to create
pluggable components?
Solution:
When related behaviors vary by type, assign responsibility for
the behavior to types using polymorphism
PRO:
Extensions (new variations) easy to add
New implementations can be introduced without affecting
clients
CON:
Avoid “future-proofing” if variation is unlikely to occur
Adds additional effort to design
33
Our Solution: Inheritance Helps
Minimize Bureaucracy
Traditional approach
Total 64 pages
Our approach
Total 34 pages
C coding
standard
General style
and coding
standard
C++ coding
standard
Java coding
standard
C coding
standard
C++ coding
standard
Java coding
standard
34
Our Solution: Define Your Process
Architecture Using Inheritance
Russia / Ukraine
Europe / US
Russian/Ukrainian Office
Policy
US/Europe Office
Policy
Policy
Policy
Policy
Policy
Policy
Public Domain
Policy
Policy
Policy
Policy
35
Summary
MiniMax pattern helps organize work within
geographically distributed matrix organizations
All functional areas should be covered in all sites
Every discipline should cover all sub-teams
One transparent risk management process for all sub-teams
“Big postmortem” for all project stakeholders
Define your process architecture
Inheritance helps minimize bureaucracy
There are many more process patterns out there…
36
See Also:
Process Patterns
http://hillside.net/ (English)
http://www.ambysoft.com/processPatternsPage.html (English)
Microsoft Solutions Framework
http://www.microsoft.com/msf (English)
http://www.microsoft.com/rus/msf (Russian)
IBM Rational Unified Process
http://www.rational.com/rup (English)
PMI Project Management Body Of Knowledge
http://www.pmibookstore.org/PMIBookStore/productDetails.aspx?itemID=110&varID=1
(English)
http://www.pmi.org/info/PP_PMBOK2000Excerpts.asp (English)
37
See Also:
“Using MSF for Software Outsourcing” by V.L.Pavlov and A.A.Terekhov
http://nl.itsmportal.net/binaries/MSF_for_software_outsourcing.ppt (English)
http://www.ukrsoftpro.com.ua/Pavlov_Terekhov_Kiev2003.zip (Russian)
“Mining MSF for Process Patterns: a SPEM-based Approach” by V.L.Pavlov and D.Malenko
http://www.vlpavlov.com/pmpe/articles_en.html#2004_September_18_Uppsala (English)
“How To Become An Effective IT-Manager”
by V.L.Pavlov and A.A.Terekhov (Russian)
http://www.computerra.ru/offline/2003/503/28749
http://www.vlpavlov.com/pmpe/articles_en.html#2003_August_19_Computerra
"Software Process Improvement in Russian Company: a Case Study”
by V.Kiyaev, A.A.Terekhov
http://users.tepkom.ru/ddt/articles/SPI_in_Russia.html (English)
http://www.nsda.ru/home.asp?artId=129 (Russian)
“Formalization and Automation of Global Software Development Processes”
by V.Kiyaev, I.Sobolev, A.A.Terekhov, B.Fedotov
http://users.tepkom.ru/ddt/Articles/DistributedDevelopment.html (English)
http://users.tepkom.ru/ddt/Articles/DistributedDevelopment_rus.html (Russian)
38
Thank You:
Alexandr Zverintsev (http://www.nokia.com)
Alexandr Zhuykov (http://www.isd.dp.ua)
Andrey Filev (http://www.muranosoft.com)
Andrey Nizovsky (http://www.waveaccess.ru)
Anna Tiunova (http://www.lanit-tercom.com)
Dmitry Bednyak (http://www.dr.dp.ua)
Irina Mozgovaya (http://www.dsu.dp.ua)
Nikita Boyko (http://www.starsoftlabs.com)
Sergey Alpaev (http://www.isd.dp.ua)
Sergey Goryainov (http://www.isd.dp.ua)
Sergey Troshin (http://www.lanit-tercom.com)
Symon Moldavsky (http://www.uaswd.org.ua)
Victor Churilov (http://www.softcomputer.com)
Vladimir Ufnarovsky (http://www.lanit-tercom.com)
Yuri Gubanov (http://www.lanit-tercom.com)
Yury Us (http://www.softcomputer.com)
39
This presentation was delivered on
October 28, 2005 in Moscow on the
First Software Engineering Conference
in Russia – SEC(R) 2005
You can download this presentation
from http://www.secr.ru or
40
http://www.vlpavlov.com
Download