If Isaac Newton was alive today, we might have the Newtonian laws of software development:
For every increase in our ability to construct complex software, there shall be an equal increase in the demand for even more complex software.
One solution to keeping up with this increased demand might be to apply artificial intelligence techniques to generate the software that is needed. While we have come a long way in having software that mimics some human capabilities (Siri anyone?), we are still a long way from automatic generation of software systems without intense human involvement.
The Problem – Increasing Productivity
Given that we are in a situation with limited skilled software developers available to create the seemingly unlimited amount of desired software systems, it is natural that organizations look to increasing software development productivity.
In fact, ever since software began to be constructed, there has been interest in how to measure software development productivity (lines of code anyone?) and what organizational factors, like better managers, impact software development productivity.
Surprising to my colleagues and I, when we reviewed the literature, we realized that there has been very little investigation of software development productivity from the "source", namely the developers who produce the software.
It seems likely that if developers perceive themselves as productive, it is more likely that the software development organization may be productive.
But what leads to a developer feeling productive?
Is it a day spent only coding? Do developers ever have a chance to code for long periods of time? Does too much email lead to a negative perception of productivity? Is time spent in meetings perceived as productive or not?
The Solution – What the Experts Say
To gain insight into how software developers’ perceive their own productivity, we undertook a survey of 379 developers and we observed 11 experienced software developers from three international software development companies for four hours each.
From the survey and observations, we gained a glimpse into the minds and activities of developers—from what measures developers think might help them assess their own productivity to how developers actually spend their days and what activities they find productive and not.