HS23 – Software Evolution and Developer Productivity Seminar

Overview

Software requires constant evolution due to changing customer needs, bugs that have to be fixed, or changes in the environment. Lehman’s first law of software evolution states that a software system must be continuously adapted, or it becomes less and less useful. The constant change poses many challenges, and both researchers and practitioners have recognized the importance of studying and supporting software evolution and the humans involved in the process. In this seminar, we will cover some of the most relevant studies, approaches, and techniques that researchers have looked at in this context.

In this seminar, students will work on a specific research topic in software evolution and developer productivity. By the end of the course, students will be asked to deliver a research proposal. Furthermore, the students will take part in a simulated peer-reviewing process for the proposals. Finally, they will share as a presentation the results of their work and discuss them with the class.

For this seminar, you will be asked to read, analyze and discuss research papers, as well as work on and write a scientific report about a proposed topic in software engineering.

Grading Scheme

This course will be a project and paper-based course. The research proposal is the primary artifact of the course; the outcome of all projects will be a research proposal. To pass this course, you must pass the research proposal (obtain at least 50%) and must obtain a 50% overall mark that is based on the following:

  • 75%: Proposal, including continuous progress, meetings, write-ups (including final proposal and intermediate report), and presentation;
  • 25%: Readings, including active reading and collective annotations and discussions (Perusall), response papers, class participation, leading discussion (in-person class attendance is mandatory), and peer reviews of project reports.

Prior Knowledge

Content of software engineering and programming.

Assessment

  • Active reading of assigned papers, (collective) annotating and discussions (Perusall), response papers, and active class participation;
  • Presentation and moderation of a discussion topic;
  • Written proposal, scientific report, and oral presentations and discussions for a topic in software engineering;
  • Feedback on reports written by others (peer review).

Learning Objectives

At the end of this course, students should:

  • Have gained a deeper and broader understanding and knowledge of Software Engineering research by reading, analyzing, reflecting and discussing current and classic literature;
  • Be able to identify and discuss research problems and research questions as well as identify relevant related work;
  • Be able to write a research proposal in the form of a scientific report, and present and discuss ideas on an advanced topic in Software Engineering research with a focus on software evolution and developer productivity;
  • Be able to provide constructive feedback on a research proposal.

Seminar Organization

Kick-Off & Beginning

At the beginning of the seminar, students will be assigned a topic, a paper (based on preferences), and a partner to work on this topic.

Response Paper & Discussion Phase: For each lecture / discussion session of Topics 1-5:

  • Read the assigned papers on Perusall and collectively add annotations (comments and questions).
  • For teams leading a discussion: Each of the two teams assigned to a paper will present their paper and another relevant related paper they identified on the topic to the rest of the class (max. 15mins). Make sure to put both papers in context of each other and don’t just summarize one after the other. After the presentation, moderate the discussion (25 mins), make sure to prepare for it. The assigned teams also have to make sure to have read the other paper on the topic.
  • All other students: Identify one additional paper related and relevant with respect to the topic and the given two papers; write a short response paper (max. 200 words) of the additional paper. Do not just summarize it but provide your own perspective, thoughts on it. Name the short response LASTNAME_FIRSTNAME_WEEK[01-05].pdf.
  • Note, the additional paper has to be a full paper (i.e. >=9 pages) and from a top tier conference (e.g. ICSE, FSE, CHI) or journal (e.g. TSE, TOSEM, ToCHI).

Research Proposal Phase:

  • Each team has to draft a research proposal in the area of their topic and present their draft. The draft should be a maximum of 3 pages (+ pages for references) and should have a motivation, related work section showing the relevance of the research idea/question, and a section on the research question and approach. Note, the major focus of the draft should be on the related work overview and it should not just be an enumeration or summary of other papers in the area.
  • Until the end of the seminar, every team then refines their research proposal, writing a more complete related work section, specifying in more detail how they would go about addressing/answering the research question they pose (study method / study design), and what the motivation is. The final research proposal should be maximum 6 pages (+ pages for references). Again, the main focus is to have a good review of related work.
  • At the end of the course, the proposals are submitted and peer-reviewed by other students (in EasyChair).
  • At the last session the proposals are presented by the respective teams and the proposals will be peer evaluated by the reviewers.

Schedule and deadlines

Date and time Topic/deliverable Material
21.09.2023 14:00 – 15.45
(BIN 0.B.06) (noteinstead of BIN 1.D.29)
Kick-off Kick-off-slides (PDF, 1MB)

