View
224
Download
0
Tags:
Embed Size (px)
Citation preview
11
Process Patterns For Process Patterns For Distributed DevelopmentDistributed Development
Vladimir Pavlov Vladimir Pavlov [email protected]@Intel.com
Andrey A. TerekhovAndrey A. Terekhov [email protected]@Microsoft.com
22
Process Patterns Process Patterns For Distributed DevelopmentFor Distributed Development
IntroductionIntroduction
Organizational PatternsOrganizational Patterns
Process PatternsProcess Patterns
Transitional PatternsTransitional Patterns
33
About The AuthorsAbout The AuthorsVladimir Pavlov Vladimir Pavlov (Intel, Russia)(Intel, Russia)
Outsourcing and Development Processes ManagerOutsourcing and Development Processes Manager Microsoft Endorsed MSF Practitioner, Microsoft Endorsed MSF Practitioner,
MCSD for .NET, MCSDMCSD for .NET, MCSD, , MCDBAMCDBA, , MCT, MCT, CompTIA Certified IT Project+CompTIA Certified IT Project+
Member ofMember of PMI, ACMPMI, ACM, , IEEE andIEEE and IEEE Computer SocietyIEEE Computer Society
Andrey A. TerekhovAndrey A. Terekhov ( (Microsoft, RussiaMicrosoft, Russia)) Academic Programs ManagerAcademic Programs Manager PhD in Computer SciencePhD in Computer Science Microsoft Endorsed MSF Practitioner, MCSD, (ex-)MCT, Microsoft Endorsed MSF Practitioner, MCSD, (ex-)MCT,
IEEE Certified Software Development ProfessionalIEEE Certified Software Development Professional Member ofMember of ACMACM, , IEEE andIEEE and IEEE Computer SocietyIEEE Computer Society
This presentation is mostly based on experience gained by authors prior to This presentation is mostly based on experience gained by authors prior to joining Intel/Microsoft, when authors worked as chief executives of several joining Intel/Microsoft, when authors worked as chief executives of several large Russian/Ukrainian software outsourcing companieslarge Russian/Ukrainian software outsourcing companies
We had a chance to look at outsourcing projects from both sides of the ocean We had a chance to look at outsourcing projects from both sides of the ocean
44
Intel in 2003Intel in 2003
35 years old (founded in 1968)35 years old (founded in 1968)78,000 people, 294 offices and facilities 78,000 people, 294 offices and facilities in 48 countriesin 48 countriesOver 450 products and services Over 450 products and services Revenue of $30.1 billionRevenue of $30.1 billionNet income of $5.6 billionNet income of $5.6 billionR&D Investment of $4.4 billionR&D Investment of $4.4 billion
R&D is distributed all over the worldR&D is distributed all over the world
55
Microsoft in 2003Microsoft in 2003
29 years old (founded in 1975)29 years old (founded in 1975)
55,000 people, 89 subsidiaries55,000 people, 89 subsidiaries
Revenue of $32.2 billionsRevenue of $32.2 billions
Net income of $10 billionsNet income of $10 billions
R&D investment: $5.2 billionsR&D investment: $5.2 billions
As a general rule, all development is carried out As a general rule, all development is carried out at main campus in Redmond, WAat main campus in Redmond, WA
66
What Is a “Process Pattern”?What Is a “Process Pattern”?
A A PatternPattern is a description of a general solution is a description of a general solution to a common problem or issue from which a to a common problem or issue from which a detailed solution to a specific problem can be detailed solution to a specific problem can be determineddeterminedA A Process PatternProcess Pattern is a specific Pattern created is a specific Pattern created for, employed within or defined in terms of for, employed within or defined in terms of Software Process Engineering domain Software Process Engineering domain Software Software Process EngineeringProcess Engineering is a knowledge is a knowledge area concerned with the definition, area concerned with the definition, implementation, assessment, measurement, implementation, assessment, measurement, management, change, and improvement of the management, change, and improvement of the software engineering process itselfsoftware engineering process itself
77
In This PresentationIn This Presentation
We will use MSF in our examples. To understand these examples We will use MSF in our examples. To understand these examples one does not need to know MSF. However some experience in one one does not need to know MSF. However some experience in one of the modern IT management methodologies/frameworks (RUP, of the modern IT management methodologies/frameworks (RUP, MSF, CDM etc.) is requiredMSF, CDM etc.) is required
The Microsoft Solutions Framework (MSF) is a collection of The Microsoft Solutions Framework (MSF) is a collection of Microsoft's proven practices on managing successful IT projectsMicrosoft's proven practices on managing successful IT projectsMicrosoft almost does not market MSF and they are not selling it. Microsoft almost does not market MSF and they are not selling it. Instead, Microsoft is focused on making money Instead, Microsoft is focused on making money usingusing MSF MSF Similar to Windows or any other product, MSF evolves and matures Similar to Windows or any other product, MSF evolves and matures as new versions are released. Initially Microsoft made MSF available as new versions are released. Initially Microsoft made MSF available in 1994. The latest version of MSF is 3.0 and it was published last in 1994. The latest version of MSF is 3.0 and it was published last year year You cannot buy this product from Microsoft, but you still can get it – You cannot buy this product from Microsoft, but you still can get it – it’s free. Both whitepapers describing MSF and sample templates for it’s free. Both whitepapers describing MSF and sample templates for MSF lifecycle deliverables are available on the Microsoft web-siteMSF lifecycle deliverables are available on the Microsoft web-site
88
Software Outsourcing: Typical ModelsSoftware Outsourcing: Typical Models
CIS US / Europe
Development company
Development office
Mediator company
Main office
Client
Client
CIS - Commonwealth of Independent States (Russia, Ukraine and other former Soviet countries)
Different approaches to adapting modern software development management methodologies and frameworks to offshore outsourcing projects are possible
deve
lopm
ent
offic
e p
rovi
des
SE
RV
ICE client gets PR
OD
UC
T or se
rvice
99
How Many Borders Do We Have?How Many Borders Do We Have?
CIS Europe / US
CIS officeUS/Europe
office Client
language barrier
timeshift
cultural difference
s
1010
Single-Site DevelopmentSingle-Site Developmenta strategya strategyan organizational structurean organizational structurebusiness processesbusiness processes
1111
Distributed DevelopmentDistributed Development
CIS US / Europe
How to distribute/customize a strategy, an organizational How to distribute/customize a strategy, an organizational structure and business processes?structure and business processes?
1212
Process Patterns Process Patterns For Distributed DevelopmentFor Distributed Development
IntroductionIntroduction
Organizational PatternsOrganizational Patterns
Process PatternsProcess Patterns
Transitional PatternsTransitional Patterns
1313
Software Outsourcing: Typical ModelsSoftware Outsourcing: Typical Models
CIS Europe / US
Development company
Development office
Mediator company
Main office
Client
Client
CIS - Newly Independent States (Russia, Ukraine and other former Soviet countries)
Different approaches to adapting modern software development management methodologies and frameworks to offshore outsourcing projects are possible
deve
lopm
ent
offic
e p
rovi
des
SE
RV
ICE client gets PR
OD
UC
T or se
rvice
1414
Software Outsourcing:Software Outsourcing:the “Broken Phone” Gamethe “Broken Phone” Game
CIS US / Europe
“Technical” people
“Business”people Client
When a technical person speaks to a business person, some When a technical person speaks to a business person, some information is often lost or misinterpretedinformation is often lost or misinterpretedWhen two specialists from different countries speak over the When two specialists from different countries speak over the ocean, some information is often lost or misinterpretedocean, some information is often lost or misinterpretedSo, imagine what happens when a technical person speaks to So, imagine what happens when a technical person speaks to a business person over the ocean…a business person over the ocean…
1515
MSF Team ModelMSF Team Model
Communication
Delivering the solution within project constraints
Satisfied customers
Enhanced user effectiveness
Smooth deployment and ongoing operations
Approval for release only after all quality issues are identified and addressed
Building to specification
Program Management
Development
Test
Release Management
User Experience
Product Management
1616
MSF Team Model for Software MSF Team Model for Software Outsourcing ProjectsOutsourcing Projects
Europe / US
Development
Test
Program Management
Release Management
User Experience
Product Management
CIS
1717
Our Solution: In Software Outsourcing Our Solution: In Software Outsourcing Projects All Functional Areas Should be Projects All Functional Areas Should be
Covered on Both SidesCovered on Both SidesCIS US / Europe
Program management
Development
Test
User Experience
Product Management
Program management
Development
Test
Release Management
User Experience
Product Management
Release Mngmnt
1818
MSF Team as a Matrix OrganizationMSF Team as a Matrix Organization An MSF team is structured as a team of peers. In this An MSF team is structured as a team of peers. In this model, the Program Management role takes a highly model, the Program Management role takes a highly facilitative approach to managing the functions within its facilitative approach to managing the functions within its responsibilities. As such, the MSF team would responsibilities. As such, the MSF team would organizationally be structured similarly to what is referred organizationally be structured similarly to what is referred to in the PMBOK as a Matrix Organization. These are to in the PMBOK as a Matrix Organization. These are cross-functional teams that combine the skills and foci from cross-functional teams that combine the skills and foci from difference areas of the organization into a single team difference areas of the organization into a single team assembled for the projectassembled for the projectAdditionally, the MSF team, as a team of peers, would Additionally, the MSF team, as a team of peers, would most closely resemble a Weak Matrix Organization, in its most closely resemble a Weak Matrix Organization, in its purest form, as described in the PMBOK. Here, “weak” purest form, as described in the PMBOK. Here, “weak” refers to the level of decision-making clout of the project refers to the level of decision-making clout of the project manager and not the quality or capabilities of the teammanager and not the quality or capabilities of the team
from MS whitepaper “MSF and the Project Management from MS whitepaper “MSF and the Project Management Body of KnowledgeBody of Knowledge””
1919
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 OrganizationsMatrix Organizations
2020
Functional OrganizationFunctional OrganizationChief
Executive
FunctionalManager
FunctionalManager
FunctionalManager
StaffStaff
Staff
Staff
Staff Staff
Staff Staff
Staff
ProjectCoordination
2121
Project OrganizationProject OrganizationChief
Executive
ProjectManager
ProjectManager
ProjectManager
StaffStaff
Staff
Staff
Staff Staff
Staff Staff
Staff
ProjectCoordination
2222
Weak Matrix OrganizationWeak Matrix OrganizationChief
Executive
FunctionalManager
FunctionalManager
FunctionalManager
StaffStaff
Staff
Staff
Staff Staff
Staff Staff
Staff
ProjectCoordination
2323
Balanced Matrix OrganizationBalanced Matrix OrganizationChief
Executive
FunctionalManager
FunctionalManager
FunctionalManager
StaffStaff
Staff
Staff
Staff Staff
Staff Staff
Project Manager
ProjectCoordination
2424
Strong Matrix OrganizationStrong Matrix OrganizationChief
Executive
Manager of Project Managers
FunctionalManager
FunctionalManager
Project ManagerStaff
Staff
Staff
Staff Project Manager
Staff Project Manager
Staff
ProjectCoordination
2525
Our Solution: MiniMax Pattern for Our Solution: MiniMax Pattern for Geographically Distributed Matrix Geographically Distributed Matrix
OrganizationsOrganizationsIf a matrix organization is geographically distributed over If a matrix organization is geographically distributed over number of offices/countries/time zonesnumber of offices/countries/time zones
So it becomes 3D matrixSo it becomes 3D matrix
Each function should be present on as many sites as Each function should be present on as many sites as possiblepossible
However, for offshore development some functions However, for offshore development some functions ((i.e. salesi.e. sales)) may not make sense on some sitesmay not make sense on some sites
Each project should be allocated to as few sites as Each project should be allocated to as few sites as possiblepossible
This is an extension to the known approach called “collocation” This is an extension to the known approach called “collocation” However, for offshore development each project will be allocated However, for offshore development each project will be allocated
to at least two sitesto at least two sites
2626
Process Patterns Process Patterns For Distributed DevelopmentFor Distributed Development
IntroductionIntroduction
Organizational patternsOrganizational patterns
Process patternsProcess patterns
Transitional patternsTransitional patterns
2727
MSF Risk Management DisciplineMSF 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
2828
Risk Management for Software Risk Management for Software Outsourcing ProjectsOutsourcing Projects
CIS 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 Assessment Document
Top 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 Assessment Document
Top n Risks
2929
Our Solution: One Transparent Risk Our Solution: One Transparent Risk Management Process Management Process
for All Sub-Teamsfor All Sub-TeamsCIS 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
3030
IBM Rational Unified ProcessIBM Rational Unified Process
ManagementEnvironment
Business Modeling
Implementation
Test
Analysis & Design
Preliminary Iteration(s)
Iter.#1
Phases
Disciplines
Iterations
Iter.#2
Iter.#n
Iter.#n+1
Iter.#n+2
Iter.#m
Iter.#m+1
Deployment
Configuration Mgmt
Requirements
Elaboration TransitionInception Construction
3131
RUP Disciplines For Software RUP Disciplines For Software Outsourcing ProjectsOutsourcing Projects
CIS Europe / US
3232
Our Solution: All Disciplines Are Our Solution: All Disciplines Are Important For Every Sub-TeamImportant For Every Sub-Team
CIS US / Europe
Elaboration TransitionInception Construction
3333
Project PostmortemProject Postmortem
CIS 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
POSTMORTEM POSTMORTEM
3434
Our Solution: “Big Postmortem” For All Our Solution: “Big Postmortem” For All Project StakeholdersProject Stakeholders
CIS Europe / US
P O S T M O R T E M
Unfortunately, it is not a common practice for offshore outsourcing projects today
POSTMORTEM POSTMORTEM POSTMORTEM
3535
One Of The GRASP Design One Of The GRASP Design Patterns: PolymorphismPatterns: Polymorphism
Problem:Problem: How to handle alternatives based on type? How to create How to handle alternatives based on type? How to create
pluggable components?pluggable components?
Solution:Solution: When related behaviors vary by type, assign responsibility for When related behaviors vary by type, assign responsibility for
the behavior to types using polymorphismthe behavior to types using polymorphism
PRO:PRO: Extensions (new variations) easy to addExtensions (new variations) easy to add New implementations can be introduced without affecting clientsNew implementations can be introduced without affecting clients
CON:CON: Avoid “future-proofing” if variation is unlikely to occurAvoid “future-proofing” if variation is unlikely to occur Adds additional effort to designAdds additional effort to design
3636
Our Solution: Inheritance Helps Our Solution: Inheritance Helps MinimizeMinimize BureaucracyBureaucracy
Traditional approachTraditional approach Our approachOur approach
Total 64 pagesTotal 64 pages
Total 34 pagesTotal 34 pages
Java coding standard
C++ coding standard
C coding standard
Java coding standard
C++ coding standard
C coding standard
General style and coding standard
3737
US/Europe Office
Public Domain
CIS Office
Our Solution: Define Your Process Our Solution: Define Your Process Architecture Using Inheritance Architecture Using Inheritance
CIS US / Europe
Policy Policy
Policy
PolicyPolicy
Policy
Policy
Policy
Policy
Policy
Policy
3838
Process Patterns Process Patterns For Distributed DevelopmentFor Distributed Development
IntroductionIntroduction
Organizational PatternsOrganizational Patterns
Process PatternsProcess Patterns
Transitional PatternsTransitional Patterns
3939
More Workload, More Resources… More Workload, More Resources… Company workload
Company size / resources
Most companies are in this area
4040
A Few Words About Productivity… A Few Words About Productivity… Productivity of
employees
Number of employees
Most companies are in this area
4141
Transitional PatternsTransitional PatternsTransitional patterns deal with process Transitional patterns deal with process transformations during the period of rapid transformations during the period of rapid growth/change of the companygrowth/change of the companyWhen the company grows to more than 3-5 When the company grows to more than 3-5 persons, a formal hierarchy of command should persons, a formal hierarchy of command should appearappearWhen the company grows to more than 40-50 When the company grows to more than 40-50 persons, delegation of authority from the chief persons, delegation of authority from the chief executive to the middle managers is neededexecutive to the middle managers is neededWhen the company grows beyond 90-110 When the company grows beyond 90-110 persons, formal policies and quality programs persons, formal policies and quality programs become necessary for keeping the company on become necessary for keeping the company on tracktrack
4242
MSF Readiness MSF Readiness Management DisciplineManagement Discipline
DefineDefineKnowledge,
Skills, Abilities
Knowledge,Skills,
Abilities
ChangeChange
AssessAssess
EvaluateEvaluate
4343
Our Solution: Integrated Our Solution: Integrated Readiness/Effectiveness/Transition Readiness/Effectiveness/Transition
Management DisciplineManagement DisciplineDefineDefineCorporate
Knowledge Base
Corporate Knowledge
Base
ChangeChange
AssessAssess
Evaluate
Evaluate
PlanPlan
4444
SummarySummaryMiniMax pattern helps organize work within MiniMax pattern helps organize work within geographically distributed matrix organizationsgeographically distributed matrix organizations All functional areas should be covered in all sitesAll functional areas should be covered in all sites
Every discipline should cover all sub-teamsEvery discipline should cover all sub-teams One transparent risk management process for all sub-One transparent risk management process for all sub-
teamsteams
““Big postmortem” for all project stakeholdersBig postmortem” for all project stakeholders
Define your process architectureDefine your process architecture Inheritance helps minimize bureaucracyInheritance helps minimize bureaucracy
Integrated readiness/effectiveness/transition Integrated readiness/effectiveness/transition managementmanagement
4545
See AlsoSee AlsoProcess Patterns Process Patterns
http://hillside.net/ (English)http://hillside.net/ (English) http://www.ambysoft.com/processPatternsPage.html (English)http://www.ambysoft.com/processPatternsPage.html (English)
Microsoft Solutions Framework Microsoft Solutions Framework http://www.microsoft.com/msf (English)http://www.microsoft.com/msf (English) http://www.microsoft.com/rus/msf (Russian)http://www.microsoft.com/rus/msf (Russian)
IBM Rational Unified ProcessIBM Rational Unified Process http://www.rational.com/rup (English)http://www.rational.com/rup (English)
PMI Project Management Body Of KnowledgePMI Project Management Body Of Knowledge http://www.pmibookstore.org/PMIBookStore/http://www.pmibookstore.org/PMIBookStore/
productDetails.aspx?itemID=110&varID=1 productDetails.aspx?itemID=110&varID=1 (English)(English) http://www.pmi.org/info/PP_PMBOK2000Excerpts.asp http://www.pmi.org/info/PP_PMBOK2000Excerpts.asp
(English)(English)
4646
See AlsoSee Also““Using MSF for Software Outsourcing” Using MSF for Software Outsourcing” by V.Pavlov and A.A.Terekhovby V.Pavlov and A.A.Terekhov
http://nl.itsmportal.net/binaries/MSF_for_software_outsourcing.ppt (English)http://nl.itsmportal.net/binaries/MSF_for_software_outsourcing.ppt (English) http://www.ukrsoftpro.com.ua/Pavlov_Terekhov_Kiev2003.zip (Russian)http://www.ukrsoftpro.com.ua/Pavlov_Terekhov_Kiev2003.zip (Russian)
““MSF-based Process Patterns” MSF-based Process Patterns” by D.Malenko and V.Pavlovby D.Malenko and V.Pavlov www.itlab.unn.ru/archive/seminar/SE/1502_2.ppt (English)www.itlab.unn.ru/archive/seminar/SE/1502_2.ppt (English)
““How to Train Managers for IT Industry?”How to Train Managers for IT Industry?”by V.Pavlov and A.A.Terekhov (Russian)by V.Pavlov and A.A.Terekhov (Russian)
http://www.it-education.ru/archive/2003/reports/pavlov_terekhov.htmhttp://www.it-education.ru/archive/2003/reports/pavlov_terekhov.htm http://www.it-education.ru/archive/2003/reports/presentation/pavlov_terekhov.ppthttp://www.it-education.ru/archive/2003/reports/presentation/pavlov_terekhov.ppt
"Software Process Improvement in Russian Company: a Case Study”"Software Process Improvement in Russian Company: a Case Study”by V.Kiyaev, A.A.Terekhovby V.Kiyaev, A.A.Terekhov
http://users.tepkom.ru/ddt/articles/SPI_in_Russia.html (English)http://users.tepkom.ru/ddt/articles/SPI_in_Russia.html (English) http://www.nsda.ru/home.asp?artId=129 (Russian)http://www.nsda.ru/home.asp?artId=129 (Russian)
““Formalization and Automation of Global Software Development Processes”Formalization and Automation of Global Software Development Processes” by V.Kiyaev, I.Sobolev, A.A.Terekhov, B.Fedotovby 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.html (English) http://users.tepkom.ru/ddt/Articles/DistributedDevelopment_rus.html (Russian)http://users.tepkom.ru/ddt/Articles/DistributedDevelopment_rus.html (Russian)
4747
Our thanks to:Our thanks to:
Alexandr Zverintsev (NOKIA, Poland)Alexandr Zverintsev (NOKIA, Poland)Alexandr Zhuykov (ISD, Ukraine)Alexandr Zhuykov (ISD, Ukraine)Andrey Filev (Murano Software, USA/Russia)Andrey Filev (Murano Software, USA/Russia)Andrey Nizovsky (Waveaccess, Russia)Andrey Nizovsky (Waveaccess, Russia)Anna Tiunova (Lanit-Tercom, Russia)Anna Tiunova (Lanit-Tercom, Russia)Irina Mozgovaya (DNU, Ukraine)Irina Mozgovaya (DNU, Ukraine)Nikita Boyko (ISD, Ukraine)Nikita Boyko (ISD, Ukraine)Sergey Alpaev (ISD, Ukraine)Sergey Alpaev (ISD, Ukraine)Sergey Goryainov (Berest, Ukraine)Sergey Goryainov (Berest, Ukraine)Sergey Troshin (Lanit-Tercom, Russia)Sergey Troshin (Lanit-Tercom, Russia)Symon Moldavsky (UkrSoftPro, Ukraine)Symon Moldavsky (UkrSoftPro, Ukraine)Victor Churilov (ISD, Ukraine)Victor Churilov (ISD, Ukraine)Vladimir Ufnarovsky (Lanit-Tercom, Russia)Vladimir Ufnarovsky (Lanit-Tercom, Russia)Yuri Gubanov (Lanit-Tercom, Russia)Yuri Gubanov (Lanit-Tercom, Russia)Yury Us (SCC, USA)Yury Us (SCC, USA)
4848
You can download this presentation fromYou can download this presentation from
http://www.vlpavlov.com http://www.vlpavlov.com
http://www.soft-outsourcing.comhttp://www.soft-outsourcing.com
Questions?Questions?