Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

By Gail C.

Murphy, Co-Founder and Chief Scientist


In collaboration with Andr Meyer (U. Zurich), Thomas Fritz (U. Zurich) and Thomas Zimmermann (Microsoft Research)

CONNECTING THE WORLD OF SOFTWARE DELIVERY

Understanding Software Development


Productivity from the Ground Up

Understanding Software Development


Productivity from the Ground Up

Executive Summary

What do software developers do all day?

What do developers describe as a productive day?

What keeps developers from having a productive day?

How would developers like to assess their own productivity?

Improving developer productivity can start from the ground up.

To Learn More

CONNECTING THE WORLD OF SOFTWARE DELIVERY

Table of Contents

Understanding Software Development


Productivity from the Ground Up

Executive Summary
Are you a software developer wanting to provide more value to your organization each day? Are
you a software development manager interested in improving the output of a team? Are you a
CIO striving to meet the needs of your organization for software?
There have been many attempts to measure the productivity of software developers. At a first
glance it should be simple. After all,

output
input

CONNECTING THE WORLD OF SOFTWARE DELIVERY

productivity =

But how can we measure the output of a software developer or a software development team?
Simple measures, like counting lines of code produced, dont suffice since there is little use to
count lines that may be defective. Many more complicated approaches have been proposed to
assess output, but a solid measure that works across many kinds of development have eluded
the software engineering research community.
Measuring input also isnt easy to quantify. Should we count the number of individuals? Number
of hours spent coding? Total hours spent working?
Instead of focusing on measurement, what if we investigate how developers perceive their own
productivity? Developers are closest to the software being produced and it is possible that when
they perceive themselves as productive that they are adding value to the software project on
which they are working. If we can determine what factors help lead to perceptions of
productivity, we can work to recreate those factors and help developers feel productive more
often. If we can determine what factors hinder productivity in the eyes of software developers,
we can also help to reduce the occurrence of those factors. With these steps, we can find a path
to happy and productive software developers.

Understanding Software Development


Productivity from the Ground Up

What do software developers do all day?


How often have you finished a day of work and wondered where all the time went? As part of
our investigations into software development productivity, we wondered: what do software
developers do all day?
To gain insight into this question at a detailed level, we observed 11 professional software
developers from three international software development companies of varying sizes for four
hours each. By recording observations about every tool used and task performed, we found that
these developers spent most of their time (33%) reading and writing source code. The next two
most common activities based on time spent were informal meetings (13%) and testing (12%). All

CONNECTING THE WORLD OF SOFTWARE DELIVERY

other activities were in the single digits, such as debugging (4%), code reviews (2%) and email
(5%).
These results include some good news if you care about productivity since time spent writing
code is more likely to result in added value to the software product than other activities like
documentation. However, much of the developers time is spent on other activities. We need to
be asking whether these activities are essential for providing value for the organization, which
can be streamlined or optimized and which might be eliminated.

What do developers describe as a productive day?


The activities occurring dont provide any information about when developers perceive
themselves as productive. To gain insight into factors that help contribute to software
developers perceiving productivity, we asked developers, in a survey, to complete the phrase: I
have a productive day when I .
Based on the responses of 379 developers, we learned that the top two factors leading to a
productive day are when developers are able to complete tasks or goals (53%) and when they
are able to achieve flow and have no or few interruptions or distractions. The following figure
provides an overview of the top four reasons cited for a productive day.

Understanding Software Development


Productivity from the Ground Up

These results suggest that tools and practices that encourage goal setting and reduce
interruptions could play an important role in creating more opportunities for developers to feel

CONNECTING THE WORLD OF SOFTWARE DELIVERY

productive, hopefully also resulting in increased actual productivity.

What keeps developers from having a productive day?


It seems unlikely that every day is a productive day for developers. We also asked the
developers we surveyed which activities they find productive and which they find unproductive.
The green graph below shows the top four activities mentioned as productive; the red graph
below shows the top four activities mentioned as unproductive.

