HS24 – Software Evolution and Developer Productivity Seminar

Changes to this page

  • 20.09.2024: updated kick-off slides
  • 23.09.2024: shortened reserved time for final presentations on 19.12.2024
  • 08.10.2024: added informational slides for phase 2 (research proposal phase)

 

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.

 

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.

 

Prior Knowledge

Content of software engineering and programming. Open for bachelor and master students.

 

Seminar Organization

This section only provides an overview. Refer to the kick-off slides for all (binding) details.

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 class (weeks 2-6), we’ll discuss one topic (see below):

  • One week, you’ll lead a discussion on a topic: You will be assigned a paper (based on your preferences) that you will read and create a presentation on in class (max. 10mins). After the presentation, moderate the discussion on that paper, the topic and the papers that others have read (30 mins).
  • The other four weeks: Write a short response paper (max. 250 words) where you answer the topic-question (listed below). Focus on major contributions, novelty and research methods, instead of just summarizing the paper. Identify one additional paper that is related and relevant with respect to the topic and the given two papers. Write a short (max. 100 words) explanation of why the third paper is relevant and how it fits the context. It’s okay to only skim the third paper. Name the short response ResponsePaper_Topic[X]_[StudentId].pdf and upload it to the Seafile Dropfolder latest midnight before class.
  • Read the paper(s) on Perusall and collectively add annotations (comments and questions).
  • Below, you will find examples as well as additional hints in the kick-off slides.

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 4 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.

 

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.

 

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).

Schedule and deadlines

Date and time Topic/deliverable Material
19.09.2024 14:00 – 15.45
(BIN 1.D.29)
Kick-off Kick-off-slides (PDF, 2.3 MB)

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

Response Paper & Discussion Phase
20.09.2024 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
21.9.2024 EOD Receive email about Topic and group assignment
26.09.2024 14:00 – 15.45
(BIN 1.D.29)
Topic 1: Productivity Response Paper Samples (PDF, 0.6 MB)
03.10.2024 14:00 – 15.45
(BIN 1.D.29)
Topic 2: Software Engineering with Generative AI (see samples above)
10.10.2024 14:00 – 15.45
(BIN 1.D.29)
Topic 3: Socio-technical nature of development (see samples  above)

Research Proposal Phase Slides (PDF, 0.3 MB)

17.10.2024 14:00 – 15.45
(BIN 1.D.29)
Topic 4: Task Context (see samples  above)
24.10.2024 14:00 – 15.45
(BIN 1.D.29)
Topic 5: Developer Communication and Coordination (see samples  above)
Research Proposal Phase
05.11.2024 23:59 Submission of draft proposals on Seafile Dropfolder

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

Research Proposal Samples (PDF, 2.1 MB)
07.11.2024 14:00 – 15.45
(BIN 1.D.29)
Presentation of draft proposals
06.12.2024 23:59 Submission of final proposals on EasyChair

The proposal should be max. 4 pages double-column format plus max. 2 for references, ACM Overleaf Format see more details below

(see samples above)
12.12.2024 23:59 Peer Review due (also on EasyChair) Review Template (TXT, 2 KB), Review Examples (PDF, 76KB)
19.12.2024 14:00 – 15.45
(BIN 1.D.29)
Presentation of the proposals

 

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

Using an LLM to Help with Code Understanding. Nam, D., Macvean, A., Hellendoorn, V., Vasilescu, B., & Myers, B. (2024, April). In Proceedings of the IEEE/ACM 46th International Conference on Software Engineering.

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))