Christian Bird

ORCID: 0000-0002-7774-0387
Publications
Citations
Views
---
Saved
---
About
Contact & Profiles
Research Areas
  • Software Engineering Research
  • Software Engineering Techniques and Practices
  • Open Source Software Innovations
  • Software System Performance and Reliability
  • Software Reliability and Analysis Research
  • Software Testing and Debugging Techniques
  • Advanced Software Engineering Methodologies
  • Scientific Computing and Data Management
  • Data Mining Algorithms and Applications
  • Mobile Crowdsensing and Crowdsourcing
  • Complex Network Analysis Techniques
  • Biomedical and Engineering Education
  • Big Data and Business Intelligence
  • Information and Cyber Security
  • Green IT and Sustainability
  • Knowledge Management and Sharing
  • Business Process Modeling and Analysis
  • Advanced Malware Detection Techniques
  • Web Application Security Vulnerabilities
  • Wikis in Education and Collaboration
  • Personal Information Management and User Behavior
  • Distributed and Parallel Computing Systems
  • Cloud Data Security Solutions
  • Persona Design and Applications
  • AI-based Problem Solving and Planning

Microsoft (United States)
2016-2025

Microsoft Research (United Kingdom)
2013-2024

Microsoft Research (India)
2018-2023

Software602 (Czechia)
2019

Software (Germany)
2019

University of California, Davis
2006-2013

University of California, San Diego
2009

Aberystwyth University
1998-1999

University of Wales
1998-1999

IBM (United Kingdom)
1996

Recent advances in machine learning have stimulated widespread interest within the Information Technology sector on integrating AI capabilities into software and services. This goal has forced organizations to evolve their development processes. We report a study that we conducted observing teams at Microsoft as they develop AI-based applications. consider nine-stage workflow process informed by prior experiences developing applications (e.g., search NLP) data science tools (e.g. application...

10.1109/icse-seip.2019.00042 article EN 2019-05-01

Communication & Co-ordination activities are central to large software projects, but difficult observe and study in traditional (closed-source, commercial) settings because of the prevalence informal, direct communication modes. OSS on other hand, use internet as medium,and typically conduct discussions an open, public manner. As a result, email archives projects provide useful trace co-ordination participants. However, there various challenges that must be addressed before this data can...

10.1145/1137983.1138016 article EN 2006-05-22

Code review is a common software engineering practice employed both in open source and industrial contexts. Review today less formal more “lightweight” than the code inspections performed studied 70s 80s. We empirically explore motivations, challenges, outcomes of tool-based reviews. observed, interviewed, surveyed developers managers manually classified hundreds comments across diverse teams at Microsoft. Our study reveals that while finding defects remains main motivation for review,...

10.1109/icse.2013.6606617 article EN 2013 35th International Conference on Software Engineering (ICSE) 2013-05-01

Code review is a common software engineering practice employed both in open source and industrial contexts. Review today less formal more “lightweight” than the code inspections performed studied 70s 80s. We empirically explore motivations, challenges, outcomes of tool-based reviews. observed, interviewed, surveyed developers managers manually classified hundreds comments across diverse teams at Microsoft. Our study reveals that while finding defects remains main motivation for review,...

10.5555/2486788.2486882 article EN International Conference on Software Engineering 2013-05-18

Descriptive names are a vital part of readable, and hence maintainable, code. Recent progress on automatically suggesting for local variables tantalizes with the prospect replicating that success method class names. However, methods classes is much more difficult. This because good need to be functionally descriptive, but such requires model goes beyond context. We introduce neural probabilistic language source code specifically designed naming problem. Our learns which semantically similar...

10.1145/2786805.2786849 article EN 2015-08-26

Every programmer has a characteristic style, ranging from preferences about identifier naming to object relationships and design patterns. Coding conventions define consistent syntactic fostering readability hence maintainability. When collaborating, programmers strive obey project's coding conventions. However, one third of reviews changes contain feedback conventions, indicating that do not always follow them project members care deeply adherence. Unfortunately, are often unaware because...

10.1145/2635868.2635883 preprint EN 2014-11-04

Software engineering researchers have long been interested in where and why bugs occur code, predicting they might turn up next. Historical bug-occurence data has key to this research. Bug tracking systems, code version histories, record when, how by whom were fixed; from these sources, datasets that relate file changes bug fixes can be extracted. These historical used test hypotheses concerning processes of introduction, also build statistical prediction models. Unfortunately, humans are...

10.1145/1595696.1595716 article EN 2009-08-24

Ownership is a key aspect of large-scale software development. We examine the relationship between different ownership measures and failures in two large projects: Windows Vista 7. find that all cases, such as number low-expertise developers, proportion for top owner have with both pre-release faults post-release failures. also empirically identify reasons developers make changes to components show removal contributions dramatically decreases performance contribution based defect prediction....

10.1145/2025113.2025119 article EN 2011-09-06

We are now witnessing the rapid growth of decentralized source code management (DSCM) systems, in which every developer has her own repository. DSCMs facilitate a style collaboration work output can flow sideways (and privately) between collaborators, rather than always up and down publicly) via central Decentralization comes with both promise new data peril its misinterpretation. focus on git, very popular DSCM used high-profile projects. Decentralization, other features such as...

