Many software development organizations strive to enhance the productivity of their developers. All too often, efforts aimed at improving developer productivity are undertaken without knowledge about how developers spend their time at work and how it influences their own perception of productivity. To fill in this gap, we deployed a monitoring application at 20 computers of professional software developers from four companies for an average of 11 full workdays in situ. Corroborating earlier findings, we found that developers spend their time on a wide variety of activities and switch regularly between them, resulting in highly fragmented work. Our findings extend beyond existing research in that we correlate developers’ work habits with perceived productivity and also show productivity is a personal matter. Although productivity is personal, developers can be roughly grouped into morning, low-at-lunch and afternoon people. A stepwise linear regression per participant revealed that more user input is most often associated with a positive, and emails, planned meetings and work unrelated websites with a negative perception of productivity. We discuss opportunities of our findings, the potential to predict high and low productivity and suggest design approaches to create better tool support for planning developers’ workdays and improving their personal productivity.
[click for more details…]
The study of expertise is difficult to do in a lab environment due to the challenge of finding people at different skill levels and the lack of time for participants to acquire mastery. In this paper, we report on two studies that analyze naturalistic gameplay data using cohort analysis to better understand how skill relates to practice and habit. Two cohorts are analyzed, each from two different games (Halo Reach and StarCraft 2). Our work follows skill progression through 7 months of Halo matches for a holistic perspective, but also explores low-level in-game habits when controlling game units in StarCraft 2. Players who played moderately frequently without long breaks were able to gain skill the most efficiently. What set the highest performers apart was their ability to gain skill more rapidly and without dips compared to other players. At the beginning of matches, top players habitually warmed up by selecting and re-selecting groups of units repeatedly in a meaningless cycle. They exhibited unique routines during their play that aided them when under pressure.
[click for more details…]
Software companies regularly recruit skilled and talented employees to meet evolving business requirements. Although companies expect early contributions, new hires often take several weeks to reach the same productivity level as existing employees. We refer to this transition of new hires from novices to experts as ramp-up journey. There can be various factors such as lack of technical skills or lack of familiarity with the process that influence the ramp-up journey of new hires. The goal of our work is to identify those factors and study their influence on the ramp-up journey. We expect the results from this study to help identify the need of various types of assistance to new hires to ramp-up faster. As a first step towards our goal, this paper explores the impact of two strategic practices, namely distributed development and internship on the ramp-up journey of new hires. Our results show that new hires in proximity to the core development team and new hires with prior internship experience perform better than others in the beginning. In the overall ramp-up journey, the effect of the two factors attenuates, yet nevertheless better compared to their counterparts. Product teams can use this information to pay special attention to non-interns and use better tools for distributed, cooperative work to help new hires ramp-up faster.
[click for more details…]
In this paper, the modeling of developers’ assignment to bugs (DAB) is studied. The problem is modeled both as a single objective (minimize bug fix time) and as a bi-objective (minimize bug fix time and cost) combinatorial optimization problem. Two models of developer assignment are considered where in the first model a single developer is assigned per bug (single developer model), while in the second model a single developer is assigned for each competency area of a bug (individual competency model). The latter model is proposed in this paper. For the single developer model, GA@DAB, an existing genetic algorithm-based approach, is extended to support precedence among bugs. For the individual competency model of DAB, one genetic algorithm-based approach (Competence@DAB) and one nondominated sorting genetic algorithm II-based approach (CompetenceMulti2@DAB) are proposed to generate solutions minimizing time and minimizing both time and cost, respectively. The performance of the proposed approaches was evaluated for 2040 bugs of 19 open-source milestone projects from the Eclipse platform. Our results and analysis show that the proposed individual competency model is far better than the single developer model, with average bug fix time reduction of 39.7% across all projects.
[click for more details…]
Please submit to the 14th International Conference on Mining Software Repositories (MSR 2017). The submission deadline is February 10 (abstracts February 3) for the technical track— as always, please check the webpage for any extensions. I’m a member of the Steering Committee.
Software repositories such as source control systems, archived communications between project personnel, and defect tracking systems are used to help manage the progress of software projects. Software practitioners and researchers are recognizing the benefits of mining this information to support the maintenance of software systems, improve software design/reuse, and empirically validate novel ideas and techniques. Research is now proceeding to uncover the ways in which mining these repositories can help to understand software development and software evolution, to support predictions about software development, and to exploit this knowledge in planning future development. The goal of this two-day international conference is to advance the science and practice of software engineering via the analysis of data stored in software repositories.
This year, we solicit three types of papers: research, practice, and data. As in previous MSR editions, there will be a Mining Challenge and a special issue of the best MSR papers published in the Empirical Software Engineering journal. For the research and practice papers, we especially encourage submissions that facilitate reproducibility and follow up research by publicly providing data sets and tools. Publicly providing reusable research artifacts (data or tools) is not mandatory, but will strengthen the reproducibility of the research, which is an explicit evaluation criterion
Please submit to the First International Workshop on Establishing a Community-Wide Infrastructure for Architecture-Based Software Engineering (ECASE 2017). The submission deadline is January 20, 2017 — as always, please check the webpage for any extensions. I’m a member of the Program Committee.
Software architecture plays an important role in facilitating the maintenance of a software system. Over the past two decades, software architecture research has yielded many different tools and techniques for understanding and maintaining the architectures of large, complex software systems. However, empirical research and technology transfer are impeded by myriad disjoint research and development environments, lack of a shared infrastructure, high initial costs associated with developing robust tools, and a lack of datasets needed to conduct empirical research in this domain.
The workshop gathers researchers and practitioners from two areas—software architecture and empirical software engineering—to explore the issues at the intersection of these areas and identify plausible solutions that jointly move both areas forward. The overall objective of the workshop is to collaboratively elicit requirements, propose a design for, and determine the foundation of potential infrastructures and instruments that would support empirical research in the domain of architecture-based software development and maintenance. blockquote>
Please submit to the 8th International Workshop on Empirical Software Engineering in Practice (IWESEP 2017). The submission deadline is December 11, 2016 (abstracts December 7) — as always, please check the webpage for any extensions. I’m a member of the Program Committee.
The objective of the 8th International Workshop on Empirical Software Engineering in Practice (IWESEP) is to foster the development of the area by providing a forum where researchers and practitioners can report on and discuss new research results and applications in the area of empirical software engineering. The workshop encourages the exchange of ideas within the international community to better understand, from an empirical viewpoint, the strengths and weaknesses of technology in use and new technologies, with the expectation of furthering the field of software engineering.
The workshop focuses on the process, design, and structure of empirical studies as well as the results of specific studies. The workshop welcomes both original and replicated studies, varying from controlled experiments to field studies, from quantitative to qualitative. We solicit the following two types of submissions: full research papers (max 6 pages) for oral presentations and abstracts (max 700 words) for poster presentations. Please check the website for more information.