Beyond Developer ๐—ฃ๐—ฟ๐—ผ๐—ฑ๐˜‚๐—ฐ๐˜๐—ถ๐˜ƒ๐—ถ๐˜๐˜†: ๐—จ๐—ป๐—น๐—ผ๐—ฐ๐—ธ๐—ถ๐—ป๐—ด ๐—จ๐—ป๐˜๐—ฎ๐—ฝ๐—ฝ๐—ฒ๐—ฑ ๐—ฃ๐—ผ๐˜๐—ฒ๐—ป๐˜๐—ถ๐—ฎ๐—น

Sandeep Joshi
5 min readSep 14, 2023

--

In the fast-paced world of software development, measuring productivity is often seen as a crucial component of managing and optimizing resources. The idea of quantifying the output of software developers has been a hot topic for years, with many companies seeking ways to gauge and enhance their developer productivity. A commonly cited article by McKinsey, โ€œYes, You Can Measure Software Developer Productivityโ€ suggests that measuring developer productivity is a viable approach. However, in my opinion relying solely on developer-level metrics is a flawed strategy and I would like to offer alternative steps to focus on organisational productivity.

It is very clear in todayโ€™s tech driven world that every business is a software business. So business success is determined by how best you can serve your customers through your digital ecosystem.

โ€œDevelopers are the backbone of tech organisations. Their code, problem-solving skills, and innovation, drive business success.โ€

When organisations and leaders try to measure ๐——๐—ฒ๐˜ƒ๐—ฒ๐—น๐—ผ๐—ฝ๐—ฒ๐—ฟ ๐—ฃ๐—ฟ๐—ผ๐—ฑ๐˜‚๐—ฐ๐˜๐—ถ๐˜ƒ๐—ถ๐˜๐˜†, they must understand that we are talking about intellectual work, not simply repetitive pattern-based work. Developers deal with complex integration problems every day โ€” technology is not getting simpler, we are only growing in complexity every passing second.

The Pitfalls of Measuring Developer Productivity

  1. Oversimplification of Complex Work:

The McKinsey article advocates for tracking metrics like lines of code written or completed tasks as measures of developer productivity. While these metrics provide a numerical representation of output, they oversimplify the complex nature of software development. The quality of code, collaboration, problem-solving abilities, and adherence to best practices are equally important factors that cannot be quantified by these metrics.

  1. Encouragement of Unproductive Behaviour:

Emphasising individual developer productivity can inadvertently encourage counterproductive behaviours. Developers may rush through tasks to meet quantity-based goals, leading to poor code quality, increased technical debt, and potential long-term inefficiencies.

  1. Neglecting Collaborative Efforts:

Measuring individual productivity overlooks the collaborative nature of software development. Successful software projects depend on effective teamwork, knowledge sharing, and collaboration among developers, designers, and other stakeholders. Focusing solely on individual productivity can undermine these essential aspects.

Developer Happiness and Developer Experience

I wrote few years back about Developer Happiness which I strongly believe is the backbone of great software teams. I have had multiple discussions since publishing the article with numerous CTOs and Technology Leaders around the term โ€œhappinessโ€ and I have now settled on Developer Experience as a term and I believe it encapsulates developer happiness. Let us unfold what developer experience means.

Developer experience is about creating a positive and supportive work environment for developers. It encompasses the tools, processes, culture, and overall atmosphere in which developers work. A good developer experience aims to:

  • Improve Efficiency: By providing developers with the right tools and resources, you can make their work more efficient. This includes using modern development environments, version control systems, and automation tools.
  • Boost Morale: A positive and inclusive workplace culture, opportunities for growth, and recognition for achievements can boost developer morale and job satisfaction, which can, in turn, enhance productivity.
  • Minimise Friction: Developers should not face unnecessary hurdles or bureaucratic obstacles in their work. An efficient workflow, clear processes, and effective communication minimize friction and frustration.
  • Encourage Learning: Providing opportunities for skill development and learning helps developers stay up-to-date with emerging technologies and best practices, which can improve the quality of their work.
  • Support Well-Being: Caring for the well-being of developers, including factors like work-life balance, can contribute to a better developer experience and, in the long run, increased productivity.

