You Have A Performance Problem

— 3 minute read

You have a performance problem.

Folk keep pointing out how slow your apps and services are.

You're not deliberately writing slow code. You boss never asked you write slow code. Your organisation almost certainly doesn't have "Slowest code that people will still pay for" as one of it's strategic goals.

And yet — people are continually tweeting about how slow your code is.

Some people try and find excuses for it. I don't see any speed problems. It's only slow if you use it this way. I didn't have time to make it efficient. I didn't know how to make it efficient. It's only slow because my boss asked me to deliver this feature on this deadline and there was no other option. My boss told me to write the feature this way. etc. etc.

They all might be true statements.

But your code is still slow.

You have a performance problem.

You cannot say that the code is not slow because you didn't deliberately write slow code. You cannot absolve yourself of the responsibility of writing the slow code because somebody else told you to write it.

The code is still slow. You still wrote the code. It still adversely affects the people who hit those performance issues every single day.

Folk who've dealt with these kinds of issue know what needs to happen.

There needs to be a culture change around dealing with performance problems. Performance needs to become a cross-cutting concern. It needs to be mentioned everywhere from the c-suite through to customer support. You might need to bring in some new people who have expertise in addressing performance issues. The product, dev, and QA folk will all be learning new skills and practices. Everybody will. They'll be seeing new ways to spot performance issues before they become problems. They'll be understanding new ways to build systems that don't have performance issues. They'll be discovering (or re-discovering) concepts, and processes, and measures, and standards that help them stop those performance problems hitting the streets. They'll also be learning better ways to push back and manage up if other folk don't see those issues.

It will be an ongoing process. Getting better at dealing with performance issues isn't a one-and-done activity. Anybody who tells you that is lying or selling something. It's a journey.

And yeah, some people who don't actually value performance issues will probably be leaving.

Saying that nobody deliberately set out to write slow code doesn't stop it being slow. Or pretending that slow code is fast.

A pattern of denial never fixes the problem.

In completely unrelated news — y'all should go read the commentary around this big honking racist software problem.