Course syllabus
Course-PM
DAT520 / DIT849 Behavioral software engineering lp4 VT22 (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 and Lucas Gren, lucas.gren@cse.gu.se
Course purpose
Much of software engineering research, as well as practice, focus 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 23rd at 10:15 in Svea 118. For rooms used in the course please see the schedule in TimeEdit: 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 is the final element of the course. For some exercises we will have industry visitors to discuss the themes in the course and how they connect to software development work in 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 with an introduction to the field as well as an outlook to the future. Outline of themes:
- Introduction to BSE
- Extracting knowledge from research papers (Meta)
- Individuals:
- Personality and Cognitive Biases
- Motivation and Attitudes
- Experience and Emotion
- 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 from software development both individually and in groups/projects and share with the class. Quizzes will be used at the start of some course events that can give bonus credits (towards higher grades) on the final examination. Bonus points will also be given by active participation in discussions with industry visitors.
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. Some assignments are done individually while others are done in groups. Presentation days for assignments (1 and 3) are mandatory/compulsory and all students need to be present to pass the course. 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".
Seminars are given on Mondays and Wednesdays 10:15-12:00 starting from Wednesday, March the 23rd. 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 during 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:
https://join.slack.com/t/slack-wea5066/shared_invite/zt-15duegm3o-KmFCJs7KelftoUUJeULPug
All deadlines are firm on the date and time stated. No exceptions.
Changes made since the last occasion
The course is new and has not been given before VT2022; there are thus no changes to the course.
Learning objectives and outcomes
Learning objectives (after completion of the course the student should be able to):
- 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, 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.
- 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
- 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 examination (4.5 credits of the total 7.5 credits) of the course. A final, individual (take home) essay/report 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 3 assignments are included in the course and they are all compulsory for passing the course:
- Group assignment (1 credit): What is and is not BSE and why (not)?
- Your group will prepare a presentation for the rest of the class on a related area to BSE
- Examination: A circa 20-minute presentation followed by a discussion in the class led by the group.
- The output that is judged:
- The presentation itself, ability to lead the discussion
- Slides from your presentation
- A 2-page report summarizing your main findings as well as reflections based on the discussion in class
- Individual assignment (1.5 credit): Me in Software Development
- You will reflect on what drives you, how you approach software development both as an individual and in teams.
- 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.
- Examination: 3-page report
- The output that is judged:
- Report
- Oral discussion with individual students will be used in cases of doubt
- Group assignment (2 credits): Research methods of BSE
- Your group will write a report and prepare a presentation about a research method that can and is used in BSE
- Examination: A 30-minute presentation followed by a discussion in the class led by the group
- The output that is judged:
- The presentation itself, ability to lead the discussion
- Slides from your presentation
- A 4-page guideline that defines and describes the research method and also gives concrete guidance on how to use it for BSE studies
The deadlines and presentation dates are set after discussion with students in the first week of the course. 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, 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 by multiple, written assignments and presentations during the course. Some of the assignments are carried out individually, and some in small groups of normally 2-5 students.
The final, individual examination (3 credits) is a take-home exam/essay where students get 3 days to work 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 students' own words, and be argued from the students' 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 June 4th, 2022 at 16: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 examiner can complement with oral discussion in cases of doubt but clear plagiarism will lead to failing the course. This also goes for other written material and assignments produced by students during the course.