40
Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov [email protected] [email protected]

Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov [email protected]

  • View
    223

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

Process Patterns For Software Outsourcing

How to customize MSF, RUP, XR, etc. for distributed teams ?

Vladimir L PavlovAndrey A Terekhov

[email protected]@microsoft.com

Page 2: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

2

Agenda

Introduction

Organizational Patterns

Process Patterns

Page 3: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

3

About The Authors

Vladimir L Pavlov (Microsoft, Russia)D&PE LeadMicrosoft 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 ManagerPhD in Computer ScienceMicrosoft Endorsed MSF Practitioner, MCSD, (ex-)MCT,

IEEE Certified Software Development ProfessionalMember 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

Page 4: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

4

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

Page 5: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

5

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

Page 6: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

6

Software Outsourcing: Typical Models

There are different approaches to adapting modern software development management methodologies and frameworks

to offshore outsourcing projects

Russia / Ukraine US / Europe

Development company

Development office

Mediator company

Main office

Client

Client

deve

lopm

ent

offic

e p

rovi

des

SE

RV

ICE

client gets PR

OD

UC

T

or service

Page 7: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

7

How Many Borders Do We Have?

Europe / US

offshore office

US/Europe office Client

Language barrier

timeshift

cultural difference

s

Ukraine / Russia

Page 8: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

8

Single-Site Development

a strategy

an organizational structure

business processes

Page 9: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

9

Distributed Development

US / EuropeRussia / Ukraine

Page 10: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

10

Agenda

Introduction

Organizational Patterns

Process Patterns

Page 11: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

11

Software Outsourcing: Typical Models

There are different approaches to adapting modern software development management methodologies and frameworks

to offshore outsourcing projects

Ukraine / Russia Europe / US

Development company

Development office

Mediator company

Main office

Client

Client

deve

lopm

ent

offic

e p

rovi

des

SE

RV

ICE

client gets PR

OD

UC

T

or service

Page 12: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

12

Software Outsourcing:the “Broken Phone” Game

US / Europe

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…

Russia / Ukraine

“Business”people

“Technical” people Client

Page 13: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

13

MSF Team Model

Advocacy

Solution Delivery

DevelopmentDevelopment

TestTest

Release /OperationsRelease /

Operations

UserExperience

UserExperience

ProductManagement

ProductManagement

Program Management

Program Management ArchitectureArchitecture

Solution Design

Solution Definition

Solution QualitySolution Usability

Solution Construction

Solution Deployment

Page 14: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

14

MSF Team Model for Software Outsourcing Projects

Europe / USUkraine / Russia

DevelopmentDevelopment

TestTest

Release /OperationsRelease /

Operations

UserExperience

UserExperience

ProductManagement

ProductManagement

Program Management

Program Management ArchitectureArchitecture

Page 15: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

15

Our Solution: In Software Outsourcing Projects All Functional Areas Should

be Covered on Both Sides

US / Europe

Program management

Development

Test

User Experience

Product Management

Program management

Development

Test

Release Management

User Experience

Product Management

Release Mngmnt

Russia / Ukraine

ArchitectureArchitecture

ArchitectureArchitecture

Page 16: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

16

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

Page 17: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

17

OrganizationalType

ProjectCharacteristics

Project Manager’sAuthority

% of Organization's Personnel Assigned Full-time

Project Manager’sRole

Common Titles forAuthority PM’s Role

Functional

Matrix

Strong Matrix

Projectized

Project Manager’sAdministrative Staff

Little or None

VirtuallyNone

Part-time

ProjectCoordinator/

Project Leader

Part-time

Limited

0-25%

Part-time

Part-time

ProjectCoordinator/

Project Leader

ProjectManager/

Project Officer

Weak Matrix Balanced Matrix

Low to Moderate Moderate to High

High to Almost Total

15-60% 50-95% 85-100%

Full-time Full-time Full-time

ProjectManager/

Program Manager

ProjectManager/

Program Manager

Part-time Full-time Full-time

PMI PMBOK

Matrix Organizations

Page 18: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

18

Functional Organization

ChiefExecutive

FunctionalManager

FunctionalManager

FunctionalManager

StaffStaff

Staff

Staff

Staff Staff

Staff Staff

Staff

ProjectCoordination

Page 19: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

19

Project Organization

ChiefExecutive

ProjectManager

ProjectManager

ProjectManager

StaffStaff

Staff

Staff

Staff Staff

Staff Staff

Staff

ProjectCoordination

Page 20: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

20

Weak Matrix Organization

ChiefExecutive

FunctionalManager

FunctionalManager