How to produce a literature review (PDF, 17 MB)

Response Paper & Discussion Phase
22.09.2023 13:00 Submission of 3 paper preferences and partner via Mail to Dr. André Meyer and Alexander Lill List of topics and papers, see below
28.09.2023 14:00 – 15.45
(BIN 1.D.29)
Topic 1: Productivity Response Paper Samples (PDF, 0.6 MB)
05.10.2023 14:00 – 15.45
(BIN 1.D.29)
Topic 2: Software Engineering with Generative AI (see samples above)
10.10.2023 14:00 – 15.45
(BIN 1.D.29) (note: it’s on a Tuesday instead of a Thursday)
Topic 3: Socio-technical nature of development (see samples above)
19.10.2023 14:00 – 15.45
(BIN 1.D.29)
Topic 4: Task Context (see samples above)
26.10.2023 14:00 – 15.45
(BIN 1.D.29)
Topic 5: Developer Communication and Coordination (see samples above)
Research Proposal Phase
01.11.2023 23:59 Submission of draft proposals on EasyChair

The proposal should be max. 3 pages double-column format plus max. 2 for references, ACM Format (e.g. Overleaf) see more details below

Research Proposal Samples (PDF, 2.1 MB)
02.11.2023 14:00 – 15.45
(BIN 1.D.29)
Presentation of draft proposals (per team max. 5 minutes presentation + 3 minutes Q&A)
05.12.2023 23:59 Submission of final proposals on EasyChair

The proposal should be max. 6 pages double-column format plus max. 2 for references, ACM Format (e.g. Overleaf) see more details below

(see samples above)
09.12.2023 23:59 Peer Review due (also on EasyChair) Review Template (TXT, 2 KB), Review Examples (PDF, 76KB)
14.12.2023 14:00 – 16.30
(BIN 1.D.29)
Presentation of the proposals (per team max. 10 minutes presentation + 8 minutes Q&A)

 

Topics

Note that we’re using Perusall to read, reflect on and discuss on the papers below.

Topic Papers
1. Productivity Software Developers’ Perceptions of Productivity. Meyer, Fritz, Murphy, Zimmermann. FSE’14.

Overcoming Distractions during Transitions from Break to Work using a Conversational Website-Blocking System. Tseng, Lee, Denoue, Avrahami. CHI 2019.

Topic-Question: What are the biggest impediments to software developer productivity, and how can we foster productive work?

2. Software Engineering with Generative AI Natural Language to Code: How Far Are We? Shangwen Wang, Mingyang Geng, Bo Lin, Zhensu Sun, Ming Wen, Yepang Liu, Li Li, Tegawendé F. Bissyandé, and Xiaoguang Mao. 2023. ESEC/FSE 2023

CodeCompose: A Large-Scale Industrial Deployment of AI-assisted Code Authoring. Murali, Maddila, Ahmad, Bolin, Cheng, Ghorbani, Fernandez, Nagappan. ESEC/FSE 2023.

Topic-Question: How can today’s generative AI approaches support software developers in writing software, and which are the risks?

3. Socio-technical nature of software development Socio-Technical Congruence: A Framework for Assessing the Impact of Technical and Work Dependencies on Software Development Productivity. Cataldo, Herbsleb, Carley. ESEM’08.

Putting it All Together: Using Socio-Technical Networks to Predict Failures. Bird, Nagappan, Gall, Murphy, Devanbu. ISSRE’09.

Topic-Question: How can we use the gained insights about the socio-technical nature of software development to improve the work lives of developers?

4. Task Context Latent Patterns in Activities: A Field Study of How Developers Manage Context. Chattopadhyay et al. ICSE’19.

Using Task Context to Improve Programmer Productivity. Kersten, Murphy. FSE’06.

Topic-Question: Which task context data is captured by the considered approaches and which are advantages and disadvantages of the respective methods?

5. Developer Communication and Coordination Communication, Collaboration, and Bugs: The Social Nature of Issue Tracking in Small, Collocated Teams. Bertram, Voida, Greenberg, Walker. CSCW’10.

How AI Developers Overcome Communication Challenges in a Multidisciplinary Team: A Case Study. Piokowski et al. CSCW’21.

Topic-Question: Which are communication and coordination challenges that hybrid software development teams face?
(note that hybrid work refers to when not everyone is working co-located, but remotely (such as from home))