Profile picture
Ed Guiness @KiwiCoder
, 18 tweets, 3 min read Read on Twitter
The payment company Stripe published a report called The Developer Coefficient in which they present findings on software engineering efficiency.

stripe.com/files/reports/… [PDF]

What they wrote in this report really made me angry. Here’s why.
Stripe, first of all, your report misrepresents software development reality.

You present software maintenance as a massive waste of time and money. But that’s just not true.

Maintenance is how software stays relevant.
Laws and regulations change, technology platforms change, features rise and fall in importance, the users themselves change over time. There are endless justifications for ongoing software maintenance.

For as long as software serves a useful purpose, it will need maintenance.
Yet you present maintenance as somehow bad, when in reality maintenance is the natural consequence and an essential aspect of software development, and it has always been so.
You’re also pandering to an ignorant attitude that believes software can be written free from bugs and perfectly formed from the outset. Thus all it takes, thinks the ignorant executive, is for my coders to be better than they are.
You highlight the cost of “bad code”.

You don’t provide a definition of bad code, so here’s mine:

Bad code is code that is hard to understand and/or hard to modify without breaking things and introducing errors.
If you know software developers, you know we are, on the whole, vocal and assertive about the avoidance and elimination of bad code. Look at what we talk about at conferences, in blog posts, and on twitter.
Writing and learning about good code is a consuming passion for many developers. Search for “clean code” to see countless examples.
How do we avoid writing bad code in the first place? That is a billion-dollar question (or $85bn as you say).

Everyone without exception agrees we should not write bad code, yet bad code persists.
Bad code is a function of ambiguous requirements, unreasonable deadlines, lack of training and support, lack of a proper testing regime, lack of appropriate project sponsorship, internal politics, lack of funding, and so on.
Yes, some engineers will at times be lazy, thoughtless, short-sighted. Just like their managers. Just like their manager's manager.

But in the round, bad code exists primarily because of human, social, and political problems we all share.
And then consider how we eliminate bad code. We do that with **maintenance of the code**, Stripe, this is the very thing your report damns as waste.
To maintain software, we refactor, we add tests, we discuss and debate, we tease apart and reconstruct. To the software developer, maintenance is normal and expected. It’s part of the job. You build it, then you support and maintain it.
The reason I’m so hot about this is that I know (from watching it happen again and again) how many executive level managers will interpret your report. They will think it’s because their programmers are lazy, feckless, indolent, and narcissistic.
It’s cognitively and politically much easier to blame bad code on an engineer’s attitude than the ecosystem in which they work.
And these executive level managers will vent their frustration on those same engineers and look for quick wins like off-shoring.

"If we’re going to suffer from bad code, at least let’s get it cheaply.”
Or the exec might crank up their attitude of command-and-control to bring those apparently miscreant coders to order. Misery for the coder, and never works out well.
Stripe, your report does not help us get better. You’re throwing fuel on the fire.
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Ed Guiness
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member and get exclusive features!

Premium member ($3.00/month or $30.00/year)

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!