By Review Date
2024
2023
- Shurui Zhou on Sustainability of Open Source Scientific Software
- Andreas Zeller on Creating Nasty Test Inputs
- Ethel Tshukudu on Conceptual Transfer in Students Learning New Programming Languages
- Allison Sullivan on the Benefits of Unit Tests for Software Models
- Alexander Serebrenik on Employability and Experiences of Older Developers
- Kai Presler-Marshall on Teaching Collaborative Skills to Undergrads
- Gustavo Pinto on Cognitive-Driven Development
- Christian Newman on Crafting Strong Identifier Naming Practices
- Ariana Mirian on Enterprise Vulnerability Remediation
- Lauren Margulieux on Things Software Developers Should Know About Learning
- Sherlock Licorish on Using Genetic Improvement to Enhance Code Snippets
- Carol Lee on Developer Thriving
- Thomas LaToza on Programming Strategically
- Raula Kula on What We Know About Libraries and Their Dependencies
- Elvan Kula on Understanding and Predicting Delays in Software Development
- Rashina Hoda on Making Sense of User Feedback
- Prem Devanbu on Leveraging the Bimodality of Software
- Zadia Codabux on Technical Debt in R Packages
- Preetha Chatterjee on Emotion Awareness in Software Engineering
- John Businge on Patches and Clones in Software Families
- Marcel Böhme on the Surprising Efficiency and Cost of Fuzzing
- Gina Bai on How Novices Perceive and Perform Testing
- The Cost of Change
- The Making of Wikidata
- Empathy Models and Software Engineering
- A Hopeful Case for Generative AI in Software Engineering
- Academic NFTs
- Code Review for Refactoring
- The Monorepo Question
- Psychoactive Substance Use by Professional Programmers
- MSR Tool Design Principles and Experiences
- Near-Zero Overhead Coverage for Python
- Every Author as First Author
- Workflow Extraction from Screencasts
- An Open Source Adaptive Tutoring System
- Impact of OSS Courses on Student Self-Efficacy
- Code Reuse Support for node.js Developers
- Benchmarking Open Source DevOps
- A Small Request for ICSE Attendees
- Views of Software Quality over Time
- Measuring Security Practices and Impact
- User-Driven Design and Evaluation of Liquid Types in Java
- Code Quality in Templates for Online Programming Courses
- Code Quality in Education
- Automating Frequency Changes in Python ML System
- Applying Information Theory to Software Evolution
- Applying Human Values Theory to Software Evolution
- Trust in Software Tools
- Stack Overflow Code Quality
- Quality of Submissions in Online Programming Courses
- An Open Source Issue Recommendation System
- Mentoring on Good First Issues
- Flexible Correct-by-Construction Programming
- Finding Bug-Inducing Program Environments
- Evaluation of Formal Verification Results
- Deconstructing Sentimental Stack Overflow Posts
- And That's a Wrap
- Along the Margins
- Accessibility Metatesting
- Python Package Index Malware Scanning
- A Dataset of Python Code Change Patterns
- A Plea from Mike Hoye
- Minimal Overhead Monitoring
- Taxing Collaborative Software Engineering
- Software Supply Chain Attacks
- Comparing Student and LLM Code Explanations
- Automated Detection and Repair of Intrusive Ads
- Help Us Learn More About Automated Program Repair
- Code Review of Build System Specifications
- Challenges with Checked-In Secrets
- Transgender Careers in the Software Industry
- Alternatives to Cells in Data Science Pipelines
- Inverse Relationship Between Bugs and Patches
- Classification of Identity Management Approaches
- Software Engineering Gender Bias in Large Language Models
- Typescript Feature Adoption
- Stress Management Workshop for College Students
- Supporting Developers with Disabilities
- Restoring Execution Environments of Jupyter Notebooks
- Identifying and Extracting Jupyter Notebook Structure
- K-12 Computing Education in Four African Countries
- Automated Input Generation for Alloy
- Self-Admitted Technical Debt
- Automatically Assessing Method Names
- Test Flakiness Across Programming Languages
- New Research on What Drives Developer Productivity
- Covert Cloud Communication with Lambdas
- Reducing Withdrawal and Failure Rates with Labeled Subgoals
- Combining GIN and PMD for Code Improvements
- Can Static Analysis Tools Find More Defects?
- The Impact of World Politics on Software Ecosystems
- On-Time Delivery in Large-Scale Agile
- The Emotional Roller Coaster of Responding to Requirements Changes
- Refactoring and Program Comprehension
- Learning to Predict User-Defined Types
- Interpersonal Trust in Open Source Software
- Reuse and Maintenance Among Divergent Forks
- Fairness and Code Smells in Machine Learning
- Learning and Developing with SQL
- Registration is Open for Our April 2023 Talks
- Announcing Our April 2023 Lightning Talks
2022
- Spanish Translations of Strange Loop Presentations
- An Important Lecture by Alexander Serebrenik
- Pluralsight Developer Success Survey
- Tianyi Zhang on Testing and Debugging Deep Learning
- Justin Smith on How Automated Tools Can Communicate Effective Strategies for Fixing Bugs
- Joanna Cecilia da Silva Santos on Code Smells in Automatically Generated Code
- Sarah Nadi on Automatically Avoiding API Misuse
- Mohamed Wiem Mkaouer on A Large-scale Survey of Software Refactoring
- Foutse Khomh on Finding Bugs in Deep Learning
- Cat Hicks on Learning in the Dark
- Chris Brown on Recommending Tools for Finding and Fixing Software Errors
- One More question
- Our Second Live Event
- Do Developers Really Know How to Use Git Commands?
- Software Engineering Research Questions
- Margaret-Anne Storey on Productivity
- Katie Stolee on Searching
- Igor Steinmacher on Padding Software Estimates
- Denae Ford Robinson on Online Community Safety in Software Engineering
- Shane McIntosh on Mining Software Build Systems
- Brittany Johnson-Matthews on Causal Testing
- Kelly Blincoe on Destructive Criticism
- Paige Rodeghero on Onboarding
- Mei Nagappan on Bias in Evaluating Code Contributions
- Cat Hicks on Fostering a Learning Culture
- Andy Zaidman on Testing and Testers
- Christoph Treude on Error Messages
- Manuel Rigger on Writing Tests
- Neil Brown on How Your Mind Learns to Program
- Marian Petre on Expert Thinking About Errors
- Davide Fucci on Test-Driven Development
- Maurício Aniche on Testing and Code Coverage
- Mairieli Wessel on GitHub Actions
- Matthias Galster on Waste in Software Engineering
- Sebastian Baltes on Software Engineering in Papua New Guinea
- A Note on Communication
- Felienne Hermans on Naming Things
- Alberto Bacchelli on Code Review
- May 2022 To Do
- Not Quite Modern
- That Went Well
- Extracting Rationale for Open Source Development Decisions
- Role Clarity Deficiencies Can Wreck Agile Teams
- Moving From Closed to Open Source
- A Cautionary Tale from the Decline of SourceForge
- Assessing Exception Handling Testing Practices in Open-Source Libraries
- Andreas Zeller Summarizes ICSE 2022
- Company Contributions to Open Source
- Generating Unit Tests for Documentation
- Do You Really Code?
- Database-Access Performance Antipatterns in Database-Backed Web Applications
- How Effective is Continuous Integration in Indicating Single-Statement Bugs?
- The Adoption of JavaScript Linters in Practice: A Case Study on ESLint
- A Large Scale Study of Long-Time Contributor Prediction for GitHub Projects
- The Effect of Textual vs. Graphical Software Design Descriptions on Software Design Communication
- Number Parsing at a Gigabyte a Second
- Remote Onboarding During a Pandemic
- When and How to Make Breaking Changes
- Designing Types for R Empirically
- Strategies to Improve Continuous Integration
- Python 3 Types in the Wild
- Resume-Driven Development
- Architecture Anti-Patterns: Automatically Detectable Violations of Design Principles
- Obfuscated Strings Threatening Your Privacy
- Characterizing Single-Statement Bugs in Popular Open-Source Python Projects
- A First Look at the Deprecation of RESTful APIs
- An Empirical Study of Obsolete Answers on Stack Overflow
- Consider the Thermometer
- New Me: Understanding Expert and Non-Expert Perceptions and Usage of the Tor Anonymity Network
- A Large-scale Survey of Software Refactoring
- Does ACM's code of ethics change ethical decision making in software development?
- A case history analysis of software error cause-effect relationships
- Where should I comment my code? A dataset and model for predicting locations that need comments
- AntiFuzz: Impeding Fuzzing Audits of Binary Executables
2021
- Are Refactorings to Blame? An Empirical Study of Refactorings in Merge Conflicts
- Deep Code Search
- Investigating Next Steps in Static API-Misuse Detection
- An Empirical Study of Metric-based Comparisons of Software Libraries
- The Seven Sins: Security Smells in Infrastructure as Code Scripts
- SOAR: A Synthesis Approach for Data Science API Refactoring
- Googling for Software Development: What Developers Search For and What They Find
- On Using Stack Overflow Comment-Edit Pairs to Recommend Code Maintenance Changes
- Software History under the Lens: A Study on Why and How Developers Examine It
- BugSwarm: Mining and Continuously Growing a Dataset of Reproducible Failures and Fixes
- Locating Faults with Program Slicing
- App Store Effects on Software Engineering Practices
- Error Messages in Relational Database Systems
- Enriching API Documentation with Code Samples and Usage Scenarios
- What's Missing from 'The Missing README'
- The Impact of Sleep Deprivation
- The Tech Worker Handbook
- What's Wrong With my Benchmark Results?
- Restarted and Flaky Builds on Travis CI
- Bad Practices in Continuous Integration
- Demystifying 'Bad' Error Messages in Data Science Libraries
- Open Source Projects in Baidu, Alibaba, and Tencent
- Authorship Attribution of Source Code
- Exploring Programmers' API Learning Processes
- An Empirical Study of Donations in Open Source
- A Critical History of Logo and Constructionist Learning
- Insights from Student Solutions to MongoDB Homework Problems
- Do Hackathon Projects Change the World?
- How Do Software Developers Use GitHub Actions?
- Finding Bugs in Database Systems via Query Partitioning
- Software Documentation Issues Unveiled
- Three Papers on Readability
- The Daily Life of Software Developers
- Is 40 the New 60?
- How Gamification Affects Software Developers
- Reproducibility and Credibility in Empirical Software Engineering
- The Programmer's Brain
- The Relevance of Classic Fuzz Testing
- Python Coding Style Compliance on Stack Overflow
- Quantifying and mitigating turnover-induced knowledge loss
- Effects of Adopting Code Review Bots on Pull Requests to OSS Projects
- JavaScript Quality Assurance Tools and Usage Outcomes
- The Evolution of JavaScript Code in the Wild
- Technology-Facilitated Intimate Partner Abuse
- Two Papers on Time
- Are Delayed Issues Harder to Resolve?
- How Reliable is Scientific Software?
- How Software Designers Interact with Sketches at the Whiteboard
- Coverage Is Not Strongly Correlated with Test Suite Effectiveness
- Two Studies of Software Evolution
- The Secret Life of Bugs
- Taxonomy of Package Management in Programming Languages and Operating Systems
- Syntax, Predicates, Idioms—What Really Affects Code Complexity?
- Build Systems à la Carte
- Program Comprehension of Domain-Specific and General-Purpose Languages
- Do Developers Read Compiler Error Messages?
- Reading Answers on Stack Overflow: Not Enough!
- Impact of Task Switching and Work Interruptions on Software Development Processes
- Code of Conduct in Open Source Projects
- Why Do Developers Use Trivial Packages?
- Studying the relationship between exception handling practices and post-release defects
- Analyzing the effects of test driven development in GitHub
- Categorizing the Content of GitHub README Files
- What's Wrong With Tech Hiring
- Developer Testing in the IDE: Patterns, Beliefs, and Behavior
- Common Bug-Fix Patterns: A Large-Scale Observational Study
- Why Software Projects need Heroes: Lessons Learned from 1100+ Projects
- Organizing for openness: six models for developer involvement in hybrid OSS projects
- To Type or Not to Type: Quantifying Detectable Bugs in JavaScript
- Characterizing Software Engineering Work with Personas Based on Knowledge Worker Actions
- Commenting source code: is it worth it for small programming tasks?
- Two Papers on Errors
- Do Software Developers Understand Open Source Licenses?
- Two Papers About the Blackbox Project
- Compiler Error Messages Considered Unhelpful
- What Code is Deliberately Excluded From Test Coverage, and Why?
- Two Studies of Regular Expressions
- Software Development Waste
- Beyond the Code Itself: How Programmers Really Look at Pull Requests
- Privacy Threats in Intimate Relationships
- Errors in SQL Queries
- Gang of eight: a defect taxonomy for infrastructure as code scripts
- 9.6 Million Links in Source Code Comments: Purpose, Evolution, and Decay
- Code and commit metrics of developer productivity: a study on team leaders perceptions
- Toxic Code Snippets on Stack Overflow
- How Agile Teams Make Self-Assignment Work
- Two Papers on Python Language Features
- Modern Code Review
- On the Nature of Merge Conflicts
- Cheating Death: A Statistical Survival Analysis of Publicly Available Python Projects
- Please help these researchers learn more about what you do
- Mea culpa: How developers fix their own simple bugs differently from other developers
- Task Interruption in Software Development Projects
- The Impact of Rapid Release Cycles on the Integration Delay of Fixed Issues
- Abbreviated vs. Full-Word Identifier Names
- We're Back
2016
- Hiatus
- Test-Driven Development
- Revisiting the Anatomy and Physiology of the Grid
- FIDEX: Filtering Spreadsheet Data using Examples
- Apex: Automatic Programming Assignment Error Explanation
- Purposes, Concepts, Misfits, and a Redesign of Git
- Paradise Unplugged
- Five From ICER'16
- You Keep Using That Word…
- A Multi-Site Joint Replication of a Design Patterns Experiment Using Moderator Variables to Generalize Across Contexts
- ACM Permits Authors to Post Open Access Copies of Their Own Work
- The Role of Ethnographic Studies in Empirical Software Engineering
- Do Code Smells Hamper Novice Programming?
- Perspectives on Data Science for Software Engineering
- An Interview with Andreas Stefik
- Polymorphism in Python
- Frequency Distribution of Error Message
- Parallelism in Open Source Projects
- Too Many Knobs
- A Software Engineering Homunculus
- Perceived Relevance
- Novice Programming Mistakes
- Hidden Truths in Dead Software Paths
- Goto in C
- When, How, and Why Developers (Do Not) Test in Their IDEs
- Pull-Based Development
- Code Ownership Revisited
- BigDebug
- Maintaining Java ORM Code
- Java Exception Handling
- Game Postmortems
- Finding Security Bugs
- Extremely Angry
2015
- Software Developers' Perceptions of Productivity
- A Hostage Situation
- On the Comprehension of Program Comprehension
2014
- Simple Testing Can Prevent Most Critical Failures: An Analysis of Production Failures in Distributed Data-Intensive Systems
- Cassandra: Proactive Conflict Minimization through Optimized Task Scheduling
- Happy Software Developers Solve Problems Better: Psychological Measurements in Empirical Software Engineering
- An Empirical Investigation into Programming Language Syntax
2013
- A Modest Proposal
- LASE: Locating and Applying Systematic Edits by Learning from Examples
- The Essence of Software Engineering
- Automatic Patch Generation Learned from Human-Written Patches
- How, and Why, Process Metrics Are Better
- Reducing Human Effort and Improving Quality in Peer Code Reviews using Automatic Static Analysis and Reviewer Recommendation
- UML in Practice
- The MSR Cookbook: Mining a Decade of Research
- It's Not a Bug, It's a Feature: How Misclassification Impacts Bug Prediction
- Formal Specifications Better Than Function Points for Code Sizing
- Does Bug Prediction Support Human Developers? Findings From a Google Case Study
- Automatic Patch Generation Learned from Human-Written Patches
- First Impressions of MSR
- A Characteristic Study on Failures of Production Distributed Data-Parallel Programs
- Halving Fail Rates using Peer Instruction
- Experimental Assessment of Software Metrics Using Automated Refactoring
2012
- Why We Need Evidence
- Empirical Evidence for the Value of Version Control?
- Two Solitudes Illustrated
- How do Software Architects Consider Non-functional Requirements: An Exploratory Study
- An Experiment About Static and Dynamic Type Systems
- Shaping the Next Generation (or, the exam defines the course defines the discipline)
- Using topic modelling to understand requirements
- Ten Questions for Researchers
- Clustering Duplicate Crash Reports
- Programmer Information Needs After Memory Failure
- Usability Analysis of Visual Programming Environments: a 'Cognitive Dimensions' Framework
- Combining Functional and Imperative Programming for Multicore Software: An Empirical Study Evaluating Scala and Java
- Software Development Estimation Biases: The Role of Interdependence
- Open Access Research at NWIT, and Everywhere
- Supporting Professional Spreadsheet Users by Generating Leveled Dataflow Diagrams
- Willingness to Share Research Data Is Related to the Strength of the Evidence and the Quality of Reporting of Statistical Results
- Do Faster Releases Improve Software Quality?
- Cohesive and Isolated Development with Branches
- Code Simplicity
- Example Embedding
- On the Naturalness of Software
- Ensemble Effort Estimation
- Component Reuse vs. Snippet Remixing
- Social Coding in GitHub
- Looking at the Same Thing in Pair Programming Tasks
- Teachers Matter—Do Programmers?
- Realizing quality improvement through test driven development
- A Survey of the Practice of Computational Science
- Got Issues? Do New Features and Code Improvements Affect Defects?
- The Effects of Stand-Up and Sit-Down Meeting Formats on Meeting Outcomes
2011
- Factors that Affect Software Systems Development Project Outcomes
- Research In Progress: How Mozilla Builds Software
- A Decade of Research and Development on Program Animation: The Jeliot Experience
- Online vs. Face-to-Face Pedagogical Code Reviews: An Empirical Comparison
- The FCS1: A Language Independent Assessment of CS1 Knowledge
- Codermetrics?
- A Field Study of API Learning Obstacles
- Software Requirements Change Taxonomy: Evaluation by Case Study
- Author Response: Quorum vs Perl vs Randomo Novice Accuracy Rates
- An Empirical Comparison of the Accuracy Rates of Novices using the Quorum, Perl, and Randomo Programming Languages
- Three Results, Many Definitions
- Three Empirical Studies From ESEC/FSE'11
- Announcement: Empirical Software Engineering at American Scientist
- The Impact of Irrelevant and Misleading Information on Software Development Effort Estimates
- The IROP paper
- Experiences of Using Pair Programming in an Agile Project
- Variability and Reproducibility in Software Engineering: A Study of Four Companies that Developed the Same System
- Proactive Detection of Collaboration Conflicts
- Does Adding Manpower Also Affect Quality?
- Don't Touch My Code!
- Comparing the Defect Reduction Benefits of Code Inspection and Test-Driven Development
- What Makes a Good Bug Report?
- What Michael Feathers Thinks You Should Read
- Is Transactional Programming Actually Easier?
- Creating and Evolving Developer Documentation
- Three Empirical Evaluations of UML
- 'Cloning considered harmful' considered harmful
- An Empirical Study of Build Maintenance Effort
- A Teamwork Model for Understanding an Agile Team
- Usability Implications of Requiring Parameters in Objects' Constructors
- Effects of Personality on Pair Programming
- Understanding Broadcast Based Peer Review on Open Source Projects
- Debugging in the (Very) Large
- Webinars on the Architecture of Open Source Applications July 13 and 20
- The social dynamics of pair programming
- The Confounding Effect of Class Size on the Validity of Object-Oriented Metrics
- Requirements Prioritization in Agile Projects: Insights from a Case Study
- Specification and Verification: The Spec# Experience
- Let's Go to the Whiteboard
- Theory and Practice
- Refactoring Pipe-like Mashups for End-user Programmers
- Ownership, Experience, and Defects
- Organizational Volatility and Its Effects on Software