[ieee 2012 international conference on advances in social networks analysis and mining (asonam 2012)...

2
Towards Social Version Control Ali Koc, M.A. Research & Development Red Equation Corp. New York, NY Abdullah Uz Tansel*, PhD Department of Industrial Engineering Bahcesehir University Istanbul, Turkey Mehmet Bicer, M.S. Computer Science Graduate Center, CUNY New York, NY Abstract—Version control systems are an integral part of software development process since their first use in 1970s. And since then, they have been improved with many features and easy-to-use user interfaces. In this paper, we propose a new feature to be implemented into commonly used version control systems, such as CVS and SubVersion. This feature promotes real time collaboration, opening the door towards a social interaction among development team members. This interaction allows software developers to communicate more effectively through an internal social networking site within the context of the version control environment. The new feature demonstrates that it can be effectively utilized to avoid conflicts, which is one of the major challenges not only in version control, but in any collaborative system. Keywords-component; version control; social networking; collaboration; SubVersion; conflict avoidance I. INTRODUCTION Version control is the management of evolution of data (simple or complex) supporting multiple concurrent users. These systems have been in use since 1970s by software development teams, engineers and scientists. Today version control is more than just a database of change sets, but an integral component of collaborative software systems. In recent years, we see version control features incorporated into everyday software applications such as word processors and spreadsheets, putting it within the reach of casual end users [1]. Another important development that has found its way into our everyday lives is social networking. Being social is not new to humans, however, with the growth of Internet and the explosive number of connected people to the World Wide Web, opened the gates for social networking web sites and services [2]. Today these sites are commonly utilized not only by individuals but also businesses that promote their products and services on social networking sites. These sites are also utilized to communicate or keep in touch with consumers. We propose the utilization of social networking concepts for medium to large software development teams. These teams commonly collaborate via version control systems. Our focus is analyzing the current version control systems and their structure, proposing enhancements and providing a road map towards social networking services for software development teams. II. VERSION CONTROL SYSTEMS The data, its versions, and all the information associated with each version are stored in a location called repository. An atomic data unit is the smallest portion unit of data where any change to a part of this data would constitute the whole unit to be marked as changed. In all version control systems, the first step is to get the data from the repository. The retrieval of data from the repository with possibly the intent of changing it is called checkout. The retrieved data set is called the local/work copy. On the checked out local copy, user works and makes changes. When the work is completed, the new modified data set needs to be sent to the repository for storage. The action of sending the changed data set to the repository is called commit. Often times, user may want to update the local working copy from the repository as there may have been possible commits since the last checkout. If the update contains changes that would conflict with the local changes, local copy goes into conflict state. The changes on the local copy needs to be reviewed and should be marked as resolved after complying with the changes of the repository. III. SOCIAL NETWORKING AT WORKPLACE It is known that the benefits of forming closer networking ties among employees enhances productivity and innovation [3]. With the popularity of social networking sites, mounting investment has been made in research and development of social networking technologies. The popularity among casual users is still on the rise. We now also see social networking sites targeted specifically towards professionals. The success of these social networking sites among professionals brings up the possibility of using these technologies in the internal organizational processes. Unfortunately, the research efforts on social networking sites mostly focus on privacy, self-presentation, network analysis, and social capital benefits [4]. Little effort has been put into the possible uses of social networking sites by companies targeted towards their professionals. BEEHIVE, an internal social networking site for the employees of IBM, was launched in 2007 [4]. The goal of the project is to understand how professionals inside a company use an internal social networking site and what value they will derive from it. One year after its launch, the site was serving over 30,000 employees. The findings of the study [4] shows that employees not only kept in touch with those they already * On leave from Baruch College, CUNY 2012 IEEE/ACM International Conference on Advances in Social Networks Analysis and Mining 978-0-7695-4799-2/12 $26.00 © 2012 IEEE DOI 10.1109/ASONAM.2012.129 748 2012 IEEE/ACM International Conference on Advances in Social Networks Analysis and Mining 978-0-7695-4799-2/12 $26.00 © 2012 IEEE DOI 10.1109/ASONAM.2012.129 722

Upload: m

Post on 13-Dec-2016

215 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: [IEEE 2012 International Conference on Advances in Social Networks Analysis and Mining (ASONAM 2012) - Istanbul (2012.08.26-2012.08.29)] 2012 IEEE/ACM International Conference on Advances

Towards Social Version Control

Ali Koc, M.A. Research & Development

Red Equation Corp. New York, NY

Abdullah Uz Tansel*, PhD Department of Industrial Engineering

Bahcesehir University Istanbul, Turkey

Mehmet Bicer, M.S. Computer Science

Graduate Center, CUNY New York, NY

Abstract—Version control systems are an integral part of software development process since their first use in 1970s. And since then, they have been improved with many features and easy-to-use user interfaces. In this paper, we propose a new feature to be implemented into commonly used version control systems, such as CVS and SubVersion. This feature promotes real time collaboration, opening the door towards a social interaction among development team members. This interaction allows software developers to communicate more effectively through an internal social networking site within the context of the version control environment. The new feature demonstrates that it can be effectively utilized to avoid conflicts, which is one of the major challenges not only in version control, but in any collaborative system.

Keywords-component; version control; social networking; collaboration; SubVersion; conflict avoidance

I. INTRODUCTION Version control is the management of evolution of data

(simple or complex) supporting multiple concurrent users. These systems have been in use since 1970s by software development teams, engineers and scientists. Today version control is more than just a database of change sets, but an integral component of collaborative software systems. In recent years, we see version control features incorporated into everyday software applications such as word processors and spreadsheets, putting it within the reach of casual end users [1].

Another important development that has found its way into our everyday lives is social networking. Being social is not new to humans, however, with the growth of Internet and the explosive number of connected people to the World Wide Web, opened the gates for social networking web sites and services [2]. Today these sites are commonly utilized not only by individuals but also businesses that promote their products and services on social networking sites. These sites are also utilized to communicate or keep in touch with consumers.

We propose the utilization of social networking concepts for medium to large software development teams. These teams commonly collaborate via version control systems. Our focus is analyzing the current version control systems and their structure, proposing enhancements and providing a road map towards social networking services for software development teams.

II. VERSION CONTROL SYSTEMS The data, its versions, and all the information associated

with each version are stored in a location called repository. An atomic data unit is the smallest portion unit of data where any change to a part of this data would constitute the whole unit to be marked as changed.

In all version control systems, the first step is to get the data from the repository. The retrieval of data from the repository with possibly the intent of changing it is called checkout. The retrieved data set is called the local/work copy.

On the checked out local copy, user works and makes changes. When the work is completed, the new modified data set needs to be sent to the repository for storage. The action of sending the changed data set to the repository is called commit.

Often times, user may want to update the local working copy from the repository as there may have been possible commits since the last checkout. If the update contains changes that would conflict with the local changes, local copy goes into conflict state. The changes on the local copy needs to be reviewed and should be marked as resolved after complying with the changes of the repository.

III. SOCIAL NETWORKING AT WORKPLACE It is known that the benefits of forming closer networking

ties among employees enhances productivity and innovation [3]. With the popularity of social networking sites, mounting investment has been made in research and development of social networking technologies. The popularity among casual users is still on the rise. We now also see social networking sites targeted specifically towards professionals. The success of these social networking sites among professionals brings up the possibility of using these technologies in the internal organizational processes.

Unfortunately, the research efforts on social networking sites mostly focus on privacy, self-presentation, network analysis, and social capital benefits [4]. Little effort has been put into the possible uses of social networking sites by companies targeted towards their professionals.

BEEHIVE, an internal social networking site for the employees of IBM, was launched in 2007 [4]. The goal of the project is to understand how professionals inside a company use an internal social networking site and what value they will derive from it. One year after its launch, the site was serving over 30,000 employees. The findings of the study [4] shows that employees not only kept in touch with those they already

* On leave from Baruch College, CUNY

2012 IEEE/ACM International Conference on Advances in Social Networks Analysis and Mining

978-0-7695-4799-2/12 $26.00 © 2012 IEEE

DOI 10.1109/ASONAM.2012.129

748

2012 IEEE/ACM International Conference on Advances in Social Networks Analysis and Mining

978-0-7695-4799-2/12 $26.00 © 2012 IEEE

DOI 10.1109/ASONAM.2012.129

722

Page 2: [IEEE 2012 International Conference on Advances in Social Networks Analysis and Mining (ASONAM 2012) - Istanbul (2012.08.26-2012.08.29)] 2012 IEEE/ACM International Conference on Advances

know, but they also reached out and met new people. The system was commonly used to connect on personal level, but also for championing a project idea [4].

For growing number of employees (the next generation), the preferred method of communication is social networking sites. In order to bridge the gap with organizational communication methods, today’s organizations should be prepared to introduce internal social networking sites.

IV. PEEK – TOWARDS REAL TIME COLLABORATION Conflict is a challenge in any concurrent collaborative

system, and version control systems are no exception. Conflicts occur when two or more users modify the same section of the version controlled data and try to commit their changes to the central repository.

Conflict Detection occurs at the repository level -- in the case of version control systems based on client/server architecture, that would be the central server. Once detected, Conflict Resolution must occur on the local work copy of the user before a successful commit can be performed. Unfortunately, conflict resolution may be a complex process. The changes on a particular line of code are often as part of a larger change to the overall repository.

While version control systems come with well-developed tools to detect and resolve conflicts, it still requires direct communication among involved developers to carry out the resolution process. Incorporating certain collaborative features into version control system can alleviate the complexity of the resolution.

We adopt a new proactive approach in dealing with conflicts by encouraging communication among developers through an internal social networking site. This site is used as a hangout place for developers, where they can network with those who are within their team or other team members within the organization.

We propose adding a new feature to current version control systems. Normally, the work of a developer is realized by a server upon commit. While it is recommended that developers commit their work daily, it is possible that larger changes that do not constitute a new branch may take longer time. In order to promote communication, we need a way of knowing which developer is working on what even before they commit their changes to the repository.

We propose a new command for version control systems, named peek. The peek command allows other users to take a peek at the changes made on a user’s local work copies. Peek information would be published through the social networking site, allowing all developers to be aware of what others are working on in real time. By forming a real time collaboration bridge among users beyond the borders of the central repository, possible conflicts can be identified and hence avoided while the work is still in progress on user’s local work copies.

We implemented peek feature into one of the most widely used version control systems, Subversion. A special section in

the Subversion repository allocated for the snapshots of users’ local changes. While the development of the social networking site is underway, we made peek feature available through TortoiseSVN -- a Subversion client deeply integrated into Windows shell. TortoiseSVN monitors local work copies and provides an integrated user interface for its management. With the new peek feature, TortoiseSVN feeds local changes of the user to the central repository in real time.

With the integration of peek to the internal social networking site, developers will be aware of the changes others are working on in real time. The site will also act as a platform to discuss these changes in an open manner, allowing the development team to employ the inherit benefits of a social networking site.

V. CONCLUSION In this paper we explored the utilization of an internal social

networking site and discussed its potential benefits to software development companies, in particular through the perspective of conflict avoidance.

In an informal development setting of 5 developers, we made an attempt to use peek feature without a social networking site. In this setting, developers are able to use peek feature through TortoiseSVN. However, we observed that users were reluctant to actually employ peek feature in absence of a social networking site. In order to make use of the feature, developers need to explicitly request looking into other developer’s working copy. That means a developer 1- has to know who are currently working on the same part of the development project; and 2- has to periodically monitor those people. This experience confirmed the necessity of a social networking front end in peek features success.

Our goal is to develop a basic social networking site integrated with SubVersion version control system. The system is to be tested in a small development environment. We are initially interested in reducing the number of conflicts. We will then look into collaborative benefits of this system.

Integrating social networking services into software development processes in the context of version control systems opens up new avenues of research. Our focus has been so far on internal social networks. For open source projects, however, public social networks may be the preferred choice.

REFERENCES

[1] A. Koc and A. Tansel, “A Survey of Version Control Systems,” in ICEME 2011, 2011.

[2] A. C. Weaver and B. B. Morrison, “Social Networking,” Computer, vol. 41, pp. 97-100, 2008.

[3] D. Cohen and L. Prusak, In good company: how social capital makes organizations work. Harvard Business School Press, 2001.

[4] J. DiMicco, D. Millen, W. Geyer, and C. Dugan, “Motivations for social networking at work,” cooperative work, pp. 711-720, 2008.

749723