---
title: "How to measure programmer productivity using TDD Katas"
url: "https://www.5whys.com/articles/how-to-measure-programmer-productivity-using-tdd-katas.md"
canonical: "https://www.5whys.com/articles/how-to-measure-programmer-productivity-using-tdd-katas.html"
published: "2009-09-30T22:12:12+00:00"
updated: "2009-09-30T22:34:19.011000+00:00"
tags: ["Growing People", "Self Improvement"]
author: "Roy Osherove"
description: "How repeating a TDD kata daily builds muscle memory, and how timing it measures programmer productivity and mastery of shortcuts, snippets and tools."
usage: "Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page)."
license: "https://creativecommons.org/licenses/by/4.0/"
---

# How to measure programmer productivity using TDD Katas

A TDD Kata is an exercise in writing code, test first, which one repeats once or more a day. [Here's an example of one](http://osherove.com/tdd-kata-1/).

I make students that take my TDD course do this kata each morning, in the space of 30 minutes.

Near the end of the course, they become more and more skilled with the tools and can actually get to finish it in 30 minutes, and they get faster and faster.

The point about the Kata is that you should know it **by heart**. you should not be thinking about the solution, your fingers should by typing it "blind", including all the refactoring work, the renaming and whatever else you do.

A Kata is about muscle memory - so that we feel comfortable doing that something in the real work, without needing to think about it.

If you know it well enough, you can start timing how long it takes you to finish it. THe faster you finish it (with same results, clean code and working implementation) the more it means you are productive.

Why?

Because at some point, the only things that take the time in the kata are those darn keyboard keys and mouse! The more shortcuts, snippets and key combinations you learn to get your job done, the more you have minimized those things in your developement writing that take the time.

So a kata is about muscle memory, but  you can use it to measure how well you are mastering your tools, or how productive you are as a programmer.

what's fascinating, is that if you look hard enough you'll find that there's always something that can be done even faster eithout hurting the end consequances. here are some examples:

1. No need to type that whole Setup method with attributes on the code. Create and use a live code snippet to generate it in a click or a key press.
2. No need to select a whole line before removing it - learn to use shortcut keys to do that in one action.
3. No need to manually go to a code finle when you can navigate to the last edit location in a blink of an eye with your tools

and there are a million more.

it's about mastering your craft. and now there's a way to measure it.

## Read next

- [Check-in: sharing emotions in an effective way](https://www.5whys.com/articles/check-in-sharing-emotions-in-an-effective-way.html): Yves Hanoulle explains the Check-In protocol from The Core Protocols, using mad, glad, sad and afraid to share emotions at work and at home.
- [Be Productive and Go Mouseless](https://www.5whys.com/articles/be-productive-and-go-mouseless.html): A short video on YouTube about being a more productive developer by going mouseless and working from the keyboard. A companion to the Stop Using XML video.
- [The Core Protocols Introduction](https://www.5whys.com/articles/the-core-protocols-introduction.html): Yves Hanoulle introduces The Core Protocols, team rules Jim and Michele McCarthy distilled from their team-building workshops, and invites you to try them.


---

## About the author

**Roy Osherove**: Senior Solutions Architect at AWS working on AI for production and AI-driven development; author of The Art of Unit Testing and Elastic Leadership, with about 20 years of consulting and training on unit testing, TDD, team leadership and continuous delivery.

### Sites

- [RobotPaper](https://robotpaper.ai/): This blog: AI patterns and anti-patterns, AI and coding agents, and engineering leadership.
- [osherove.com](https://osherove.com): Roy's personal site. Author of The Art of Unit Testing and Elastic Leadership; consulting and training on unit testing, TDD, team leadership and continuous delivery, plus about 20 years of blog posts.
- [The Art of Unit Testing](https://www.artofunittesting.com): The Art of Unit Testing, 3rd Edition (Manning): readable, maintainable, trustworthy unit tests, plus TDD workshops in C#, JavaScript, Java and Kotlin.
- [5whys.com](https://www.5whys.com): Roy's writing on software team leadership: self-organizing teams, surviving chaos, learning mode and the Elastic Leadership model.
- [Pipeline Driven](https://pipelinedriven.org): Continuous delivery and DevOps practices: build patterns, pipeline-friendly testing, DevOps metrics and enterprise DevOps.
- [Elastic Leadership](https://www.elasticleadership.com): Elastic Leadership, Roy's framework for software team leaders (survival, learning and self-organizing modes).

### Social

- X: https://x.com/royosherove
- LinkedIn: https://www.linkedin.com/in/osherove/

### Contact

- Contact form: https://forms.gle/jQSx5KoXvrVA1JCK7

### License

Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page). License: https://creativecommons.org/licenses/by/4.0/
