By Gail C. Murphy (University of British Columbia) and Mik Kersten (CTO, Planview), as winners of the ACM SIGSOFT Impact Paper Award for 2022
A lot has changed in the world of software since we published “Using Task Context to Improve Programmer Productivity” in FSE 2006. We would like to thank the awards committee that chose this paper for a SIGSOFT Impact Paper Award in 2022 and we look forward to presenting a talk on the paper and its impact at ESEC/FSE 2022.
From our perspective, there are two central ideas described in the paper that have stood the test of time. The first is that a task can be used to support an individual’s work on a software development and the second is that the tracking of an individual’s activity when working on a task can enable representation of the context of the task. Over the past sixteen years, researchers have considered how tasks and task contexts can support collaboration, recommendations, metrics and more. The state of the practice has evolved as well, with task tracking tools maturing along with Agile tooling and modern source code management systems. In our own work following the publication, we have further explored how tasks and task contexts can be extended to support the work of multiple teams and across software organizations and enterprises as a whole.
Our 2006 paper described how the context of a programmer’s task could be captured and modeled automatically based on a programmer’s coding activity. The frequency of a programmer’s interaction with parts of the source code while working on a task enables a model of the context to be built automatically as the programmer works. Through a longitudinal field study, we showed how task contexts could ease a programmer’s work, essentially removing unproductive work and allowing the programmer to spend more of their time and actions on the work that mattered. As part of the study, we also created a productivity measurement framework that measured the wasteful portions of a developer’s coding activity.
While making use of task contexts in a development environment can improve the work of an individual programmer, what becomes even more exciting is how a collection of task contexts for a software development indicates where parts of the software need to change together. This co-change imprints a different kind of modularity on the software architecture describing where the majority of change needs to occur to enable value to flow to a customer. The opportunity to help support teams of programmers work with task modularity motivated us to co-found Tasktop Technologies Inc in 2007.
By working with customers of Tasktop, we realized that improving the ability for an organization to go from definition of a feature important to a customer through to delivery of that feature takes more than the programmers in an organization. The delivery of value involves many individuals and teams from requirements engineers to testers to project managers, amongst others. At Tasktop, we recognized that the concept of a task could help support the connection of the different kinds of work done by these teams in different kinds of tools. By synchronizing the relevant task information, or aspects of the task context, across teams and tools, we could enable better flow in software development. Moreover, over time, we recognized how the ability to treat a task as first-class in a software development organization could enable the tracking and management of value streams. It has been rewarding to see the way that tasks, often called issue or work items, have been incorporated as first class entities in a large number of development tools and methodologies.
Building on this work and the notion of developer flow and detecting waste, Mik created the Flow Framework(r), which describes to organizations how to build software from a value stream oriented approach. The Flow Framework is described in his 2018 book Project to Product: How to Survive and Thrive in the Age of Digital Disruption with the Flow Framework. The 2022 acquisition of Tasktop by Planview incorporates the original concepts of tasks and a broader notion of task contexts into an integrated toolsuite to support software development by the world’s largest organizations. Sixteen years later, the concepts of tasks and task contexts have moved from helping individual programmers to helping change how software is developed and delivered. We hope that these concepts continue to be expanded on and evolved by others wanting to push the boundaries on making the work of developers, teams and organizations easier and more productive.
Disclaimer: The posts in the SIGSOFT Blog are written by individual contributors and any views or opinions represented in their posts are personal, belong solely to the blog authors and do not necessarily represent those of ACM SIGSOFT or ACM.