Process Patterns For Software Outsourcing How to customize

  • Slides: 40
Download presentation
Process Patterns For Software Outsourcing How to customize MSF, RUP, XR, etc. for distributed

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

Agenda Introduction Organizational Patterns Process Patterns 2

About The Authors Vladimir L Pavlov (Microsoft, Russia) D&PE Lead Microsoft Endorsed MSF Practitioner,

About The Authors Vladimir L Pavlov (Microsoft, Russia) D&PE Lead Microsoft Endorsed MSF Practitioner, MCSD for. NET, MCSD, MCDBA, (ex-)MCT, Comp. TIA Certified IT Project+ Senior Member of IEEE, member of PMI, ACM and IEEE Computer Society Andrey A Terekhov (Microsoft, Russia) Academic Programs Manager Ph. D 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

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

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

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 Lang uage barri

How Many Borders Do We Have? Ukraine / Russia offshore office Lang uage barri er Europe / US US/Europe office time shift Client cultu ral diffe renc 7

Single-Site Development a strategy an organizational structure business processes 8

Single-Site Development a strategy an organizational structure business processes 8

Distributed Development Russia / Ukraine US / Europe 9

Distributed Development Russia / Ukraine US / Europe 9

Agenda Introduction Organizational Patterns Process Patterns 10

Agenda Introduction Organizational Patterns Process Patterns 10

Software Outsourcing: Typical Models There are different approaches to adapting modern software development management

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

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 Product Management

MSF Team Model Solution Delivery Solution Design Program Management Architecture Solution Definition Product Management Solution Construction 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

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

Our Solution: In Software Outsourcing Projects All Functional Areas Should be Covered on Both Sides Russia / Ukraine Architecture US / Europe Program management Architecture Development Product Management User Experience Release Mngmnt User Experience Test Release Management 15

MSF Team as a Matrix Organization An MSF team is structured as a team

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 Organizations Organizational Type Project Characteristics Matrix Functional Projectized Weak Matrix Balanced Matrix Strong Matrix Low to Moderate to 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 Full-time Common Titles for Authority PM’s Role Project Coordinator/ Project Leader Project Manager/ Project Officer Project Manager/ Program Manager Project Manager’s Administrative Staff Part-time Full-time PMI PMBOK 17

Functional Organization Chief Executive Functional Manager Project Coordination Functional Manager Staff Staff Staff 18

Functional Organization Chief Executive Functional Manager Project Coordination Functional Manager Staff Staff Staff 18

Project Organization Project Coordination Project Manager Chief Executive Project Manager Staff Staff Staff 19

Project Organization Project Coordination Project Manager Chief Executive Project Manager Staff Staff Staff 19

Weak Matrix Organization Chief Executive Functional Manager Staff Staff Staff Project 20 Coordination

Weak Matrix Organization Chief Executive Functional Manager Staff Staff Staff Project 20 Coordination

Balanced Matrix Organization Chief Executive Functional Manager Staff Staff Project Manager Staff Project 21

Balanced Matrix Organization Chief Executive Functional Manager Staff Staff Project Manager Staff Project 21 Coordination

Strong Matrix Organization Chief Executive Functional Manager of Project Managers Staff Project Manager Staff

Strong Matrix Organization Chief Executive Functional Manager of Project Managers Staff Project Manager Staff Project Manager 22 Project Coordination

Our Solution: Mini. Max Pattern for Geographically Distributed Matrix Organizations If a matrix organization

Our Solution: Mini. Max Pattern for Geographically Distributed Matrix Organizations If a matrix organization is geographically distributed over number of offices/countries/time zones So it becomes 3 D 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

Agenda Introduction Organizational Patterns Process Patterns 24

MSF Risk Management Discipline Identify Analyze and Prioritiz e Risk Statement Control Risk Assessme

MSF Risk Management Discipline Identify Analyze and Prioritiz e Risk Statement Control Risk Assessme nt Document Top n Risks Learn Risk Database, Risk Concepts and Processes Plan and Schedul e Track and Report 25

Risk Management for Software Outsourcing Projects Russia / Ukraine Identify Analy ze and Priori

Risk Management for Software Outsourcing Projects Russia / Ukraine Identify Analy ze and Priori tize Risk Statement Control Risk Database, Risk Concepts and Processe s Lear n Europe / US Risk Assess ment Docume Top nt n Risks Trac k and Repo rt Plan and Sche dule Identify Analy ze and Priori tize Risk Statement Control Risk Database, Risk Concepts and Processe s Lear n Risk Assess ment Docume Top nt n Risks Trac k and Repo rt Plan and Sche dule 26

Our Solution: One Transparent Risk Management Process for All Sub-Teams Ukraine / Russia Identify

Our Solution: One Transparent Risk Management Process for All Sub-Teams Ukraine / Russia Identify US / Europe Analyze and Prioritize Risk Statement Control Learn Risk Database, Risk Concepts and Processes Risk Assessme nt 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

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+1 #n+2 Iterations Iter. #m+1 28

RUP Disciplines For Software Outsourcing Projects Russia / Ukraine Europe / US 29

RUP Disciplines For Software Outsourcing Projects Russia / Ukraine Europe / US 29

Our Solution: RUP Disciplines For Software Outsourcing Projects Ukraine / Russia Inception Elaboration US

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

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 31

Our Solution: “Big Postmortem” For All Project Stakeholders Unfortunately, it is not a common

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 32

One Of The GRASP Design Patterns: Polymorphism Problem: How to handle alternatives based on

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

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 34

Our Solution: Define Your Process Architecture Using Inheritance Russia / Ukraine Europe / US

Our Solution: Define Your Process Architecture Using Inheritance Russia / Ukraine Europe / US Russian/Ukrainian Office Policy US/Europe Office Policy Policy Public Domain Policy 35

Summary Mini. Max pattern helps organize work within geographically distributed matrix organizations All functional

Summary Mini. Max 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/process. Patterns. Page.

See Also: Process Patterns http: //hillside. net/ (English) http: //www. ambysoft. com/process. Patterns. Page. 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/PMIBook. Store/product. Details. aspx? item. ID=110&var. ID=1 (English) http: //www. pmi. org/info/PP_PMBOK 2000 Excerpts. asp (English) 37

See Also: “Using MSF for Software Outsourcing” by V. L. Pavlov and A. A.

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_Kiev 2003. 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? art. Id=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/Distributed. Development. html (English) http: //users. tepkom. ru/ddt/Articles/Distributed. Development_rus. html (Russian) 38

Thank You: Alexandr Zverintsev (http: //www. nokia. com) Alexandr Zhuykov (http: //www. isd. dp.

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

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