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.
Lecturers | |
Room |
BIN 1.D.29 |
Lecture Day and Time |
Thursdays 2 – 3.45pm (except 10.10.2023) |
Language |
English |
AP (ECTS) |
3 ECTS |
Target Audience |
BSc and MSc students in Informatics (see VVZ) |
Prerequisites |
Software Engineering |
Registration |
Registration at the kick-off meeting & Modulbuchung |
Contact |
Please email André Meyer and Alexander Lill for any administrative matters and questions |
Tools |
Perusall for active reading and annotating; EasyChair for reviewing proposals. |
Schedule and deadlines
Date and time | Topic/deliverable | Material |
---|---|---|
21.09.2023 14:00 – 15.45 (BIN 0.B.06) (note: instead of BIN 1.D.29) |
Kick-off | Kick-off-slides (PDF, 1MB) |
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? |