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

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

Fullname:Proceedings of the 1st International Workshop on Cooperative and Human Aspects of Software Engineering
Location:Leipzig, Germany
Standard No:ISBN: 1-4244-3712-1, 978-1-4244-3712-2; ACM DL: Table of Contents hcibib: CHASE08
Links:Workshop Home Page | Conference Home Page
Continuous coordination within the context of cooperative and human aspects of software engineering BIBAFull-Text 1-4
  Ban Al-Ani; Erik Trainer; Roger Ripley; Anita Sarma; André van der Hoek; David Redmiles
We have developed software tools that aim to support the cooperative software engineering tasks and promote an awareness of social dependencies that is essential to successful coordination. The tools share common characteristics that can be traced back to the principles of the Continuous Coordination (CC) paradigm. However, the development of each sprung from carrying out a different set of activities during its development process. In this paper, we outline the principles of the CC paradigm, the tools that implement these principles and focus on the social aspects of software engineering. Finally, we discuss the socio-technical and human-centered processes we adopted to develop these tools. Our conclusion is that the cooperative dimension of our tools represents the cooperation between researchers, subjects, and field sites. Our conclusion suggests that the development processes adopted to develop like-tools need to reflect this cooperative dimension.
Examining life at the code face BIBAFull-Text 5-8
  Gabriela Avram; Liam J. Bannon; Anne Sheehan; Anders Sigfridsson; Daniel K. Sullivan
In this paper, we present the work of a research team at the University of Limerick, Ireland, focusing on work practices in a distributed software development environment. Adopting ethnographically-informed methods, the researchers have observed the activity of a software development team from an Irish subsidiary of a multinational company over a period of 18 months. The paper presents our perspective on the existing literature, the theoretical foundations of our work, and the approach we have taken. This research work is ongoing and in this paper we provide a selection of vignettes which the authors found of interest for a deeper analysis. Our aim is to understand the impact of the global distribution of software development on collaborative work practices in this particular work setting.
Sharing usability information in interactive system development BIBAFull-Text 9-12
  Paula M. Bach; Jiang Hao; John M. Carroll
In this paper we report on a preliminary study of usability information sharing in interactive system development. The study was conducted at a large technology company in the United States. The purpose of the study was to understand the usability information sharing practices of various members of multidisciplinary interactive system development teams. We found that the different job roles, specifically, usability expert, developer, and project manager share usability information in many ways.
Scrum down: a software engineer and a sociologist explore the implementation of an agile method BIBAFull-Text 13-16
  Christopher D. Bates; Simeon Yates
This paper provides an overview and position statement on the work undertaken as part of a project to explore the implementation of Scrum in the context of an interactive digital media software development company. The project is being undertaken in the Communication and Computing Research Centre at Sheffield Hallam University.
Effecting change: coordination in large-scale software development BIBAFull-Text 17-20
  Andrew Begel
Large-scale software development requires coordination within and between very large engineering teams, each of which may be located in different locations and time zones. Numerous studies, and indeed, a whole conference (ICGSE), are dedicated to discovering the causes of problems with distributed development in the software industry. Microsoft has long had product teams too large to be considered co-located, even when sitting in neighboring buildings on the same campus. Recently, it has been expanding its engineering workforce into India and China, and our research is showing that Microsoft is encountering many of the coordination problems that go along with differences of location, time zone, and culture. As we go forward, our research has been changing from learning about the problem to experimenting with solutions. What are the best practices for improving coordination? Can they be applied to all software teams? How does one move past simple readings of research results towards effective intervention?
Articulation work in small-scale offshore software development projects BIBAFull-Text 21-24
  Alexander Boden; Bernhard Nett; Volker Wulf
