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