10.1109/msr.2009.5069475 article EN 2009-05-01

Commercial software project managers design organizational structure carefully, mindful of available skills, division labour, geographical boundaries, etc. These "cathedrals" are to be contrasted with the "bazaar-like" nature Open Source Software (OSS) Projects, which have no pre-designed structure. Any that exists is dynamic, self-organizing, latent, and usually not explicitly stated. Still, in large, complex, successful, OSS projects, we do expect subcommunities will form spontaneously...

10.1145/1453101.1453107 article EN 2008-11-09

Software peer review is practiced on a diverse set of software projects that have drastically different settings, cultures, incentive systems, and time pressures. In an effort to characterize understand these differences we examine two Google-led projects, Android Chromium OS, three Microsoft Bing, Office, MS SQL, internal AMD. We contrast our findings with data taken from traditional inspection conducted Lucent project open source six including Apache, Linux, KDE. Our measures interest...

10.1145/2491411.2491444 article EN 2013-08-18

Program Analysis has been a rich and fruitful field of research for many decades, countless high quality program analysis tools have produced by academia. Though there are some well-known examples that found their way into routine use practitioners, common challenge faced researchers is knowing how to achieve broad lasting adoption tools. In an effort understand what makes analyzer most attractive developers, we mounted multi-method investigation at Microsoft. Through interviews surveys...

10.1145/2970276.2970347 article EN 2016-08-25

Dynamically typed languages such as JavaScript and Python are increasingly popular, yet static typing has not been totally eclipsed: now supports type annotations like TypeScript offer a middle-ground for JavaScript: strict superset of JavaScript, to which it transpiles, coupled with system that permits partially programs. However, cost: adding annotations, reading the added syntax, wrestling fix errors. Type inference can ease transition more statically code unlock benefits richer...

10.1145/3236024.3236051 article EN 2018-10-26

The COVID-19 pandemic has shaken the world to its core and provoked an overnight exodus of developers who normally worked in office setting working from home. magnitude this shift factors that have accompanied new unplanned work go beyond what software engineering community previously understood be remote work. To find out how their productivity were affected, we distributed two surveys (with a combined total 3,634 responses answered all required questions) weeks apart understand presence...

10.1145/3487567 article EN ACM Transactions on Software Engineering and Methodology 2021-12-24

Over the next five years, AI-powered tools likely will be helping developers in many diverse tasks. For example, such models may used to improve code review, directing reviewers parts of a change where review is most needed or even directly providing feedback on changes. Models as Codex suggest fixes for defects code, build failures, failing tests. These are able write tests automatically, quality and downstream reliability distributed systems. This study Copilot shows that spend more time...

10.1145/3582083 article EN Queue 2022-12-31