The paper describes coordination practices of small and medium enterprises (SME) that outsourced parts of their software development to offshore vendors. Our case study in a German company shows that the geographic distribution of knowledge and expertise requires continuous informal coordination across the teams. Such practices can be described as a combination of formal coordination and informal articulation work in the sense of Anselm Strauss' theoretical framework. Both are closely interwoven and connected to the use of media such as coordination tools and instant messengers. We conclude that SME risk losing their core competencies when neglecting articulation work and hint at mismatches between scientific recommendations and actual development practices of SME.
Communication patterns in geographically distributed software development and engineers' contributions to the development effort BIBAFull-Text 25-28
  Marcelo Cataldo; James D. Herbsleb
This study seeks to shed light on how communication patterns in geographically distributed software development (GDSD) projects evolve over time and how they relate to developers' contributions to the development effort. Data from two GDSD projects from two distinct companies were collected. The analysis showed that the definition of formal roles had an important impact on patterns of communication across development locations. In one project a group of developers emerged over time as the liaisons between geographical locations. In addition to handling the communication and coordination load across locations, those same engineers contributed the most to the development effort. On the other hand, in the second project, communication across site was formalized and the developers involved in the cross site communication and coordination activities were not as productive.
Creating a cognitive metric of programming task difficulty BIBAFull-Text 29-32
  Brian de Alwis; Gail C. Murphy; Shawn Minto
Conducting controlled experiments about programming activities often requires the use of multiple tasks of similar difficulty. In previously reported work about a controlled experiment investigating software exploration tools, we tried to select two change tasks of equivalent difficulty to be performed on a medium-sized code base. Despite careful effort in the selection and confirmation from our pilot subjects finding the two tasks to be of equivalent difficulty, the data from the experiment suggest the subjects found one of the tasks more difficult than the other.
   In this paper, we report on early work to create a metric to estimate the cognitive difficulty for a software change task. Such a metric would help in comparing between studies of different tools, and in designing future studies. Our particular approach uses a graph-theoretic statistic to measure the complexity of the task solution by the connectedness of the solution elements. The metric predicts the perceived difficulty for the tasks of our experiment, but fails to predict the perceived difficulty for other tasks to a small program. We discuss these differences and suggest future approaches.
Del.icio.us development tools BIBAFull-Text 33-36
  Robert DeLine
Developers need better knowledge tools to answer their information needs, rather than continuing to rely so heavily on communication with coworkers. Web sites, like the social bookmarking site Del.icio.us, might provide a way forward. They are designed to provide each user an individual incentive for entering data, but provide even more value by combining data from different users into collective knowledge. Several research projects hint that designing knowledge tools for developers using this principle would be more cost effective and provide better incentive structures for capturing knowledge.
Practices around customization of standard systems BIBAFull-Text 37-40
  Yvonne Dittrich; Sebastien Vaucouleur
More and more software systems are developed by customizing a standard product that provide the major part of the functionality. The customization of Enterprise Resource Planning systems is such a product based software development practice. Little empirical research on the specificities of these software development practices is available. We present an empirical study on customization practices based on video recordings, interviews and a survey. The observed and reported practices challenge some of the principles of software engineering. Based on the analysis, we discuss the specificity of this kind of development, the role of communities of practice, and the resulting challenges for the field of software engineering.
Collaborative process management and virtual teams BIBAFull-Text 41-43
  Hilko Donker; Malte Blumberg
This position paper describes the requirements for facing essential problems of virtual teams. Further, the current deficits of project management tools and collaborative tools are focused. We will describe our opinions on how to solve these problems.
   In general, we see an essential necessity in creating a symbiosis between project management tools and collaborative tools, as these two areas are both crucial for virtual project management. Currently, the lack of connection between them significantly decreases the quality of virtual work. Our ideas show new ways of managing virtual work in order to increase the effectiveness of virtual teams and help companies to get their work done over the distance of time and space.
Fostering user-developer collaboration with infrastructure probes BIBAFull-Text 44-48
  Christian Dörner; Jan Heß; Volkmar Pipek
