Course syllabus

Course-PM

DAT520 / DIT849 Behavioral software engineering lp4 VT24 (7.5 hp)

The course is offered by the Department of Computer Science and Engineering

Contact details

Examiner: Robert Feldt, robert.feldt@chalmers.se

Course responsible: Robert Feldt, robert.feldt@chalmers.se

Teachers/Lecturers: Robert Feldt, Cristina Martinez Montes, montesc@chalmers.se, and Lucas Gren

Teaching assistant: Faezeh Mohammadi, faezehm@chalmers.se

  • faezehm@chalmers.se

Course purpose

Much of software engineering research, as well as practice, focuses on technical or process aspects of software development. In contrast, the Behavioral Software Engineering (BSE) course gives knowledge about how the humans that participate in and drive software engineering and development processes and organizations are key in making software projects successful. 

Humans are not always rational, but commonly irrational, and act in groups and organizational settings where politics, group norms, personal agendas, as well as unconscious biases and preconceptions govern and affect them. A deeper understanding of human nature helps software organizations better cater to the needs of their employees, build on their strengths as well as overcome their weaknesses, and, overall, increase the chance that software development work succeeds.

BSE is a relatively new area within Software Engineering that complements the technology and process focus that dominates the area today. It also introduces the research methods that are needed for BSE studies and discusses how they differ from many of the more traditionally and commonly used research methods.

Schedule

The course will start with an initial lecture on March 20th at 10:15 in Svea 118. For rooms used in the course please see the schedule in TimeEdit: Schedule in TimeEdit

Course literature

The course will be fully based on research papers as well as written material provided by the course teachers. A meta-goal of the course is that you also learn both where to find and access new research, directly from research papers. Each major theme of the course will have one research paper but also additional, introductory text. Students need not buy any book to participate in the course; all material will be provided from the Canvas page for the course.

Course design

The course is provided in the form of modules, which combine lectures, discussions, and supervised practical work with exercises in small groups (assignments). The exercises are both theoretical and practical in nature. A final, individual (take-home) essay/report and an oral discussion is the final element of the course. For some exercises, we will have industry visitors discuss the themes in the course and how they connect to software development work in the industry.

Modules are organized around themes that together span several units of analysis, from the individual software developer/engineer, over teams and groups, and on to the organizational level. This is complemented by an introduction to the field as well as an outlook on the future. Outline of themes:

  • Introduction to BSE
    • Extracting knowledge from research papers (Meta)
  • Individuals:
    • Experience and Emotion
    • Personality and Cognitive Biases
    • Motivation and Attitudes
    • Personal sustainability
  • Groups:
    • Norms and Creativity
    • Social factors on SW teams, Group dynamics, and maturity
  • Organizations:
    • Politics, happiness & freedom
    • Gender, ethics, and sustainability
  • Research methods (Meta):
    • Ethnography,
    • Interview studies,
    • Reflexivity and Validity Threats
  • Course summary and outlook:
    • BSE implications and effects,
    • Future of BSE in research & practice

The first module on introduction to Behavioral Software Engineering requires no preparation from students but for the other modules, students will need to read the material before coming to the associated course seminar/event. These seminars are organized as partly traditional lectures, with an introduction and overview from the teacher(s), and partly as discussion/reflection in groups and the whole class. It is important that students prepare for seminars by reading the assigned material but also taking an active part in discussions during the course events. Students should reflect on their own experience with software development both individually and in groups/projects and share it with the class. Quizzes can be used at the start of some course events and can give bonus credits (towards higher grades) on the final examination. Bonus points will also be given for active participation in discussion of the research papers that are the main course material.

The lab times on Monday and Wednesday afternoons 13:15-17:00 are used to work on, get help with, as well as present assignments and results. These times will be flexibly adapted to the different assignments outlined further below as well as to discussions that follow from the lectures/seminars. Some assignments are done individually while others are done in groups. Presentation days for assignments are mandatory/compulsory. Depending on the number of students in the course and the number of groups we might need to use multiple presentation days for some of the assignments. If so, they are all mandatory/compulsory. More details on assignments are stated below, under "Examination form".

Lectures/seminars are given on Mondays and Wednesdays 10:15-12:00 starting from Wednesday, March 20th. We basically follow the schedule in TimeEdit but Canvas is the main source of information and we will sometimes make exceptions from the TimeEdit schedule to better adapt to the current phase of the course. Students should check the Canvas page several times each week to stay on top of the latest information. Changes will also be posted as announcements in Canvas as well as on the course Slack channel. The slack channel will also be used as a shared Q&A for the course where students can post questions and get answers from the teachers. Students can of course also use normal email but please understand that Slack is the preferred communication channel and you are more likely to get faster replies there.

Link to join the course slack channel:

All deadlines are firm on the date and time stated. No exceptions.

Changes made in recent years

The course was given the first time in VT2022 so this is the 3rd instance of the course. Based on the experiences and feedback from 2022 here are the changes made for 2023:

  • One less group assignment, so there is now only one individual and one group assignment
  • Home exam is complemented by an oral discussion with a teacher
  • Pre-reading and discussion of papers in Perusall now gives further bonus points for the home exam