FunctionalManager

StaffStaff

Staff

Staff

Staff Staff

Staff Staff

Staff

ProjectCoordination

Page 21: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

21

Balanced Matrix Organization

ChiefExecutive

FunctionalManager

FunctionalManager

FunctionalManager

StaffStaff

Staff

Staff

Staff Staff

Staff Staff

Project Manager

ProjectCoordination

Page 22: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

22

Strong Matrix Organization

ChiefExecutive

Manager of Project Managers

FunctionalManager

FunctionalManager

Project ManagerStaff

Staff

Staff

Staff Project Manager

Staff Project Manager

Staff

ProjectCoordination

Page 23: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

23

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

Page 24: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

24

Agenda

Introduction

Organizational Patterns

Process Patterns

Page 25: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

25

MSF Risk Management Discipline

Risk Statement

Risk Database,Risk Concepts and Processes

Identify

LearnLearn

ControlControl

Track and Report

Track and Report

Plan and SchedulePlan and Schedule

Analyze and

Prioritize

Analyze and

Prioritize

Risk Assessment Document

Top n Risks

Page 26: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

26

Risk Management for Software Outsourcing Projects

Europe / US

Risk Statement

Risk Database,

Risk Concepts

and Processes

Identify

LearnLearn

ControlControl

Track and

Report

Track and

Report

Plan and

Schedule

Plan and

Schedule

Analyze and

Prioritize

Analyze and

Prioritize

Risk Assessm

ent DocumentTop n

Risks

Risk Statement

Risk Database,

Risk Concepts

and Processes

Identify

LearnLearn

ControlControl

Track and

Report

Track and

Report

Plan and

Schedule

Plan and

Schedule

Analyze and

Prioritize

Analyze and

Prioritize

Risk Assessm

ent DocumentTop n

Risks

Russia / Ukraine

Page 27: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

27

Our Solution: One Transparent Risk Management Process

for All Sub-Teams

US / Europe

Risk Statement

Risk Database,Risk Concepts and Processes

Identify

LearnLearn

ControlControl

Track and Report

Track and Report

Plan and SchedulePlan and Schedule

Analyze and

Prioritize

Analyze and

Prioritize

Risk Assessment Document

Top n Risks

Ukraine / Russia

Page 28: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

28

IBM Rational Unified Process

Phases

ManagementEnvironment

Business Modeling

Implementation

Test

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Disciplines

Iterations

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration Mgmt

Requirements

Elaboration TransitionInception Construction

Page 29: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

29

Russia / Ukraine

RUP Disciplines For Software Outsourcing Projects

Europe / US

Page 30: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

30

Ukraine / Russia

Our Solution: RUP Disciplines For Software Outsourcing Projects

US / Europe

Elaboration TransitionInception Construction

Page 31: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

31

Project Postmortem

Russia / Ukraine Europe / US

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

POSTMORTEMPOSTMORTEM

Page 32: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

32

Our Solution: “Big Postmortem” For All Project Stakeholders

Unfortunately, it is not a common practice for offshore outsourcing projects today

Ukraine / Russia US / Europe

POSTMORTEM POSTMORTEMPOSTMORTEM

P O S T M O R T E M

Page 33: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

33

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 addNew implementations can be introduced without affecting

clients

CON:Avoid “future-proofing” if variation is unlikely to occurAdds additional effort to design

Page 34: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

34

General style and coding standard

Our Solution: Inheritance Helps Minimize Bureaucracy

Traditional approach Our approach

Total 64 pages Total 34 pages

Java coding standard

C++ coding standard

C coding standard

Java coding standard

C++ coding standard

C coding standard

Page 35: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

35

US/Europe Office

Public Domain

Russian/Ukrainian Office

Our Solution: Define Your Process Architecture Using Inheritance

Europe / US

Policy Policy

Policy

PolicyPolicy

Policy

Policy

Policy

Policy

Policy

Policy

Russia / Ukraine

Page 36: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

36

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-teamsOne transparent risk management process for all sub-teams

“Big postmortem” for all project stakeholders

Define your process architectureInheritance helps minimize bureaucracy

There are many more process patterns out there…

Summary

Page 37: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

37

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 Processhttp://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)

Page 38: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

38

See Also:

“Using MSF for Software Outsourcing” by V.L.Pavlov and A.A.Terekhovhttp://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.Malenkohttp://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)

Page 39: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

39

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)

Thank You:

Page 40: Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed teams ? Vladimir L Pavlov Andrey A Terekhov vpavlov@microsoft.com

40

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 orhttp://www.vlpavlov.com