In this paper we present a new variation of cultural probes, called Infrastructure Probes (IP). IPs can be seen as an additional ethnographic method to get a deeper understanding of the user's working context and thus help to improve the collaboration between users and developers regarding requirements elicitation. They consist of a screenshot tool, a digital camera, Post-it's, forms, an IT diary and a writing pad, allowing end users to observe and document their use of the IT infrastructure in question with special emphasis on problematic situations. The results of a first evaluation of the concept show that IPs could supplement traditional ethnographic methods to give researchers as well as software engineers a deeper insight into the working habits of users, but could also be a means for users to document and exchange technology usages. For a reflection of the IP concept we conducted feedback workshops together with the participants of the evaluation. The feedback resulted in an improved version which is currently already under evaluation.
Towards individualized software engineering: empirical studies should collect psychometrics BIBAFull-Text 49-52
  Robert Feldt; Richard Torkar; Lefteris Angelis; Maria Samuelsson
Even though software is developed by humans, research in software engineering primarily focuses on the technologies, methods and processes they use while disregarding the importance of the humans themselves. In this paper we argue that most studies in software engineering should give much more weight to human factors. In particular empirical software engineering studies involving human developers should always consider collecting psychometric data on the humans involved. We focus on personality as one important psychometric factor and present initial results from an empirical study investigating correlations between personality and attitudes to software engineering processes and tools. We discuss what are currently hindering a more wide-spread use of psychometrics and how overcoming these hurdles could lead to a more individualized software engineering.
Benefits of interactive display environments in the software development process BIBAFull-Text 53-56
  Mathias Frisch; Raimund Dachselt
Models become increasingly important for software development processes. Though there is a multitude of software modeling tools available, the handling of diagrams is still difficult. To overcome these problems we propose the usage of novel visualization and interaction techniques for the software development process, including multi-touch displays, the integration of diagrams drawn by hand and the interaction through zoomable user interfaces.
Team: towards a software engineering semantic web BIBAFull-Text 57-60
  Hans-Jörg Happel; Walid Maalej; Ljiljana Stojanovi
Large software development projects are complex endeavours that involve numerous participants which can work across several sites and act in various roles. Each participant produces and consumes information relevant for the success of the project. In such settings, an effective and efficient allocation of knowledge is a hard challenge, especially if there is no central authority, which enforces standards for the whole ecosystem. We consider semantic technologies as an important enabler to improve information and knowledge sharing in such scenarios, by helping to exchange and interconnect software engineering knowledge across the web. In this paper, we describe the corresponding vision of a Software Engineering Semantic Web and the role of intelligent IDEs in order to benefit from and contribute to it.
Promoting developer-specific awareness BIBAFull-Text 61-64
  Reid Holmes; Robert J. Walker
Maintaining a developer's awareness of changes in the software on which she depends is challenging. Awareness is often impeded at two ends of the spectrum: a lack of information, when the changes only become apparent when a build breaks or bugs appear; or an excess of information, where the changes are announced but the majority of the changes are not relevant to the developer in her particular project and context. In the middle ground lies the possibility of support for developer-specific awareness (DSA), wherein information about the changes is filtered on the basis of the developer's own code and interests. This paper discusses how the DSA problem is manifested in software development and briefly examines the design space involved in providing DSA notifications. A particular point in the space is proposed for a target implementation, called the YooHoo awareness system, that will help developers in loose organizations to keep apprised of any code changes that are specifically relevant to the source code for which they are responsible.
Measuring OSS quality trough centrality BIBAFull-Text 65-68
  Liaquat Hossain; David Zhou
In this study, we explore whether the degree of centrality, betweenness and density of the open source software or OSS team communications network have any bearing on the quality of the software developed. We measure the quality of OSS in terms of number of defect fixed per software promotion, the number of defects reported at different severity levels and the average number of days for a defect to be fixed for each project team. The data required to conduct the analysis needs to be of OSS projects, their team structure and also contribution of the projects user community and immediate development team. We extract the communications pattern of OSS projects development teams from online forums or message boards as the developers are usually located in different geographic areas. We use SourceForge.net for collecting relevant coordination related data for this study; which is the central resource for hosting more than 100,000 open source development projects and with over 1 million registered users that participate in the development of high profile OSS projects. The outcome of this study suggests that there is a correlation between social network characteristics and strong and poor performing projects in an OSS environment.
Source-level debugging with the Whyline BIBAFull-Text 69-72
  Andrew J. Ko; Brad A. Myers