For 2024 we changed the group assignment to also include interviewing an industry practitioner or a researcher in relation to the group's chosen topic. We also changed the order of the assignments so that the individual, reflective assignment comes later in the course when student's have more experience and knowledge about the course topics.

Learning objectives and outcomes

Learning objectives (after completion of the course the student should be able to):

Knowledge and Understanding
  • Explain why human and social factors are critical in (successful) SE,
  • Describe the risks of focusing mainly on technology in SE,
  • Describe and explain what Behavioral Software Engineering (BSE) is and how it relates to socio-technical systems analysis, human factors studies, and Human-Computer Interaction,
  • Describe important units of analysis in BSE: individual, group, and organizational levels as well as how they interact,
  • Describe key cognitive biases and how they affect software developers,
  • Explain models of team development and maturity and how they relate to BSE,
  • Give an overview of recent, empirical research on BSE.
 
Skills and Abilities
  • Analyze why an SE intervention, like a process improvement or the introduction of a new tool, failed or succeeded from a BSE perspective,
  • Diagnose software teams based on their developmental maturity,
  • Propose interventions to improve a software development team based on a BSE analysis,
  • Identify cognitive biases that affect a particular developer or team,
  • Design a SE study using research methods suited to BSE
 
Judgment Ability and Approach
  • Analyze and hypothesize about sources of software project failures, and reflect on whether they are primarily because of technical or behavioral/human factors,
  • Assess and discuss ethical aspects and concerns as well as sustainability in software development on an individual and societal level

Link to the Chalmers syllabus on Studieportalen: Study plan

Link to Study Plan GU: GU study plan

Examination form

Individual- and group-based exercises and assignments are the basis for the examination (4.5 credits of the total 7.5 credits) of the course. A final, individual (take-home) essay/report complemented with an oral discussion with a teacher is also part of the examination (3.0 credits of the total 7.5 credits). Both the assignments and the take-home essay are graded U/3/4/5 for Chalmers and U/G/VG for GU.

A total of 2 assignments are included in the course and they are all compulsory for passing the course:

  1. Group assignment (2.5 credits): State-of-the-art BSE research and it's industrial practice
    1. Your group will prepare a report and a presentation for the rest of the class on a sub-topic of BSE where there is recent, state-of-the-art research and relate that to industrial practice.
    2. Examination: A circa 20-minute presentation followed by a discussion in the class led by the group. 5-page report.
    3. The output that is judged:
      1. The presentation itself, the ability to lead the discussion
      2. Slides from your presentation
      3. A 5-page report summarizing your main findings as well as a 1-page reflection based on the discussion in class
  2. Individual assignment (2 credits): Me in (Behavioural) Software Development
    1. You will reflect on what drives you, and how you approach software development both as an individual and in teams. Your reflections will be based on the course contents as well as the class interview(s) with industry practitioners.
    2. You will also describe your dream organization for software development and how it supports both you and your teams to be both successful and happy.
    3. Examination: 3-page report
    4. The output that is judged:
      1. Report
      2. Oral discussion with individual students will be used in cases of doubt

Assignment-specific rubrics are available for how each assignment is judged and graded. The rubric details 4 levels for each criterion which corresponds to 0, 1, 2, and 3 points. The points for each criterion are summed together to give the final score. For all judged output the points are then mapped to grades according to:

  • Chalmers:
    • 0 - 49% => Fail
    • 50%-64% => 3
    • 65%-79% => 4
    • 80-100% => 5
  • GU:
    • 0 - 49% => Fail
    • 50-79% => G
    • 80-100% => VG

The course is examined by an individual written exam, carried out as a home exam, and complemented by an oral discussion with a teacher, and by multiple, written assignments and presentations during the course. Some of the assignments are carried out individually, and some are in small groups of normally 2-6 students. 

The final, individual examination (3 credits) is a take-home exam/essay where students get 3 days to work on answers to BSE-related questions. Questions are analytical and students can access any available course or other material to help research and prepare their answers. However, the written essay that is handed in must be written in the student's own words, and be argued from the student's point of view. The written essay is graded from 0-100 points based on a detailed rubric. Bonus points accrued from quizzes during the course can be used to get a higher grade (but not to increase from below 50% up to passing the course).  The deadline for handing in the take-home essay is May 31st, 2024 at 17:00. The submission is in the form of a PDF file that is uploaded in Canvas. We also recommend that students also mail their reports directly to the examiner and wait for an acknowledgment that the file has been received. Repeat submissions are not allowed.

Text or ideas cannot be plagiarised and the student must be clear and explicit on which material and sources their answers are based. The written exam is complemented with oral discussion with a teacher. Clear plagiarism which cannot be backed up by argumentation and answers in the oral discussion will lead to failing the course. This also goes for other written material and assignments produced by students during the course.

We allow the use of AI-based tools such as ChatGPT and similar. However, your answers must always be your own and checked by you as well as understood by you. If you cannot explain your answers in oral discussion you cannot pass the course. Also, the use of AI-based tools must be clear in your reports and in the home exam, i.e. you must describe how and for what it has been used, ideally by linking to the specific sessions you had with any AI-based models.

Course summary:

Date Details Due