The developers clearly see coding as productive activity (71%). The attitude of developers to
meetings is mixed: 17% of the developers reported meetings as a productive activity whereas
58% reported meetings as unproductive. Reasons for meetings being reported as productive

Understanding Software Development


Productivity from the Ground Up

included decision making occurring, the meeting having a clear focus or goals, and the meeting
improving relationships between developers.
If you want to look for one place to start improving productivity for yourself, for your team or for
your organization, you may want to look at improving skills for selecting which meetings are
needed and ensuring meetings are conducted using best practices.

How would developers like to assess their own productivity?


Self-quantification approaches are becoming increasingly widespread in the general community.
How many people do you know who have started tracking their activity using personal fitness

CONNECTING THE WORLD OF SOFTWARE DELIVERY

devices or smart watches? Similar to how counting steps can lead individuals to better fitness
levels, we wondered whether there were similar measures developers use or would be interested
in using to track their productivity.
We asked the 379 developers we surveyed to rank 23 possible measures on a scale of 1
(unhelpful) to 5 (helpful) for assessing their own productivity. No single or small set of measures
clearly stood out as being the measure or measures to use. The measure ranked as most helpful
was the number of work items (tasks, bugs) I closed followed by The time I have spent on each
work item. Interestingly, the third highest ranked measure was The time I spent reviewing
code, which shows developers care about more than just the number of lines of code they
individually produce.
While there is no single measure of interest to all developers, there are opportunities for
surfacing information about many measures at once through personal dashboards. Making
information about a developers own work visible to the developer holds promise for enabling
developers to reflect upon, and look for ways, to improve their own productivity.

Understanding Software Development


Productivity from the Ground Up

Improving developer productivity can start from the ground up.


In the early days of manufacturing, Frederick Taylor performed time motion studies to try to
increase the efficiency of the manufacturing process. Not surprisingly, workers did not like being
treated as cogs in a machine and tended to work at the slowest pace that would go unpunished.
By looking at productivity from the viewpoint of developers, we are taking the opposite
approach from Taylor. We believe software developers who perceive themselves as productive
will typically be generating value for the software development project. By understanding what
factors help and hinder developer productivity, we can find actionable approaches to improve a

CONNECTING THE WORLD OF SOFTWARE DELIVERY

developers workday with the aim of improving overall software development productivity.
If you are a developer, consider asking yourself what makes for a productive day or not and what
measures you might use to track your own perceived productivity. If you are a manager of a
software development team, consider asking your team about factors hindering productivity,
with a particular focus on how meetings are viewed. If you are a CIO, consider a survey to learn
from your software developers how to focus developers workdays on productive activities. The
more productive developers feel and the happier they are at work, the more likely it is that the
overall productivity of the organization will rise.

Understanding Software Development


Productivity from the Ground Up

To Learn More
Details of the results of the studies described can be found in:
Software Developers Perceptions of Productivity. Andr N. Meyer, Thomas Fritz, Gail C.
Murphy and Thomas Zimmermann. Appeared in the ACM SIGSOFT FSE Conference, 2014.
https://sealuzh.wordpress.com/2014/08/18/a-pre-print-of-software-developers-perceptions-

Integrate your tools.


Connect your software
development and delivery.
Learn more about Tasktop Sync.
http://tasktop.com/tasktop-sync

Unlock the data from your tools.


Get unprecedented visibility into
your software lifecycle.
Learn more about Tasktop Data.
http://tasktop.com/tasktop-data

tasktop.com
info@tasktop.com
Global Headquarters: Vancouver, Canada
U.S. Headquarters: Austin, TX

2016 Tasktop Technologies, Inc. All rights reserved. Tasktop and the
Less is More logo (<=>) are registered trademarks of Tasktop Technologies, Inc.
All other trademarks are the property of their respective owners. TTWPUSDP1602

CONNECTING THE WORLD OF SOFTWARE DELIVERY

of-productivity-for-fse14-is-available/

You might also like