The visualizations of the Whyline are presented, which focus on supporting the exploration a source code and how it executes. The visualization is concise, simple to navigate, and mimics syntactic features of its target programming language for consistency. Two studies showed that users with the visualization completed a debugging task twice as fast as users without the visualization, partly due to features of the visualization. Applications of the visualizations to tasks other than debugging are discussed.
MimEc: intelligent user notification of faults in the eclipse IDE BIBAFull-Text 73-76
  Lucas M. Layman; Laurie A. Williams; Robert St. Amant
The earlier in the software process a fault is detected, the cheaper the cost of fixing the fault. Automated fault detection tools can provide developers with information throughout development, however, programming is a cognitively complex process and inundating the developer with information may do more harm than good. In this paper, we present MimEc, a part of the AWARE plug-in for the Eclipse integrated development environment. MimEc presents fault information to developers while they are writing code. The purpose of MimEc is to display only those faults in which a developer may be interested, thereby increasing the likelihood the developer will address the fault. MimEc infers interest in a fault based on fault criticality, relevance of the fault to the developer's current working context, and the developer's interactions with the programming environment. MimEc is currently under development and will be evaluated in both academic and professional settings.
Cooperation and coordination concerns in a distributed software development project BIBAFull-Text 77-80
  Lucas D. Panjer; Daniela Damian; Margaret-Anne Storey
Enabling effective coordination of work in large distributed software projects requires cooperation between participants across multiple teams, sites, and skill sets. To determine how practicing software engineers, in a distributed software development setting, maintain awareness of dependencies and coordinate to resolve dependencies in their work, we conducted a field study that used interviews and informal observation of a distributed software team. In this paper we present key interesting themes that emerged from the qualitative analysis: proximity, modification request authoring patterns, and uncooperative behaviours. We discuss these findings and outline future quantitative research plans to triangulate the methods used by software developers with recorded activities in engineering repositories to increase the generalizability of the research findings.
What dynamic network metrics can tell us about developer roles BIBAFull-Text 81-84
  Mathias Pohl; Stephan Diehl
Software development is heavily dependent on the participants of the process and their roles within the process. Each developer has his specific skills and interests and hence contributes to the project in a different way. While some programmers work on separate modules, others developers integrate these modules towards the final product. To identify such different groups of people one approach is to work with methods taken from social network analysis. To this end, a social network has to be defined in a suitable way, and appropriate analysis strategies have to be chosen. This paper shows how a network of software developers could be defined based on information in a software repository, and what it can possibly tell about roles of developers (and what not) in the process of the application server Tomcat.
Social aspects of a continuous inspection platform for software source code BIBAFull-Text 85-88
  Christian R. Prause; Markus Eisenhauer
Determining responsibility for a piece of source code is difficult when software is being developed collaboratively with weak code ownership. Nonetheless, a major factor for preventing "cowboy coding" and careless development of code is liability. We propose a tool for statistically acquiring per developer per document accountabilities and enable learning and self-monitoring processes within a development team while maintaining anonymity to a certain degree to not endanger team spirit.
   In this paper we want to examine possible social effects on the development team that employment of our tool has.
Reporting user experience through usability within the telecommunications industry BIBAFull-Text 89-92
  Kari Rönkkö; Jeff Winter; Mats Hellman
