Developer's Toolkit

Blog archive

Developers and Productivity

I keep coming back to the topic of programmer productivity for a couple of reasons. First, advances in the economy in general result from improvements in productivity. It is both unlikely and unfortunate if programmers are not also increasing their productivity along with the economy. Second, I believe that developers can do better in terms of productivity than they are today.

Joel Spolksy (http://www.joelonsoftware.com/items/2006/11/10b.html) claims once again that it is impossible to measure programmer productivity. I would agree with him, except that there are some development teams that get things done faster than others. This has even been demonstrable in controlled environments. However, I suspect that Joel means micro rather than macro measurements, even though he cites a fictitious efficiency rating for a company's software development processes. In other words, there is no quantitative way of measuring the speed and reliability by which we are able to produce code.

So my thinking is that productivity improvement is rather like former Supreme Court Justice Potter Stewart's proclamation on pornography – we would know it if we saw it. We know that some development teams are better than others, and we know that some individual developers are better than others (the best and worst are separated by a factor of ten, according to Ed Yourdan), but we simply have no way of measuring and quantifying that difference.

I am not sure how to measure programmer productivity, or if it can ever be done. But I am certain that it can be improved because we have done so for years. Integrated development environments, reusable libraries, frameworks, and better debuggers have all improved the ability of programmers to produce more. This has largely been hidden by the rapidly increasing complexity of applications, and the new application models that developers are required to learn and use.

So we are seeing some progress in programmer productivity, though that progress is largely being hidden by the changing nature of the end product.

I think we can do better. Developers can make better use of tools, whether integrated into the IDE or available outside of the IDE, to write code faster and with fewer errors. Many of these tools can be had for free, especially if they are part of the Eclipse Foundation. In other cases, they may cost a few hundred to a few thousand dollars, but can pay for themselves with regular use.

Most of you cite time pressures as the cause of the lack of tools use. I understand where that comes from, but that simply means that software development management is penny wise and pound foolish. There must be managers out there with the courage and foresight to say that their teams will take the productivity hit for the next month will installing and learning to use new tools, for the long term productivity improvement. The advantages of improving processes, adding automation, and being more analytical about productivity and quality will last far beyond the immediate project.

Posted by Peter Varhol on 11/13/2006


comments powered by Disqus

Featured

  • AI for GitHub Collaboration? Maybe Not So Much

    No doubt GitHub Copilot has been a boon for developers, but AI might not be the best tool for collaboration, according to developers weighing in on a recent social media post from the GitHub team.

  • Visual Studio 2022 Getting VS Code 'Command Palette' Equivalent

    As any Visual Studio Code user knows, the editor's command palette is a powerful tool for getting things done quickly, without having to navigate through menus and dialogs. Now, we learn how an equivalent is coming for Microsoft's flagship Visual Studio IDE, invoked by the same familiar Ctrl+Shift+P keyboard shortcut.

  • .NET 9 Preview 3: 'I've Been Waiting 9 Years for This API!'

    Microsoft's third preview of .NET 9 sees a lot of minor tweaks and fixes with no earth-shaking new functionality, but little things can be important to individual developers.

  • Data Anomaly Detection Using a Neural Autoencoder with C#

    Dr. James McCaffrey of Microsoft Research tackles the process of examining a set of source data to find data items that are different in some way from the majority of the source items.

  • What's New for Python, Java in Visual Studio Code

    Microsoft announced March 2024 updates to its Python and Java extensions for Visual Studio Code, the open source-based, cross-platform code editor that has repeatedly been named the No. 1 tool in major development surveys.

Subscribe on YouTube