Efficient coordination among software developers is a key aspect in producing high quality software on time and on budget. Several factors, such as team distribution and the structure of the organization developing the software, can increase the level of coordination difficulty. However, the problem runs deeper as it is often unclear which developers should coordinate their work.
In this dissertation, we propose leveraging the concept of socio-technical congruence (which contrasts coordination needs with actual coordination) to improve the social interactions among developers by devising an approach and its implementation into a recommender system that identifies relevant coordinators. Our unit of analysis is the integration build, whose outcome represents the quality of coordination. After development, this approach was applied in a number of IBM Rational Team Concert development team case studies, as well as a large student project at the University of Victoria, Canada, and Aalto University, Finland.
Since each software product is just the latest integration build, it is of utmost importance for the industry to ensure a failure free build. While developing an approach to improve coordination among software developers we uncovered that unmet coordination needs, as well as the communication structure in a team, have a significant influence on build outcome.
- Introduction 1
- ProblemStatement .............................. 3
- DissertationFocus............................... 4
- Contributions ................................. 5
- Approach ............................... 5
- EmpiricalFindings .......................... 6
- Overview ................................... 7
- Background 10
- BuildOutcome ................................ 10
- Communication, Coordination and Integration ............ 11
- Cancommunicationpredictbuildfailure? .............. 12
- CoordinationinSoftwareEngineeringTeams ................ 13
- TheNeedforCoordination ...................... 13
- CoordinationinSoftwareTeams ................... 14
- Socio-TechnicalCongruence ......................... 15
- Socio-TechnicalCongruenceDefinitions ............... 15
- Socio-Technical Congruence and Performance ............ 18
- NetworksandFailure ............................. 19
- ArtifactNetworks........................... 19
- TechnicalNetworks.......................... 20
- RecommendationsinSoftwareEngineering ................. 20
- ResearchQuestions .............................. 21
- Summary ................................... 23
- BuildOutcome ................................ 10
- Methodology and Constructs 24
- MethodologyRoadmap............................ 24
- RQ 1.1: Do Social Networks influence build success? 24
- RQ 1.2: Do Socio-Technical Networks influence build success?............................... 26
- RQ 2.1: Can Socio-Technical Networks be manipulated to increase buildsuccess? .................... 27
- RQ 2.2: Do developers accept recommendations based on software changes to increase build success? ........... 27
- RQ 2.3: Can recommendations actually prevent build failures? .............................. 28
- Definitions................................... 29
- WorkItem............................... 29
- Change-Set .............................. 29
- Build ................................. 30
- Constructs................................... 30
- SocialNetwork ............................ 32
- TechnicalNetwork .......................... 33
- Socio-TechnicalNetwork....................... 34
- DataCollectionMethods ........................... 36
- RepositoryMining .......................... 36
- Surveys ................................ 37
- Observations ............................. 37
- Interviews............................... 38
- Summary ................................... 40
- MethodologyRoadmap............................ 24
- IBM Rational Team Concert 41
- TheIBMRationalTeamConcertProduct .................. 41
- SourceControl ............................ 43
- WorkItems .............................. 43
- Planning................................ 45
- BuildEngine ............................. 46
- Foundation/Integration ........................ 46
- The IBM Rational Team Concert Product Development Team ........ 47
- ThePeople .............................. 47
- TheProcess.............................. 49
- Summary ................................... 51
- TheIBMRationalTeamConcertProduct .................. 41
- Communication and Failure 53
- Methodology ................................. 54
- Coordinationoutcomemeasure.................... 54
- Communicationnetworkmeasures.................. 54
- Datacollection ............................ 58
- AnalysisandResults ............................. 58
- Individual communication measures and build results ........ 59
- Predictive power of measures of communication structures ..... 60
- Discussion................................... 62
- Summary ................................... 62
- Methodology ................................. 54
- Socio-Technical Congruence and Failure 64
- CalculatingCongruence............................ 65
- AnalysisMethods............................... 65
- Results..................................... 66
- EffectsofCongruenceonBuildResult ................ 68
- EffectofGapRatioonBuildResult ................. 69
- Social and Technical Factors in RTC Affecting Build Success and Congruence.............................. 70
- Discussion................................... 73
- StrongAwarenessHelpsCoordination ................ 75
- Coordination and Geographic Distribution .............. 77
- ProjectMaturityandBuildSuccess ................. 78
- Summary ................................... 79
- A Socio-Technical Congruence Approach to Improve Build Success 80
- Overview ................................... 80
- DefineScope ................................. 81
- DefineOutcome................................ 81
- ConstructSocialNetworks .......................... 81
- ConstructTechnicalNetworks ........................ 81
- GenerateInsights ............................... 82
- Summary ................................... 82
- Leveraging Socio-Technical Networks 85
- Socio-TechnicalCoordination ......................... 85
- AnalysisofSocio-TechnicalGaps ...................... 86
- Results..................................... 88
- Discussion................................... 90
- Summary ................................... 92
- Acceptability of Recommendations 93
- StudyDesign ................................. 93
- DataCollection............................ 94
- Analysis................................ 99
- Findings....................................100
- DevelopmentMode..........................100
- Perceived Knowledge of the change-set Author ........... 103
- CommonExperienceandLocation..................104
- RiskAssessment ...........................105
- WorkAllocationandPeerReviews..................106
- TypeofChange............................106
- BusinessGoalsvsDeveloperPride..................107
- Summary ...................................107
- StudyDesign ................................. 93
- Appropriateness of Technical Relations 109
- A Course on Globally Distributed Software Development .......... 109
- CourseDetails ............................111
- TeamComposition ..........................112
- DevelopmentProject .........................112
- DevelopmentProcess.........................113
- IT-Infrastructure............................113
- Methodology .................................114
- Proximity to Infer Real Time Technical Networks .......... 114
- Data Collection ............................ 114
- Analysis................................116
- Findings .................................... 117
- BuildFailuresThatMatter ......................117
- PreventableBuildFailures ......................118
- TheRightRecommendations.....................118
- Discussion ................................... 120
- Summary ...................................120
- A Course on Globally Distributed Software Development .......... 109
- Conclusions
- AnApproachForImprovingSocialInteractions ...............122
- ContributionsthroughEmpiricalStudies ...................124
- Using Build Success as Communication Quality Indicator .....124
- UnmetCoordinationNeedsMatter..................125
- DevelopersThatInduceBuildFailures ................ 125
- RecommenderSystemDesignGuidelines .............. 126
- Socio-TechnicalCongruenceinRealTime .............. 128
- Threats to Validity ............................... 128
- Future Work .................................. 130
- Implement and Deploy the Recommender System .......... 131
- Extendthe Recommender System with more Technical Dependencies 131
- Extend the Recommender Systemby Generalizing the Recommendations 132
- Investigate Architectures that Better Fit Organizational Structures . 132