blog podcast

SPACE and Developer Productivity

I stumbled upon this post that is outlining an updated way of measuring developer productivity. I recommend everyone to go there and read it.

They called their framework SPACE, which stands for Satisfaction, Performance, Activity, Communication & collaboration and Efficiency & flow. I’d like to add my thoughts to what they are saying.

Satisfaction

The people making the post outline the following points:

I would like to add that I think satisfied people are happy people and happy people are open minded people. I think open mindedness among your peers in turn creates both satisfaction and flourishing creativity.

I find it important to not mix up satisfaction with giving employees everything they ask for though. My belief is that deep satisfaction is achieved when there are few unnecessary hurdles in your way and you and your team work synchronized and achieve good results for which you are awarded accordingly. Awards when there are no or few achievements results in less satisfaction in my experience.

Performance

These are their points:

This is the main point that developers get paid for. Creating quality and impact. In the short term this could have been the only important point, since this is the meat of why you’re working, in the long run there are still other factors (like Satisfaction and other points in SPACE) that determine long time success.

Activity

These are their points:

I would consider leaving this point out. When it comes to PRs and commits, that is what feel the most easy to measure for a developer, but it is at the same time quite dangerous if you do.

What you want in the end is the performance, and if you start measuring your productivity based on these other metrics you might create weird incentives for yourself. It is not unlikely that you would start creating more frequent PRs for the same functionality. You would probably also start labeling more things as incidents. I’ve been in places where test coverage was a measurement of success. Now I’m for very high test coverage, but when you blindly state that coverage is the metric you’ll start getting tests that don’t really test, that are just their to increase a coverage percentage. It is much better to try to track the things named under performance in my view.

Communication

These are their points:

To be honest I feel that communication is actually the core of what you do if you work professionally as a developer in a corporation. I think it is a big driver of satisfaction as communication creates ties between people and that’s important for well being. I also think it is absolutely essential for the long term success of any organization. Without communication the organization will become dependent on single individuals which in turn will likely not be very satisfied because they work as small islands independently from on another. Communication is, I would say, the most important point for long term success in an organization.

Efficiency.

These are their points:

I think they do very well to put this in here. Without this as a measurement of productivity, you would easily boost your productivity by constantly asking other colleagues about everything. This would use their brain power to boost your productivity. The problem is that satisfaction would go down in the team overall, and obviously they wouldn’t get their job done. Now, as I mentioned before I do believe that communication is the heart of what the job as a software developer means in the corporate setting, but one still has to be smart with how and when one does this communication. It is all about balance.