In some software development contexts, understanding 'who else' to report usability results to and how this must be done has a larger impact on the usability of products, in the long run, than reporting results to designers and developers in planned and ongoing software development projects. This situation is true in some parts of the telecommunication area. This is an area that constantly presents new usage possibilities arising from new 'hot' technology and competitive situations, i.e. not primarily from internally identified user needs. Understanding how use-oriented knowledge can have the greatest impact in this context is a challenge. As engineers we must be prepared to adjust our work to varied actors and environments under specific conditions to optimize our influence. In this case, how do the 'new hot technology and competitive situation focus' affect our possibilities to introduce use-oriented knowledge? Our desire to achieve highest leverage from performed usability work made us realize that we need to take advantage of existing usability test reporting as a first step in introducing more of user experience in the user-orientation.
Cooperative work in software testing BIBAFull-Text 93-96
  David Martin; John Rooksby; Mark Rouncefield; Ian Sommerville
Substantial effort in the development of any large system is invested in testing. Studies of testing tend to be either technical or concerned with the cognitive ability of testers. Our experience is that testing is not technical but socio-technical, involving a great deal of human and organisational effort, and that testing is not simply the kind of decontextualised 'puzzle solving' many cognitive approaches imply. We believe that cooperative work is foundational to getting testing done. In this position paper, we use data from four ethnographic studies to discuss just what that cooperative work is.
A sketch of the programmer's coach: making programmers more effective BIBAFull-Text 97-100
  David C. Shepherd; Gail C. Murphy
As programmers work on source code, they ask an array of questions that are difficult to answer manually. To help answer these questions, programmers often employ software tools; often in attempting to use these tools, the programmers encounter many obstacles which frustrate their efforts and lead to less than optimal tool utilization. Possibly worse, programmers often intentionally under utilize available tools as they prefer to answer questions only with tools they have used before. We hypothesize that we can coach programmers towards a more systematic use of appropriate software tools that would enable the programmers to be more productive in the completion of their work. We propose to use activity logs collected automatically to deduce the questions a given programmer asks a frequently and then to coach the programmer automatically on appropriate, possibly unfamiliar, tools to answer those questions more effectively. By using activity logs to inform coaching decisions, our approach is based on an objective cost metric. We envision an environment that enables a programmer to learn how to use appropriate tools systematically.
Towards a framework for software navigation techniques BIBAFull-Text 101-104
  Andrew Sutherland; Kevin Schneider
Making a change to a large software system requires investing time in understanding the system first. In the context of programming, navigation refers to the process of finding one's way through a complex network of programming constructs and other software artifacts. The process consists of answering questions such as "What am I looking at?" and "What do I want to look at next?", along with the question of "How do I get there?". This paper looks at the range of techniques used to aid navigation, and categorizes them using three perspectives: perceptual techniques, which use graphical representations and exploit spatial memory to aid navigation; filtering techniques, which operate by automatically reducing the amount of information provided so that the appropriate pieces of information are easy to find; and enrichment techniques, which involve augmenting the view of the software with peripheral information, so that the relative information can be more easily identified.
Cooperation between developers and operations in software engineering projects BIBAFull-Text 105-108
  Bjørnar Tessem; Jon Iden
In this paper we discuss how the cooperation between developers and operations staff is practiced. We have analyzed data collected from a focus group of experienced software engineers and project managers, as well as interviews from two case studies. Our position is that well performed cooperation between the development team and the operations team is crucial for successful deployment and operations of a new or extensively revised software system. The data shows that cooperation can be improved in several development activities like requirements engineering, system design, documentation, testing, training, and deployment planning. Likely consequences of poor cooperation in these activities are lower productivity in development and operations, as well as unsatisfied users.
The economy of collective attention for situated knowledge collaboration in software development BIBAFull-Text 109-112
  Yunwen Ye; Kumiyo Nakakoji; Yasuhiro Yamamoto
Because the knowledge required for the construction of a complex software system is often widely distributed among its members, programmers routinely engage in collaboration with each other to acquire knowledge resided in the heads of their peers to accomplish their own programming tasks. We call this kind of collaboration situated knowledge collaboration. Situated knowledge collaboration comes with costs and the costs vary depending on the communication mechanism used. To understand the cost-benefit structure of different communication mechanisms in support of situated knowledge collaboration, we propose the conceptual framework of collective attention economy. The analytic power of the conceptual framework is illustrated in the comparison of two communication mechanisms.