The Exam Question

Time and again attempts have been made to measure Developer Productivity โ€” from clocking time to tracking the minutest of the work using tools. These efforts are rooted in assumptions that ๐™ข๐™ค๐™ง๐™š ๐™˜๐™ค๐™™๐™š ๐™ข๐™š๐™–๐™ฃ๐™จ ๐™ข๐™ค๐™ง๐™š ๐™—๐™ช๐™จ๐™ž๐™ฃ๐™š๐™จ๐™จ ๐™ค๐™ช๐™ฉ๐™˜๐™ค๐™ข๐™š๐™จ. Take a pause here and think again. What are we trying to achieve?

1) Are we looking at creating more code?

2) Are we aiming to release more features?

3) Are we aiming to reduce cost & time of development for doing it faster?

Building software is a team sport. You can generate all the code in the world but if it doesnโ€™t create business value, itโ€™s all a circus that entertains none and frustrates all.

So rather than focusing on developer productivity, leaders should focus on team high performance. The callout to leaders is to move towards organisational productivity. You need more business value โ€” not more code. The cost of overall software lifecycle (building, maintaining and sunsetting) need to be considered. The aim is to maximise the amount of work NOT DONE by doing the right work to get the desired business value. When you get your Developer Experience right, you move a step forward towards Team High Performance.

So stop chasing busy metrics and start chasing Team High Performance.

Steps to Enhance Organisational Productivity

  1. Foster a Collaborative Culture:

Instead of measuring individual developer productivity, organizations should prioritise building a culture of collaboration and knowledge sharing. Encourage cross-functional teams, regular code reviews, and open communication channels. Collaboration enhances problem-solving, innovation, and ultimately, the quality of software products.

2. Empower Autonomy:

The secret sauce for high performance is: Empowering autonomy. When teams have the freedom to make decisions, experiment, and take ownership, motivation soars.

3. Define Clear Goals and Priorities:

Organisations should establish clear project goals and priorities that align with their overall strategic objectives. Setting clear expectations for each project and defining success criteria allows teams to focus on meaningful work and measure success based on the impact delivered.

4. Invest in Training and Skill Development:

Rather than simply measuring output, invest in the growth and development of your development teams. Provide opportunities for continuous learning, skill development, and mentorship. Well-trained developers are more likely to produce high-quality code and contribute to the organizationโ€™s long-term success.

5. Focus on Quality and Efficiency:

Shift the emphasis from measuring lines of code written to quality and efficiency metrics. Implement code reviews, automated testing, and performance monitoring to ensure that the software meets high-quality standards. Efficiency metrics can also help identify areas for improvement in the development process.

6. Embrace AI, Automation and DevOps Practices:

Adopt AI, Automation and DevOps practices to streamline development processes, enhance collaboration, and shorten release cycles. Using a holistic approach to software development and emphasising the importance of the entire development pipeline over individual productivity can lead to greater business outcomes.

Conclusion

Measuring developer productivity may seem like a tempting approach to optimising software development efforts, but it is ultimately a flawed strategy.

Software development is a complex, collaborative endeavour that cannot be accurately represented by simple numerical metrics. Instead, organizations should focus on enhancing organizational productivity through a culture of collaboration, clear goal setting, skill development, quality assurance, and the adoption of modern development methodologies. By doing so, they can achieve more meaningful and sustainable success in the software development industry.

Share your thoughts: How do you boost developer productivity? Letโ€™s learn from each other and level up together!

--

--

Sandeep Joshi

SustainAgility Founder, Author, Advisor, Coach and learner. Microsoft MVP Alumni, MCT and Developer Happiness advocate.