How to improve software development productivity?

A Step-by-Step Strategy

Introduction

"95 percent of changes made by management today make no improvement. Transformation to a new style of management is required to achieve optimisation - a process of orchestrating the efforts of all components to achieve the stated aim. Optimisation is management's job." ~Deming[1]

At the heart of every software development organization is a quest for knowledge. Essentially, software development is not just about coding or deploying applications; it's a process of knowledge acquisition and application. Improving productivity in your software development organization requires a clear understanding of inefficiencies and charting a path for improvement. Here's a strategy to achieve this.

Utilize Comprehensive Metrics

Flow Metrics metrics focus on quantifying tangible logistics such as Flow Velocity, Flow Time, Flow Efficiency, Flow Load, and Rework assessment, providing insights into the efficiency and productivity of the software development process as a manufacturing system.

However, there are inherent limitations. While Flow Metrics offer vital insights, ensuring the smooth flow of your software development process they don't cover the intangible aspects of software development. Take, for instance, the developer experience at work. In today's software industry, companies invest heavily in nurturing developers' happiness. They believe that amenities like perks, playground rooms, free breakfast, and sports facilities, among others, would yield a return on investment in the form of improved productivity and retention. Such investments operate under the assumption that happy developers equate to productive developers.

Yet, using Flow Metrics alone, it's challenging to discern if developers, teams, and projects are truly operating at their peak. There's an inability to definitively ascertain whether developers enjoy their work, derive happiness from optimal work experiences, and ultimately realize their potential.

Furthermore, Flow Metrics often leave executive leaders struggling to connect the developer experience to the economic productivity of the business. Moreover, even the most accomplished managers often find it challenging to objectively validate their management practices for continued growth and success, given the lack of comprehensive data points.

In contrast, Knowledge-Centric Metrics shed light on the intangible facets. They address the knowledge gap that a software developer needs to bridge to successfully complete a task. This knowledge gap directly influences developers' efficiency, impacting their happiness and productivity.

Derived from the foundational Knowledge Discovery Efficiency (KEDE) metric, indicators such as Collaboration, Cognitive Load, Happiness (Flow State), Productivity(Value per Bit of information Discovered), and Rework (Information Loss Rate) present a multidimensional view of a developer's experience and the overall efficiency of the software development process.

When combined, Flow and Knowledge-Centric metrics offer insights into both tangible and intangible inefficiencies, painting a clearer picture of the entire software development process. The beauty of this approach is that Knowledge-Centric and Flow Metrics don't collide; they complement each other. They each offer a unique standpoint, and together, they provide a holistic picture of the software development process.

Identify and Address the Knowledge Gaps - The Heart of the Matter

Use Knowledge-Centric metrics to pinpoint the difference between the current knowledge levels of your development team and what's required for the problems they solve and thereby for the work they do. The objective? Speed up knowledge acquisition and application in the entire software development process not only the individual developers .

Designers, architects, QAs—though not always hands-on coders—become critical cogs in this knowledge discovery process, each pouring their unique insights into the melting pot. We often get ensnared by the idea that knowledge discovery efficiency is the fruit of individual brilliance, sidelining the vast systemic environment that nurtures it.

In the grand tapestry of software development, knowledge is a collaborative affair. Be it the wisdom of teammates, the goldmine that is StackOverflow, the written legacy in documentation, or the feedback loops from clients. Everyone adds a thread, enriching the fabric. It's crucial to recognize and celebrate every contributor, coder or not.

Address Knowledge Barriers

Several factors can lead to increased levels of missing information, dampening productivity:

By recognizing and addressing these, you can start implementing changes to enhance productivity.

Strategies to Enhance the Knowledge Discovery Process

There are proven methods to reduce the level of missing information:

Continuous Monitoring

After implementing these initiatives, use the Knowledge-Centric metrics to check if the average missing information in your organization is decreasing and the knowledge discovery efficiency is increasing. This will serve as a testament to the effectiveness of your productivity-enhancing strategies.

Summary

To improve productivity in a software development organization, one should understand the factors contributing to inefficiencies. Flow Metrics and Knowledge-Centric Metrics offer insights into tangible and intangible aspects of the development process respectively. Using these metrics, an organization can identify the gaps and missing information, which when addressed, can enhance productivity. Factors like lack of knowledge sharing and repeated rework often lead to inefficiencies. Various established methods can help address these gaps.

In essence, software development productivity blossoms when we integrate knowledge-centric understanding, dismantle prevalent barriers, and adopt proven strategies. The journey is all about knowledge discovery, application, and continuous evolution.

Works Cited

1. Deming, W. Edwards, 2000. The New Economics for Industry, Government, Education, 2nd Edition,The MIT Press. Cambridge, Mass

Getting started