Daily task manager app The Daily Life of Software

Daily task manager app The Daily Life of Software

What is a good workday for a software developer? What is a typical workday? We seek to answer these two questions to learn how to make good days typical. Concretely, answering these questions will help to optimize development processes and select tools that increase job satisfaction and productivity. Our work adds to a large body of research on how software developers spend their time. We report the results from 5,971 responses of professional developers at Microsoft, who reflected about what made their workdays good and typical, and self-reported about how they spent their time on various activities at work. We developed conceptual frameworks to help define and characterize developer workdays from two new perspectives: good and typical. Our analysis confirms some findings in previous work, including the fact that developers actually spend little time on development and developers’ aversion for meetings and interruptions. It also discovered new findings, such as that only 1.7 percent of survey responses mentioned emails as a reason for a bad workday, and that meetings and interruptions are only unproductive during development phases; during phases of planning, specification and release, they are common and constructive. One key finding is the importance of agency, developers’ control over their workday and whether it goes as planned or is disrupted by external factors. We present actionable recommendations for researchers and managers to prioritize process and tool improvements that make good workdays typical. For instance, in light of our finding on the importance of agency, we recommend that, where possible, managers empower developers to choose their tools and tasks.

 

Satisfied developers are more productive and write better code [1], [2], [3], [4]. Good workdays increase developer job satisfaction [5]. Understanding what differentiates good workdays from other days, especially atypical days, will help us make good days typical. This work seeks just this understanding. Understanding typical and atypical work- days will enable us to establish a baseline for comparison
with other developer workdays and make more informed decisions about process improvements.
Development is a multistage process with complicated interactions across the stages. These interactions mean that we cannot consider each stage in isolation, but need consider the process as a whole. We need a holistic understanding of how software developers spend their time at work. Without a holistic understanding, one might think that developers, because they “develop”, spend most of their time writing code. However, developers spend surprisingly little time with coding, 9% to 61% depending on the study . Instead, they spend most of their time collecting the information they need to fulfill development tasks through meetings, reading documentation or web searches, helping co-workers, and fulfilling administrative duties. The conventional wisdom is that email is a big source of distraction and frustration. We show that, to the contrary, email activity has little effect on a workday’s perceived goodness (Section 5.1). Hence, focusing just on one development activity can miss important opportunities for productivity improvements

We have therefore set out to better understand how to make good days typical to increase developer job satisfaction and productivity. Since a review of existing research revealed no work that attempted to define or quantify what a good and typical developer workday is, we studied developers’ workdays from these two new perspectives 1. We conducted a large-scale survey at Microsoft and asked professional
software developers whether they consider their previous workday to be good and typical, and related their answers and reflections to their self-reports of the time spent on different activities at work. From now on, when we describe good and typical developer workdays, we refer to developers’ self-reports; we discuss the validity of this method in Section 4.3. We received 5971 responses from professional software
developers across a four month period. From these responses,

we developed two conceptual frameworks to characterize developers’ good and typical workdays. When we quan-titatively analyzed the collected data, we found that two main activities compete for developers’ attention and time at work: their main coding tasks and collaborative activities. On workdays that developers consider good (60.6%) and typical (64.2%), they manage to find a balance between these two
activities. This highlights the importance of agency, one of our key findings that describes developers’ ability to control their workdays, and how much they are randomized by external factors such as unplanned bugs, inefficient meetings, infrastructure issues

Our results stem from a large-scale survey with 5971 responses, where professional software developers reflected about what made their workdays good and typical, and where they self-reported how they spent their time on the previous workday. In contrast to related work using primarily automated tracking, by using self-reports we capture unanticipated events in each developer’s own classification at scale. Our scale also gives us the resolution to uncover nuances, e.g. what makes developers happy and satisfied
varies with their seniority.

admin

Recent Posts

What Probability basics for machine learning with example code?

Probability is a fundamental concept in machine learning, as many algorithms and models rely on probabilistic reasoning. Here's a brief…

1 year ago

Application of machine learning with code example?

Certainly! Here's an example of how machine learning can be applied to predict whether a customer will churn (leave) a…

1 year ago

Python: Gridsearch Without Machine Learning with example code?

In the context of machine learning, grid search is commonly used to find the best hyperparameters for a model. However,…

1 year ago

Explain about Deep learning and machine learning with example?

Certainly! Let's start by explaining what machine learning and deep learning are, and then provide examples for each. Machine Learning:…

1 year ago

An example of machine learning deployment?

Sure, here's an example of deploying a machine learning model for a simple classification task using the Flask web framework:…

1 year ago

How will you retrieve data for prediction in machine learning with example code?

Retrieving data for making predictions using a trained machine learning model involves similar steps to retrieving training data. You need…

1 year ago