  Software development comprises complex tasks which are performed by humans.
It involves problem solving, domain understanding and communication skills as
well as knowledge of a broad variety of technologies, architectures, and
solution approaches. As such, software development projects include many
situations where crucial decisions must be made. Making the appropriate
organizational or technical choices for a given software team building a
product can make the difference between project success or failure. Software
development methods have introduced frameworks and sets of best practices for
certain contexts, providing practitioners with established guidelines for these
important choices. Current Agile methods employed in modern software
development have highlighted the importance of the human factors in software
development. These methods rely on short feedback loops and the
self-organization of teams to enable collaborative decision making. While Agile
methods stress the importance of empirical process control, i.e. relying on
data to make decisions, they do not prescribe in detail how this goal should be
achieved. In this paper, we describe the types and abstraction levels of data
and decisions within modern software development teams and identify the
benefits that usage of this data enables. We argue that the principles of
data-driven decision making are highly applicable, yet underused, in modern
Agile software development.
