HCI Bibliography Home | HCI Conferences | CHASE Archive | Detailed Records | RefWorks | EndNote | Hide Abstracts
CHASE Tables of Contents: 0809101112131415

Proceedings of the 2010 International Workshop on Cooperative and Human Aspects of Software Engineering

Fullname:Proceedings of the 3rd International Workshop on Cooperative and Human Aspects of Software Engineering: ICSE'10 32nd International Conference on Software Engineering
Editors:Yvonne Dittrich; Cleidson de Souza; Mikko Korpela; Helen Sharp; Janice Singer; Heike Winshiers-Theophilus
Location:Cape Town, South Africa
Standard No:ISBN: 1-60558-966-7, 978-1-60558-966-4; ACM DL: Table of Contents hcibib: CHASE10
Links:Workshop Home Page | Conference Home Page
Software engineering in developing communities BIBAFull-Text 1-4
  Edwin Blake
This paper reflects on our work in deriving targeted methodologies to develop IT applications and content in a developing world environment. This paper argues that a common thread over more than a decade of experience in building Information and Communication Technology systems has been a community centred approach. We relate this to the African philosophy of ubuntu. These approaches are wrapped into an iterative Action Research paradigm to include the communities of users directly.
Balancing acts: walking the Agile tightrope BIBAFull-Text 5-12
  Rashina Hoda; James Noble; Stuart Marshall
Self-organizing teams are one of the critical success factors on Agile projects -- and yet, little is known about the self-organizing nature of Agile teams and the challenges they face in industrial practice. Based on a Grounded Theory study of 40 Agile practitioners across 16 software development organizations in New Zealand and India, we describe how self-organizing Agile teams perform balancing acts between (a) freedom and responsibility (b) cross-functionality and specialization, and (c) continuous learning and iteration pressure, in an effort to maintain their self-organizing nature. We discuss the relationship between these three balancing acts and the fundamental conditions of self-organizing teams -- autonomy, cross-fertilization, and self-transcendence.
Test-driven roles for pair programming BIBAFull-Text 13-20
  Max Goldman; Robert C. Miller
The driver/navigator model of pair programming needs to be revised. We propose a model of programming in pairs where roles are based on test-driven development. Each programmer uses a different view of a shared development environment. One member of the pair writes tests, while the other implements the system. The programmers can cooperate as needed and move between different collaboration modalities. As part of a user-centered design process, we built a prototype web-based collaborative development environment for test-driven pair programming and ran a user study with professional software developers to evaluate the idea and identify research challenges. We used existing vocabularies and developed two novel visualizations to analyze the data, and found that the approach is feasible.
Shared visual attention in collaborative programming: a descriptive analysis BIBAFull-Text 21-24
  Sami Pietinen; Roman Bednarik; Markku Tukiainen
This paper reports on the initial results of an eye-tracking research of collaborative program development, more particularly, in the case of pair programming. An eight-weeks long empirical study was conducted in industrial-like settings. The study focuses on investigating the interplay between pair-programming productivity and recorded developers' eye movements. We also evaluate a previously developed collaborative eye-tracking framework, which is capable of tracking two participants simultaneously, and we discuss the issues related to it. We present a descriptive analysis of shared visual attention during pair programming by combining data from eye-tracking and verbal protocols, and propose new eye tracking metrics. Finally, we outline the implications of the findings.
Scrum to support mobile application development projects in a just-in-time learning context BIBAFull-Text 25-31
  Christelle Scharff; Ravi Verma
Developing mobile applications is a challenging endeavor where technology and creativity are essential. Agile methodologies seem to be particularly adapted to the development of mobile applications; mobile applications have a limited scope and user interaction and time to market are particularly important. In this paper, we describe a study that evaluates the use of Scrum for software success in mobile application development. We defined an innovative model of working with Scrum in a class setting at Pace University involving a professional Scrum Master of the New York software industry and a real product owner. The mobile application that was developed targeted the growing mobile market in Africa. We explored the overall experience, adoption of Scrum and difficulties encountered by teams using Scrum for the first time. The paper reports on our findings and summarizes guidelines for instructors interested in replicating our work.
Ad-hoc leadership in agile software development environments BIBAFull-Text 32-38
  Yael Dubinsky; Orit Hazzan
Leadership is the ability to influence people, leading them to behave in a certain way in order to achieve the group's goals. Leadership is independent of job titles and descriptions. Usually, however, in order to lead, leaders need the power derived from their organizational positions. There are different leadership styles, like task-oriented versus people-oriented, directive versus permissive, autocrat versus democrat. In this paper, we examine the leadership concept in software development environments and focus on leadership in transition processes to agile software development. Specifically, based on our comprehensive research on agile software development, we suggest a leadership style -- ad-hoc leadership -- that usually emerges in such change processes. We present the characteristics, dynamic and uniqueness of this leadership style and illustrate its usefulness for the analysis of representative scenarios.
CASI: preventing indirect conflicts through a live visualization BIBAFull-Text 39-46
  Francisco Servant; James A. Jones; André van der Hoek
