Top Banner
Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley
22

Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

Dec 20, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

Collaborative Software Engineering

Especially in Disparate Geographical Environments

Philip Kelley

Page 2: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

Software Engineering

• More than 1 person → collaborative effort

• F.P. Brooks: Mythical Man Month, No Silver Bullet

• Can even be hard to coordinate 2 people

• Moving to geographically isolated teams aggravates the problem

More collaboration

Page 3: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

In Disparate Locations

• >= 2 isolated engineering teams of >=1 people

• Open source: team size of 1 is common

• Inter-team collaboration limited to software tools and the telephone

• Time zones, workday overlap

Page 4: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

In Disparate Locations

• Herbsleb, et. al. (Bell Labs) studied a development project at Lucent with 2 primary sites.

• A lot of things went wrong on the project– Components built at multiple sites did not work

together

• Collaboration did not just have to occur between the 2 primary sites– The teams depended on substrate components

developed at many other sites

Page 5: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

What went wrong?• Site teams tried to work on

unrelated parts of the project– This was a good idea

• But, assumptions were made by each of the sites about the semantics of the interfaces between components.– Even the unit tests at each site

made these assumptions– Each team was certain their

component was semantically correct, but the documentation was just inadequate

Page 6: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

What went wrong?• Different change management

systems were used at different sites

• This enabled rapid progress early in the development cycle

• But during the integration phase, when things didn’t work, this caused trouble

• Bug fixes, etc. had to be replicated in both tracking systems, wasting a lot of time

Page 7: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

What went wrong?

• Can these issues be addressed by collaborative software?

• Easier ones identified by Herbsleb, et al:– The high cost of initiating contact– Integrated development environment, i.e. same

version control repository, same change management system

• Hard ones identified:– Cultural differences between teams– Trust issues between teams– Lack of unplanned contact with other team members– Time zones!

Page 8: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

Ideal Software Engineering Environment

• Obvious goal: Reduce the percentage of developer time spent on coordination of efforts with others

• Many tools already exist– Version control - Change management– Automated build - Workplace messaging– Static analysis

• An ideal environment would have all these integrated together– Can roll your own, developing procedures to integrate

pieces together– Visual Studio Team System from MS is an option

Page 9: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

Ideal Software Engineering Environment

• In addition to the standard toolbox there are some novel ideas for software development tools which we will look at

• Two ways for tools to work:– Manage the interaction

between developers better– Reduce the required

interaction between developersR

educ

e in

tera

ctio

n

Manage interaction better.

Page 10: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

Workplace IM (and IRC)• Versus actually visiting someone’s

office. Incredibly important with geographically separated teams.

• Reduce required interaction– By reducing cost of contacting another

individual. Don’t have to get up (or fly to another country!)

• Manage interaction better– Interruptee can multitask IM sessions,

and delay response if needed to preserve his/her train of thought, etc.

• Drawbacks– Interruptee can completely ignore IMs– Interrupter can get higher-quality support

from the interruptee by walking into the interruptee’s office

Page 11: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

Version Control• A (partially) disconnected filesystem

• Advantages are better realized when coupled with the change management system

Page 12: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

Version Control• In the case of geographically separated teams,

the same version control system should be used for both sites.

• But, each team could work out of a separate branch, and merge changes at regular intervals.

• This provides insulation from breaking changes on the other end, but prevents divergence of the branches from becoming irreparable.

Team 1 Private Branch

Team 2 Private Branch

TRUNK

Reverse integrate (trunk->branch)Integrate (branch->trunk)

Page 13: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

Change Management• A system for tracking requests for changes

in the software being built• The same system and database should be

used for all sites• Ideally, version control should be

integrated with change management.These screen shots are from Visual Studio Team System. I have seen other solutions, however, using Perforce and other change management systems. Integration capability is a main selling point of all these tools because the advantage is well understood, but only in the past few years.

Page 14: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

Social Issues with Change Management

• Halverson, et al. (IBM Research) did a study of change management in two public projects, Mozilla and Eclipse

• They found social problems with change management when developers were separated geographically from the bug reporter.– It is easy to ignore bugs– It is easy to reassign bugs to another developer to reduce the

number of bugs on one’s own plate– It is easy to claim an issue is not a bug

• This is a situation where the goal is not to reduce the amount of required interaction, but to manage it more effectively. Management should be made aware of these sorts of social problems when they occur on their software development teams!

Page 15: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

Halverson, et. al. (IBM Research)

The novel solution presented was better visualization of change management data.

When a bug is deep orange, it is open and assigned. Look how many times bug 1 has been opened and reassigned! This is something management can easily see when looking at a bug database. Problem bug and problem developers can be identified.

This applies to geographically separated teamseven more because problem bugs happen moreoften when developers don’t know each other.

Page 16: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

Halverson, et. al. (IBM Research)• Bugs have priority values but also have a “heat” value that is

based on age of the bug as well as other factors• Easy to spot bugs which are standouts due to high “heat”

value.

Page 17: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

Leveraging Integration in our Ideal Software Development Environment• Enforcement of policies for the use of

available tools– Ex. Cannot check in a changeset that does

not fix a bug, if the time until release of the product is near

– Ex. Cannot check in a changeset without running static analysis tools on the code

• Can also use the version control system and change management system together as a source of data to be mined

Page 18: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

Querying the Database• Cubranic, et al. U. of B.C., CSCW 2004• “Hipikat” is a tool for querying work item tracking, version

control, and source code indices for a string• Hipikat returns nuggets of information, such as a previous

change request, or a piece of source code with comments that match the string. Each nugget has a confidence value

• Hipikat understands the inheritance structure of classes used in an object-oriented program, and uses this information to aid in its suggestions

Page 19: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

Querying the Database• Cubranic et al. believed that

questions could be answered by project history, as represented by this database– With similar effectiveness to asking

a colleague for help– This strategy reduces required

interaction between developers, and especially helps with geographically separated sites, where the cost of contacting another developer is high

Page 20: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

Querying the Database

• Two groups of people were asked to add functionality to Java breakpoint tooltips in the Eclipse debugger.– Group 1: Had Hipikat. Experienced

programmers who had never worked on Eclipse.

– Group 2: Did not have Hipikat. Experienced Eclipse programmers that had never worked on tooltips

Page 21: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

Querying the Database• The experimental results?

– Both groups did fairly well.– The non-Eclipse programmers did a little

better. Why? Because Hipikat provided them with an inheritance picture that showed how a parent class was also involved in the correctness of the solution.

• So, integration and use of past knowledge helps– Can reduce the number of times one has to

ask for help, especially for new developers to a team

– In some cases, can even go beyond what one would get by asking a friend, as in the example where Hipikat helped developers to understand the superclass’ involvement.

Breakpoint

is-a

JavaBreakpoint

Page 22: Collaborative Software Engineering Especially in Disparate Geographical Environments Philip Kelley.

Conclusions

• Geographically separated software development– Is the future– Is already here

• Many problems arise with geographically separated software development– Only some can be easily addressed by collaborative tools in an

ideal software development environment– Two main strategies for tackling the problems:

• Reduce the amount of interaction between developers• Better manage the interaction between developers

• In any case we are only reducing software development headaches by a constant factor– No silver bullet (Brooks)