Enabling Good Work Habits in Software Developers through Reflective Goal-Setting

I am thrilled to announce our most recent paper on how we are helping developers become more productive and enable better work habits through reflective goal-setting. IT was recently accepted to the IEEE Transactions on Software Engineering Journal.

Co-Authors: André N. Meyer (University of Zurich), Gail C. Murphy (University of British Columbia), Thomas Zimmermann (Microsoft Research), Thomas Fritz (University of Zurich).

You may download the pre-print here.


Presented at Virtual ICSE 2020

Extended Abstract

Software developers are generally interested and motivated in developing better habits to increase their workplace productivity and well-being at work, but have difficulties identifying concrete goals and actionable strategies to do so. It is therefore desirable to gain a better understanding of what good work habits and behaviors are, and how we can support developers with the identification of self-improvement opportunities to build better and maintain good habits at work. Prior research has examined developers’ existing work habits, specifically the time they spend on various activities at work, their organization of work into tasks, and causes of fragmented work. Recently, researchers have also looked into the attributes and habits of great software developers, and found that one key trait of successful developers is growth orientation (i.e. an interest in constantly learning and increasing efficiency). Goal-setting is one way to foster behavior change, since it allows individuals to define a target or outcome, and make progress towards their goal. However, identifying concrete and relevant goals can be challenging, which is why an active area of research is investigating how self-reflection can help individuals to get insights into positive and negative habits, and support them with the identification of meaningful goals that motivate positive behavior changes.

While developers generally want to play an active role in setting their own goals for work, we have not been able to find prior work that investigated goals developers set to improve work habits and productivity. This is why we wanted to study the goals that developers set for themselves to improve and maintain good habits at work, the strategies they pursue to achieve those goals, and the impact their goal-setting has on productivity and well-being. Even though self-reflection has previously been shown to have great potential to foster goal-identification, developers rarely reflect on or review their work in practice. Hence, we further aimed to examine whether encouraging developers to self-reflect continuously on work, results in meaningful insights about work and leads to any work habit goals and -improvements. In particular, our work seeks to answer three research questions on (1) the types of goals that developers set for themselves to improve and maintain good work habits, (2) the strategies to make progress towards these goals, and (3) the potential impact of reflective goal-setting on goal-identification, goal-achievement monitoring and work habits.To investigate these research questions, we combined self-reflection and goal-setting to design a reflective goal-setting study, inspired by the Personal Software Process (PSP) by Humphrey and diary studies in other areas of research. Our study prompts participants on a daily basis to reflect on their work, and asks them to set concrete goals and actionable strategies for improving their work habits. 52 professional software developers completed our study and reflected for two to three work weeks.

Participants’ Self-Reports on the Value and Impact of Reflective Goal-Setting
Participants’ Self-Reports on the Value and Impact of Reflective Goal-Setting

Our reflective goal-setting study resulted in a rich set of work habit goals and strategies that we analyzed. They can be broadly categorized into improving time management, avoiding deviations from planned work, improving the impact on the team, maintaining work-life balance, and continuous learning. We found that continuous self-reflection can be an important step towards productive self-improvements in the workplace, since participants stated that it supports the identification of goals (80.8%) and actionable strategies (83.3%). The daily self-reflections not only increased developers’ awareness about work habits, progress and achievements (84.5%), but also led to productive (short-term) behavior changes (79.6%). As a result, while initially being skeptical towards ‘journaling’ their work, most participants (96.1%) stated afterwards that they could imagine to continue self-reflecting on a regular basis. Overall, we conclude that continuous reflective goal-setting can enable developers to improve and maintain good work habits.

We discuss these results with regards to prior work on self-reflection with other types of knowledge workers, and how tools could support developers with their reflective goal-setting and how they might foster long-term self-reflection.