Software development is a collaborative activity that may lead to conflicts when changes are performed in parallel by several developers. Direct conflicts arise when multiple developers make changes in the same source code entity, and indirect conflicts are produced when multiple developers make changes to source code entities that depend on each other. Previous approaches of code analysis either cannot predict all kinds of indirect conflicts, since they can be caused by syntactic or semantic changes, or they produce so much information as to make them virtually useless. Workspace awareness techniques have been proposed to enhance software configuration management systems by providing developers with information about the activity that is being performed by other developers. Most workspace awareness tools detect direct conflicts while only some of them warn about potential indirect conflicts. We propose a new approach to the problem of indirect conflicts. Our tool CASI informs developers of the changes that are taking place in a software project and the source code entities influenced by them. We visualize this influence together with directionality and severity information to help developers decide whether a concrete situation represents an indirect conflict. We introduce our approach, explain its implementation, discuss its behavior on an example, and lay out several steps that we will be taking to improve it in the future.
Social software in global software development BIBAFull-Text 47
  Rosalba Giuffrida; Yvonne Dittrich
Social software (SoSo) is defined by Farkas as tools that (1) allow people to communicate, collaborate, and build community online (2) can be syndicated, shared, reused or remixed and (3) let people learn easily from and capitalize on the behavior and knowledge of others. [1]. SoSo include a wide variety of tools such as: instant messaging, internet forums, mailing lists, blogs, wikis, social network sites, social bookmarking, social libraries, virtual worlds. Though normally rather belonging to the private realm, the use of social software in corporate context has been reported, e.g. as a way to share knowledge [2, 3].
Saros: an eclipse plug-in for distributed party programming BIBAFull-Text 48-55
  Stephan Salinger; Christopher Oezbek; Karl Beecher; Julia Schenk
This paper describes the social practice of distributed party programming as a natural extension of pair programming in a distributed context with two or more software developers working together. To this end we provide an overview of the Eclipse plug-in Saros, a software implementation supporting this practice, and explain its technical architecture. The central contribution of this paper is a detailed description of four concrete scenarios of distributed collaboration where one of them is distributed party programming. Furthermore it will be shown how each scenario is supported by Saros. The paper closes with a discussion of preliminary findings about establishing Saros in Open Source projects.
Towards real-time integration BIBAFull-Text 56-63
  Mário Luís Guimarães; António Rito-Silva
Today, most developers work in parallel inside private workspaces to ensure stability during programming, but this provokes isolation from what co-workers are doing. Isolation may result in conflicts, which must be detected as early as possible to avoid bugs and expensive rework. Currently, frequent integration and awareness are used for early conflict detection. Frequent integration detects actual conflicts using automated builds, although only when merging checked in changes. Awareness informs about ongoing changes in private workspaces, however developers must find actual conflicts by themselves.
   This paper proposes the novel concept of real-time integration. This automates the detection of actual conflicts emerging during programming, involving checked in and ongoing changes, and affecting two or more developers. Cooperative resolution of conflicts is explicitly supported by sharing fine-grained changes among private workspaces. Software versions will also improve quality as integration builds are run before checking in.
Questions about object structure during coding activities BIBAFull-Text 64-71
  Marwan Abi-Antoun; Nariman Ammar; Thomas LaToza
Recent tools have been designed to help developers understand the potential runtime structure of objects in a system at compile time. Such tools let developers interactively explore diagrams of object structure. But do developers ask questions about object structure? If so, when?
   We conducted a small pilot study of developers working on coding tasks designed to require thinking about relationships between objects. Developers did indeed ask a number of questions about various types of relationships such as containment, ownership, object identities and aliasing. Finally, some of our results revealed usability challenges tools should address to more effectively answer these questions.
On the importance of understanding the strategies that developers use BIBAFull-Text 72-75
  Thomas D. LaToza; Brad A. Myers
Understanding the strategies that developers use during coding activities is an important way to identify challenges developers face and the corresponding opportunities for tools, languages, or processes to better address the challenges and more effectively support the strategies. After creating a design, evaluation studies often measure task success, time, and bugs to argue that the design improves programmer productivity. Considering the strategies that developers use while conducting these studies increases the likelihood of a successful test and makes the results easier to generalize. Therefore, we believe that identifying strategies developers use is an important goal. Beyond identifying strategies, there are also research opportunities in better understanding how developers choose strategies.
Toward proactive knowledge protection in community-based software development BIBAFull-Text 76-83
  Xin Zhou; Ying Liu