It is widely believed that distributed software development riskier and more challenging than collocated development. Prior literature on in engineering other fields discuss various challenges, including cultural barriers, expertise transfer difficulties, communication coordination overhead. We evaluate this conventional belief by examining the overall of Windows Vista comparing post-release failures components were developed a fashion with those teams. found negligible difference failures....

10.1109/icse.2009.5070550 article EN 2009-01-01

Studies have shown that social factors in development organizations a dramatic effect on software quality. Separately, program dependency information has also been used successfully to predict which components are more fault prone. Interestingly, the influence of these two phenomena only studied separately. Intuition and practical experience suggests,however, task assignment (i.e. who worked how much) structure (which dependencies others)together interact quality resulting software. We study...

10.1109/issre.2009.17 article EN 2009-11-01

Empirical studies of software defects rely on links between bug databases and program code repositories. This linkage is typically based bug-fixes identified in developer-entered commit logs. Unfortunately, developers do not always report which commits perform bug-fixes. Prior work suggests that such can be a biased sample the entire population fixed bugs. The validity statistical hypotheses-testing linked data could well affected by bias. Given wide use defect data, it vital to gauge nature...

10.1145/1882291.1882308 article EN 2010-11-07

One of the goals software engineering research is to achieve generality: Are phenomena found in a few projects reflective others? Will technique perform as well on other than it evaluated on? While common sense select sample that representative population, importance diversity often overlooked, yet important. In this paper, we combine ideas from representativeness and introduce measure called coverage, defined percentage population are similar given sample. We algorithms compute coverage for...

10.1145/2491411.2491415 article EN 2013-08-18

Code review is an important part of the software development process. Recently, many open source projects have begun practicing code through “modern” tools such as GitHub pull-requests and Gerrit. Many commercial companies use similar for internally. These enable owner a change to request individuals participate in review, i.e., reviewers. However, this task comes with challenge. Prior work has shown that benefits are dependent upon expertise reviewers involved. Thus, common problem faced by...

10.1109/tse.2015.2500238 article EN IEEE Transactions on Software Engineering 2015-11-12

The energy consumption of software is an increasing concern as the use mobile applications, embedded systems, and data center-based services expands. While research in green engineering correspondingly increasing, little known about current practices perspectives engineers field. This paper describes first empirical study how practitioners think when they write requirements, design, construct, test, maintain their software. We report findings from a quantitative, targeted survey 464 ABB,...

10.1145/2884781.2884810 article EN Proceedings of the 44th International Conference on Software Engineering 2016-05-13

Empirical software engineering has produced a steady stream of evidence-based results concerning the factors that affect important outcomes such as cost, quality, and interval. However, programmers often also have strongly-held priori opinions about these issues. These are important, since developers highly-trained professionals whose beliefs would doubtless their practice. As in medicine, disseminating empirical findings to is key step ensuring impact In this paper, we describe case study,...

10.1145/2884781.2884812 article EN Proceedings of the 44th International Conference on Software Engineering 2016-05-13

Many open source and commercial developers practice contemporary code review, a lightweight, informal, tool-based review process. To better understand this process its benefits, we gathered information about practices via surveys of software from Microsoft. The results our analysis suggest that spend approximately 10-15 percent their time in reviews, with the amount effort increasing experience. Developers consider important, stating addition to finding defects, reviews offer other including...

10.1109/tse.2016.2576451 article EN publisher-specific-oa IEEE Transactions on Software Engineering 2016-06-07

Code review has been widely adopted by and adapted to open source industrial projects. practices have undergone extensive research, with most studies relying on trace data from tool reviews, sometimes augmented surveys interviews. Several recent research studies, along blog posts white papers, revealed additional insights code reviewing “from the trenches.” Unfortunately, lessons learned about are dispersed poorly summarized existing literature. In particular, practitioners wishing adopt or...

10.1109/ms.2017.265100500 article EN IEEE Software 2017-06-16

10.1007/s10664-011-9195-3 article EN Empirical Software Engineering 2011-12-23
Coming Soon ...