290 likes | 547 Views
Submitted to Professor Shervin Shirmohammadi in partial fulfillment of the requirements for the course ELG 5100 B y Sri Vijay Bharat Peddi (7475608) & Pallavi Kuhad (7475804). Coordination Breakdown and Their Impact on Development Productivity and Software Failures. Outline. 1. 2.
E N D
Submitted to Professor ShervinShirmohammadi in partial fulfillment of the requirements for the course ELG 5100 By Sri Vijay Bharat Peddi (7475608) & PallaviKuhad(7475804) Coordination Breakdown and Their Impact on Development Productivity and Software Failures
Outline 1 2 3 4 Socio - Technical Congruence Coordination Breakdowns Dependencies Computing Coordination Requirements & Congruence
Failure in First Space Shuttle Launch(1981) • The first space shuttle mission was delayed and eventually failed. • One of the major reasons Coordination Breakdowns and issues in agreement protocols.
SOCIO TECHNICAL CONGRUENCE • Definition: "In order to manage changes and maintain quality, developers must coordinate and, in software development, coordination is largely achieved by communicating with people who depend on the work that you do.“ • What socio-technical congruence offers • An approach to measure the coordination quality. • We can use this measurement to identify the effect of socio-technical coordination on software build quality.
Effects of Socio Technical Congruence • Higher congruence leads to faster completion of modification requests. • The presence of gaps increases the number of code changes. • Lack of coordination connections across system and organizational boundaries have a negative effect on performance.
Coordination in Software Development • Mismatches between the social & technical dimensions = Gaps, Overdues • Increases resolution times for software activity. • Aligning the Technical structure & Social interactions Socio- Technical Congruence. Example - Comparing coordination needs with actual coordination (a) The coordination needs. (b) The actual coordination. (c) The coordination that is lacking.
Why talk about dependencies? Dependencies in software development • Research has shown that customer-reported software faults are often the result of violated dependencies. • Not recognized by developers implementing software. TECHNICAL DEPENDENCY LOGICAL DEPENDENCY WORK DEPENDENCY
AGENDA Types Of Dependencies WORK DEPENDENCIES LOGICAL DEPENDENCIES TECHNICAL DEPENDENCIES • Work of employees is calculated --> Changes they make to the source code(also called artifacts) • Changes done to one source code --> Might impact other source code --> Which could be determined by Technical Dependency • Identifying source code files that are changed together. • Eg- Invoking RPC <-> Implementing RPC • Level of interdependency proportionate to communication and coordination activities. • Distance between people that work together Program failure proneness. • Use Modular approach - Minimal communication between teams responsible.( Not successful in volatile env.) • Use Informal Communication – Geographical Location Limitation. Source Code 1 Source Code 2
REAL TIME SCENARIO 1 MR(like a ticketing tool) represent a development work on which engineers work. Work of employees --> Changes they make to the source code(also called artifacts) 2 Changes done to one source code --> Might impact other source code --> Technical Dependency 3 4 Represents coordination b/w developers of same team(MR) or different MR
Computing Coordination Requirements and Congruence • How to compute coordination requirement ? • Socio Technical Congruence --> provides measure of coordination requirements (already discussed) 1. people to task relationship ( task assignment matrix Ta) 2. task to task relationship ( task dependency matrix Td)
CONVAYS LAW CATALDO RESULTS • It states that in order for two separate software modules to interface correctly, the designers and implementers of each module must communicate with each other. Therefore, the interface structure of a software system will reflect the social structure of the organization(s) that produced it. • Cataldo found that the tasks completed faster when the communication structure reflected the artifact structure. • Less time= • Higher • Congruency
Matrix Model • Developers = i, Modified jobs = j --> Ta Matrix = Task Dependency = Technical Dependency among different source code • Past work show logical dependency is better hence used here • Td matrix = number of times a two files was changed together= Logical Dependency • Result Cr matrix = Ta * Td * Transpose(Ta) --> Extent to which work was interdependent • Computing Congruence = Comparing Cr ( Coordination matrix) to Ca ( Actual Coordination matrix) • Ca capture coordination activities performed by individuals working on development work.
AGENDA CONGRUENCE STRUCTURAL CONGRUENCE GEO- CONGRUENCE • If system is perfectly modularized --> Work can be done b/w engineers in the same team = No coordination req. b/w teams • coordination exist b/w individual at same physical location MR COMMUNICATION CONGRUENCE IRC COMMUNICATION CONGRUENCE • Considers the technical exchange, when both engineers explicitly commented on modification request report. • Based on IRC logs, 3 Raters blind to research --> No of times interaction b/w two employees.
Case Study A second line of text could go here Project A: Project B • Project A was a large distributed system for a data storage product. • The company had 114 developers grouped into eight development teams. • 3 development locations in North America. • 5 million LOC, 7,737 source code files • Developers also used tools such as Internet Relay Chat (IRC) and an MR tracking system to interact and coordinate their work • 380 developers located in 8 development sites distributed across Europe and India participated in the project. • 7 million lines of code distributed in 9,074 source code files • Telephone and conference calls as well as e-mail were the primary mechanisms of communication among distributed engineers. • instant messaging was not authorized.
Results • Increase in measure result --> Significant reduction in likelihood of software proneness. • Higher level of congruence is associated with low level of failure proneness. • In project B showed higher congruence and • was statistically significant.
Conclusions • All Dependencies increase fault proneness • Logical Dependencies has the highest impact, followed by workflow & technical dependencies. • Individuals that exhibited a higher number of workflow dependencies & coordination requirements were more likely to have defects in the files they worked on.
Future Work • A more detailed understanding of the bases of logical dependencies is an important future direction with implications in research areas such as software quality and development tools. • Logical Dependencies holds promise in reducing defects.
References • M. Cataldo and James D. Herbsleb , “Coordination Breakdowns and Their Impact on Development Productivity and Software Failures”, Software Engineering, IEEE Transactions on (Volume:39 , Issue: 3 ), 2013. • M. Cataldo, J.D. Herbsleb, and K.M. Carley, “Socio-Technical Congruence: A Framework for Assessing the Impact of Technical and Work Dependencies on Software Development Productivity,” Proc. ACM/IEEE Second Int’l Symp. Empirical Software Eng. and Measurement, 2008 • M.E. Conway, “How Do Committees Invent?” Datamation, vol. 14, pp. 28-31, 1968. • Marcelo Cataldo, AudrisMockus, Jeffrey A. Roberts, and James D. Herbsleb “Software Dependencies, Work Dependencies, and Their Impact on Failures” IEEE Transactions on Software Engineering, 2009.
ThankYou Questions
Coordination Coordination is defined as “integrating or linking together different parts of an organization to accomplish a collective set of tasks” • In order to manage changes and maintain quality, developers must coordinate and, in software development, coordination is largely achieved by communicating with people who depend on the work that you do . • Measure of coordination that can be used to diagnose coordination problems in a software development team • A successful software build can be viewed as the outcome of good coordination because the build requires the correct compilation of multiple, dependent files of source code. A failed build, on the other hand, demotivates software developers and destabilizes the product .
Approach 1 3 2 Computing Coordination Requirements and Congruence Socio Techincal Congruence and Software Failure Results and Future Scope References
Factors Contributing to Coordination Breakdowns at workplaces(generic) 1 2 3 4 5 Improper Communication Dropping the baton while passing it from one to another. Conflicts between Individual and Organizational goals Lack of proper understanding of Work Flow. Not maintaining proper documentation. Improper Communication
Work Dependency Impact of human and organizational factors on failure proneness. • Level of interdependency between tasks tends to increase the level of communication and coordination activities among workers. • Studies of Microsoft show that the distance between people that work together on a program determines the programs failure proneness • Modular approach - minimal communication between teams responsible for related modules is problematic because it significantly increases the likelihood of integration problems
Logical Dependency Logical dependencies explained most of the variance in fault proneness • Logical Dependencies between the source code files will be calculated by identifying source code files that are changed together as part of software development. • When the module invoking the RPC and the module implementing the RPC server are changed together, a logical dependency is created, showing a direct dependency between the affected source-code files Source Code 1 Source Code 2
Congruence Measure and Control Factors • Measure based on median value- appropriate and used • For each file --> Median value was computed based on list of files that were touched. Control Factors • Consider subset of work dependencies and technical dependencies • Td is computed by taking the row sum minus the sum of the diagonal • logical dependencies -> summing the cells in the corresponding rows
Limitations of Modular Approach • Modular strategy is vulnerable to unanticipated changes • Not suitable for volatile environments • the above approaches are based on assumptions no change, hence fail to recognize the software development complexity