Leveraging the abundant community resources, e.g. campus students, programming fans, software amateurs, is promising to be a flexible and effective approach for relieving the enterprise's IT resource shortage. However, the concern about confidential knowledge exposure makes most enterprises hesitate to outsource software development to community resources. Unlike the traditional legal protection mechanism that prevents community resources from exposing the already known confidential knowledge, this paper presents a proactive confidential knowledge protection technology, which prevents the community resources from learning the confidential knowledge in software development activities. First, the client is facilitated on identifying confidential knowledge involved in the software development activity. Then, the risky software design elements that might expose confidential knowledge are identified in both qualitative and quantitative way. Based on the identification result, a holistic proactive protection solution is presented by orchestrating task reservation, task pretending and task partition activities. Finally, the processed software development tasks are dispatched to community developers without worrying about the confidential knowledge exposure. The technology has been preliminarily validated in two community-based software development cases.
Designing motivation strategies for software engineering teams: an empirical study BIBAFull-Text 84-91
  A. César C. França; Fabio Q. B. da Silva
Background. Even though the amount of researches related to the behavior of software development teams has significantly increased in recent years, researches focusing on motivation as an alternative to lead software projects to success are still rare.
   Objective/Method: This article describes a survey conducted to identify the relative importance of some factors that affect the motivation of software engineers at work. The conceptual underpinnings of human motivation used in the research are the Expectancy Theory and the Motivation-Hygiene Theory.
   Results/Conclusion: In the study, a cross-sectional survey was conducted involving 176 software engineers employed at 20 software firms from the State of Pernambuco, Brazil. Data collected with the survey revealed not only the order in which the set of motivators influences the software engineers' motivation and other peripheral findings, but also served as a basis to design three motivation strategies for software engineering teams.
Exploring the human and organizational aspects of software cost estimation BIBAFull-Text 92-95
  Ana Magazinius; Robert Feldt
Cost estimation is important for planning, scheduling, budgeting and pricing of software development. Previous research has mainly focused on improving estimates and the associated processes. However, there is still a lack of research on human and organizational aspects of cost estimation and informal uses of cost estimates. This paper presents initial findings from a qualitative study addressing these questions. Based on four semi-structured interviews with experienced managers from different software developing organizations we have identified a number of aspects not commonly discussed in the cost estimation literature. The analysis indicates that cost estimates are used not only for prediction and planning, but also play a role in power plays within the organizations based on the stakeholders' differing interests. There are also human and organizational factors that are likely to influence the quality of estimates.
   We also suggest a basic taxonomy of attributes that could be used to structure the many issues involved in and affecting software cost estimation. We conclude that there are many factors that affect software cost estimation and need to be considered in future research. Longer-term this is important not only for cost estimation but can also be useful to understand how human and organizational factors affect software development processes in general.
Exploring software engineering practices in small and medium-sized organizations BIBAFull-Text 96-101
  Sami Jantunen
Small organizations have been claimed to manage their requirements in ways that bear no relation to what the textbooks say, and what is taught in undergraduate courses. This paper explores software engineering (SE) practices in five small and medium-sized organizations in order to gain a deeper understanding on how cooperative and human aspects of the SE-related practices differ in small organizations compared to the larger ones. The paper illustrates, in detail, the central role of human collaboration in small organizations and the challenges an organization meets when it begins to grow and lose opportunities for face-to-face collaboration. The findings of this study suggest that studies on using social media are a valuable addition to software engineering research agenda.
Studying human and social aspects of testing in a service-based software company: case study BIBAFull-Text 102-108
  Hina Shah; Mary Jean Harrold
This paper presents a case study that reports the findings of a preliminary ethnographic study (35 days of fieldwork over a period of two months) conducted at a service-based software company. The focus of the study was on understanding the human-dimension and social aspects involved in software testing. In this paper, we present the design of the study, our observations, and the analysis of the findings. We also discuss the differences between the senior and junior participants' attitudes towards testing, how the seniors' attitudes influence the juniors' attitudes, and reasons that seem to motivate juniors to work on testing projects. Additionally, we report our findings about the relationship between enthusiasm and responsibility with ownership, the relationship between the developer and test engineer, the communication gaps faced by test engineers in various situations, and how hierarchical structuring in an organization may influence enthusiasm of the test engineers.
Supporting enterprise stakeholders in software projects BIBAFull-Text 109-112
  Clay Williams; Patrick Wagstrom; Kate Ehrlich; Dick Gabriel; Tim Klinger; Jacquelyn Martino; Peri Tarr
Today, large enterprises create a significant body of commercially available software. As a result, the key stakeholders include not only those typically responsible for software development, but also stakeholders not typically involved in software engineering discussions. Current software development approaches ignore or poorly manage these enterprise level concerns. This hampers the ability to create connections among the stakeholders responsible for enterprise wide issues, the development team, and the artifacts with which they are concerned. In this paper we identify a set of propositions for coordination in enterprise software engineering environments and describe a preliminary framework to support such interactions.