About
102
Publications
313,681
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
14,019
Citations
Introduction
My research interests are related to organizational and socio-technical aspects of software development and how software development can be improved. I am particularly concerned with providing rigorous research results on topics of importance to the software industry.
Additional affiliations
January 2010 - June 2015
January 2002 - December 2009
Education
September 1997 - December 2001
September 1982 - June 1987
Norwegian Institute of Technology
Field of study
- Electrical Engineering and Computer Science
Publications
Publications (102)
Agile software development represents a new approach for planning and managing software projects. It puts less emphasis on up-front plans and strict control and relies more on informal collaboration, coordination, and learning. This chapter provides a characterization and definition of agile project management based on extensive studies of industri...
Agile software development represents a major departure from traditional, plan-based approaches to software engineering. A systematic review of empirical studies of agile software development up to and including 2005 was conducted. The search strategy identified 1996 studies, of which 36 were identified as empirical studies. The studies were groupe...
Software managers and practitioners often must make decisions about what technologies to employ on their projects. They might be aware of problems with their current development practices (for example, production bottlenecks or numerous defect reports from customers) and want to resolve them. Or, they might have read about a new technology and want...
Context: The authors wanted to assess whether the quality of published human-centric software engineering experiments was improving. This required a reliable means of assessing the quality of such experiments. Aims: The aims of the study were to confirm the usability of a quality evaluation checklist, determine how many reviewers were needed per pa...
Our objective is to perform an empirical investigation on factors affecting software developer acceptance and utilization of electronic process guides (EPGs) and to discuss the implications of the findings. The potential benefits of EPGs can only be realized when key capabilities are not only adopted, but also infused across the organization. We co...
The authors provide advice from one of the largest development programs in Norway, where 12 scrum teams combined agile practices with traditional project management. The Perform program delivered 12 releases over a four-year period, finishing on budget and on time. The authors summarize 10 key lessons on five crucial topics that are relevant to oth...
We describe advice derived from one of the largest development programs in Norway, where twelve Scrum teams combined agile practices with traditional project management. The Perform program delivered 12 releases over a four-year period, and finished on budget and on time. In this article, we summarize 12 key lessons on five crucial topics, relevant...
To celebrate the 200th issue of IEEE Software, Voice of Evidence uses data to examine whether it has helped bridge the gap between research and practice by extracting actionable lessons from the body of research.
It is relatively easy to generate and acquire much data from software engineering activities. The challenge is to obtain meaning from the data that represents something true, rather than spurious. To increase knowledge and insight, more theories should be built and used.
A decade ago, Kitchenham, Dybå and Jørgensen coined the term and provided the foundations for evidence-based software engineering (EBSE). A trilogy of papers was written for researchers, practitioners, and educators. They suggested that practitioners consider EBSE as a mechanism to support and improve their technology adoption decisions, and that r...
Small, self-directed teams are central in agile development. This article investigates the effect of teamwork quality on team performance, learning and work satisfaction in agile software teams, and whether this effect differs from that of traditional software teams. A survey was administered to 477 respondents from 71 agile software teams in 26 co...
Team performance has been studied in many disciplines, from management science and organizational psychology to information systems. Key findings from research in these disciplines have included the importance of establishing a common mental model in a team. Many studies in other disciplines have investigated software development teams because they...
Case studies are largely used for investigating software engineering practices. They are characterized by their flexible nature, multiple forms of data collection, and are mostly informed by qualitative data. Synthesis of case studies is necessary to build a body of knowledge from individual cases. There are many methods for such synthe- sis, but t...
In globally distributed software projects the testing expertise may be scattered across multiple locations. We describe and discuss a globally distributed agile project at DNV GL Software, a multinational provider of software for a safer, smarter and greener future in the energy, process and maritime industries. DNV GL Software is headquartered in...
Abstract— Virtual teams, with a high level of interdependence and cooperation among team members, are the building block of successful global software organizations. While becoming agile helps on communication and collaboration, such teams meet several challenges in the form of cultural differences, language barriers, national traditions, different...
Context: The trustworthiness of research results is a growing concern in many empirical disciplines. Aim: The goals of this paper are to assess how much the trustworthiness of results reported in software engineering experiments is affected by researcher and publication bias, given typical statistical power and significance levels, and to suggest i...
Skilled workers are crucial to the success of software development. The current practice in research and industry for assessing programming skills is mostly to use proxy variables of skill, such as education, experience, and multiple-choice knowledge tests. There is as yet no valid and efficient way to measure programming skill. The aim of this res...
The capacity to reflect on past practice is important for continuous learning in software development. Reflection often takes place in cycles of experience followed by conscious application of learning from that experience, during which a software developer might explore comparisons, ponder alternatives, take diverse perspectives, and draw inferenc...
Context: Code smells are assumed to indicate bad design that leads to less maintainable code. However, this assumption has not been investigated in controlled studies with professional software developers. Aim: This paper investigates the relationship between code smells and maintenance effort. Method: Six developers were hired to perform three mai...
Context: Several text books and papers published between 2000 and 2002 have attempted to introduce experimental design and statistical methods to software engineers undertaking empirical studies. Objective: This paper investigates whether there has been an increase in the quality of human-centric experimental and quasi-experimental journal papers o...
Empirical research is starting to be more used in the area of requirements elicitation. It mostly focuses on the effects of techniques in the final product of the elicitation process in laboratory experiments. Our argument is that future advances in requirements elicitation practice are unlikely to come from such studies. Requirements elicitation r...
What works for whom, where, when, and why is the ultimate question of evidence-based software engineering. Still, the empirical research seems mostly concerned with identifying universal relationships that are independent of how work settings and other contexts interact with the processes important to software practice. Questions of “What is best?”...
Ethnography is about the adoption of a cultural lens to observe and interpret events, actions, and behaviors, ensuring that they are placed in a relevant and meaningful context. Using this approach, it is possible to capture and analyze software development practices. Our aims are to illustrate the use of an ethnographic approach in a case study of...
Context is a central concept in empirical software engineering. It is one of the distinctive features of the discipline and it is an indispensable part of software practice. It is likely responsible for one of the most challenging methodological and theoretical problems: study-to-study variation in research findings. Still, empirical software engin...
A close look at the evidence underpinning the original concept of lean production and its popular interpretation reveals the inherent challenges of measuring and interpreting evidence for performance differences.
ContextAgile software development changes the nature of collaboration, coordination, and communication in software projects.Objective
Our objective was to understand the challenges of shared decision-making in agile software development teams.Method
We designed a multiple case study consisting of four projects in two software product companies that...
ContextDuring systematic literature reviews it is necessary to assess the quality of empirical papers. Current guidelines suggest that two researchers should independently apply a quality checklist and any disagreements must be resolved. However, there is little empirical evidence concerning the effectiveness of these guidelines.AimsThis paper inve...
Software development is most often done in teams, where human and cooperative aspects are vital for team effectiveness. This has been the topic of study in several disciplines, and in this article we describe three team effectiveness models from other fields. We discuss priorities for future studies on software teams, and ask: Do we need our own ef...
Escalating commitment is a common and costly phenomenon in software projects in which decision-makers continue to invest resources to a failing course of action. We conducted a longitudinal case study exploring the effect of daily meetings on escalating commitment. This was done in an agile project building software for the oil and gas industry. By...
Software ecosystems have become a defined and active field of research based on the recent emergence of new open business models leading to new roles and patterns for collaboration, innovation, and value proposition. In this paper we look into the theoretical foundations of this new research field. We review recent publications to describe the pres...
Thematic analysis is an approach that is often used for identifying, analyzing, and reporting patterns (themes) within data in primary qualitative research. 'Thematic synthesis' draws on the principles of thematic analysis and identifies the recurring themes or issues from multiple studies, interprets and explains these themes, and draws conclusion...
The skills of software developers are important to the success of software projects. Also, when studying the general effect of a tool or method, it is important to control for individual differences in skill. However, the way skill is assessed is often ad hoc, or based on unvalidated methods. According to established test theory, validated tests of...
Synthesis of case studies is different from synthesis of purely quantitative studies, for example, in that sampling and analysis in primary studies have been carried out differently, and that primary results are of a different nature. The objective of this research is to identify what challenges should be considered when choosing and using a method...
Context: In software development, Testing is an important mechanism both to identify defects and assure that completed products work as specified. This is a common practice in single-system development, and continues to hold in Software Product Lines ...
ContextComparing and contrasting evidence from multiple studies is necessary to build knowledge and reach conclusions about the empirical support for a phenomenon. Therefore, research synthesis is at the center of the scientific enterprise in the software engineering discipline.ObjectiveThe objective of this article is to contribute to a better und...
ContextJob rotation is a widely known approach to increase knowledge redundancy but empirical evidence regarding introduction and adoption in software development is scant. A lack of knowledge redundancy is a limiting factor for collaboration, flexibility, and coordination within teams and within the organization.ObjectiveThe scientific objective o...
Although Scrum is an important topic in software engineering and information systems, few longitudinal industrial studies have investigated the effects of Scrum on software quality, in terms of defects and defect density, and the quality assurance process. In this paper we report on a longitudinal study in which we have followed a project over a th...
Synthesizing the evidence from a set of studies that spans many countries and years, and that incorporates a wide variety of research methods and theoretical perspectives, is probably the single most challenging task of performing a systematic review. In this paper, we perform a tertiary review to assess the types and methods of research synthesis...
Context Software development depends significantly on team performance, as does any process that involves human interaction Objective Most current development methods argue that teams should self-manage Our objective is thus to provide a better understanding of the nature of self-managing agile teams, and the teamwork challenges that arise when int...
Agile software development is an important topic in software engineering
and information systems. This chapter provides a characterization and
definition of agile software development, an overview of research
through a summary of existing overview studies, an analysis of the
research literature so far, and an introduction to the main themes of
this...
The basic work unit in innovative software organizations is the team rather than the individual. Such teams consist of "a small number of people with complementary skills who are committed to a common purpose, set of performance goals, and approach for which they hold themselves mutually accountable". Work teams have many advantages, such as increa...
Agile software development has become an umbrella term for a number of changes in how software developers plan and coordinate their work, how they communicate with customers and external stakeholders, and how software development is organized in small, medium, and large companies, from the telecom and healthcare sectors to games and interactive med...
Agile software development has had a huge impact on how software is developed worldwide. We can view agile methods such as Extreme Programming (XP) and Scrum as a reaction to plan-based or traditional methods, which emphasize a "rationalized, engineering-based approach, incorporating extensive planning, codified processes, and rigorous reuse. In co...
Several experiments on the effects of pair versus solo programming have been reported in the literature. We present a meta-analysis of these studies. The analysis shows a small significant positive overall effect of pair programming on quality, a medium significant positive overall effect on duration, and a medium significant negative overall effec...
In the agile approach, the self-organizing team itself decides how work is coordinated. For individuals in a team to be motivated
and satisfied with their job they need to have control over their work and over the scheduling and implementation of their
own tasks. However, individual and team level autonomy may conflict, and reduce the effectiveness...
Background: Experiments in which study units are assigned to experimental groups nonrandomly are called quasi-experiments. They allow investigations of cause-effect relations in settings in which randomization is inappropriate, impractical, or too costly. Problem outline: The procedure by which the nonrandom assignments are made might result in sel...
Systematic reviews are only as good as the evidence they are based on. It is important, therefore, that users of systematic reviews know how much confidence they can place in the conclusions and recommendations arising from such reviews. In this paper we present an overview of some of the most influential systems for assessing the quality of indivi...
Some claim that especially in the field of agile software development the research lags years behind of the practice. In this paper, we characterize the status and main challenges for research on agile software development, and propose a preliminary roadmap, focusing on providing more empirical research, primarily on experienced agile teams and org...
Traditional software teams consist of independently focused self-managing professionals with high individual but low team autonomy. A challenge with introducing agile software development is that it requires a high level of both individual and team autonomy. This paper studies the barriers with introducing self-organizing teams in agile software de...
In mature sciences, building theories is the principal method of acquiring and accumulating knowledge that may be used in a wide range of settings. In software engineering, there is relatively little focus on theories. In particular, there is little use and development of empirically-based theories. We propose, and illustrate with examples, an init...
Pair programming is a collaborative approach that makes working in pairs rather than individually the primary work style for code development. Because PP is a radically different approach than many developers are used to, it can be hard to predict the effects when a team switches to PP. Because projects focus on different things, this article conce...
An effect size quantifies the effects of an experimental treatment. Conclusions drawn from hypothesis testing results might be erroneous if effect sizes are not judged in addition to statistical significance. This paper reports a systematic review of 92 controlled experiments published in 12 major software engineering journals and conference procee...
Systematic reviews are one of the key building blocks of evidence-based software engineering. Current guidelines for such reviews are, for a large part, based on standard meta-analytic techniques. However, such quantitative techniques have only limited applicability to software engineering research. In this paper, therefore, we describe our experie...
We present the vision that for all fields of software engineering (SE), empirical research methods should enable the development of scientific knowledge about how useful different SE technologies are for different kinds of actors, performing different kinds of activities, on different kinds of systems. It is part of the vision that such scientific...
A total of 295 junior, intermediate, and senior professional Java consultants (99 individuals and 98 pairs) from 29 international consultancy companies in Norway, Sweden, and the UK were hired for one day to participate in a controlled experiment on pair programming. The subjects used professional Java tools to perform several change tasks on two a...
Empirically based theories are generally perceived as foundational to science. However, in many disciplines, the nature, role and even the necessity of theories remain matters for debate, particularly in young or practical disciplines such as software engineering. This article reports a systematic review of the explicit use of theory in a comprehen...
Special interest groups or communities of practice are seen as important mechanisms for knowledge sharing in the knowledge management literature. However, there are few empirical studies of communities of practice in the software engineering field. This article presents an action research project in a small size software consulting company, where t...
In an action research study, we describe the application of the scrum software development process in a small cross-organizational development project. The stakeholders in the project report many of the benefits we have found in previous studies, such as increased overview of the project, flexibility and motivation. In addition, we have found that...
One way of implementing Software Process Improvement (SPI) is to empower employees to carry out decisions made by management.
An alternative way is to invite developers and project leaders to participate in all phases of planning and implementing SPI
projects. Such participation has always been a central goal and one of the pillars of organization...
Statistical power is an inherent part of empirical studies that employ significance testing and is essential for the planning of studies, for the interpretation of study results, and for the validity of study conclusions. This paper reports a quantitative assessment of the statistical power of empirical software engineering research based on the 10...
We introduce electronic process guides, and discuss their role in software engineering projects. We then present existing
methods for constructing electronic process guides by defining a set of common processes for a company. Different approaches
from the software engineering and management science are presented. We then go on to propose a new way...
For process models to be useful, more and more software companies not only tailor their process models to the specific needs of the company, but also make them available on the company's intranet. In this article, we try to understand what characterizes the use of an electronic process guide (EPG) among developers in a medium-sized software company...
Much experimental SE research involves testing a hypothesis regarding a relationship or difference between two variables.
Typically, a null hypothesis (H0) of a zero correlation or no difference between the means of the two populations is posited. The standard way of reporting
results from such statistical hypothesis testing is by presenting p-valu...
Most software engineering research implicitly assumes that development methodologies are useful and that there is a direct relationship between software methodologies and their effects on organizational performance. However, a methodology cannot have an impact if it is not used. The purpose of this paper is, thus, to raise a number of challenges re...
Evidence-based software engineering (EBSE) describes a process of identifying, understanding and evaluating findings from research and practice-based experience. This process aims at improving software engineering decisions. For the last three years, EBSE has been taught to university students at Hedmark University College, Rena, Norway. The motiva...
Understanding how to implement software process improvement (SPI) successfully is arguably the most challenging issue facing the SPI field today. The SPI literature contains many case studies of successful companies and descriptions of their SPI programs. However, the research efforts to date are limited and inconclusive and without adequate theore...
For process models to be useful, increasingly more software companies not only tailor their process models to the specific
needs of the company, but also make them available on the company’s intranet. In this paper, we try to understand what characterizes
the use of an electronic process guide among developers in a medium sized Software House. We d...
Our objective is to describe how software engineering might benefit from an evidence-based approach and to identify the potential difficulties associated with the approach. We compared the organisation and technical infrastructure supporting evidence-based medicine (EBM) with the situation in software engineering. We considered the impact that fact...
We introduce electronic process guides, and discuss their role in software engineering projects. We then present existing methods for constructing electronic process guides by defining a set of common processes for a company. Different approaches from the software engineering and management science are presented. We then go on to propose a new way...
Faster, better and cheaper are challenges that IT-companies face every day. The customer's expectations shall be met in a world where constant change in environment, organization and technology are the rule rather that the exception. A solution for meeting these challenges is to share knowledge and experience - use the company's own experience, and...