It's our own damn fault

It ain't easy slinging code

Over the course of my more than twenty years in the software development industry, I've worked with hundreds if not thousands of developers. Many of the projects I've been involved with have suffered from the same malady; a disconnect between expectations and realistic possibility.

The Agile Manifesto attempts to address many of the root causes of this malady. It encourages individuals to interact, collaborate, communicate, and respond to change. These are not easy things to do. Nor do they necessarily ensure quality software.

The Manifesto for Software Craftsmanship gives a clear nod to the Agile Manifesto and then extends it by addressing the need for quality software. These are not easy things to do.

The man is always keeping us down

Many developers look to this inequity and the challenges and realize they are helpless against unrealistic demands. External forces are at play; leadership, management, or sales - no matter. They neither listen nor care. They want it done. They want it all done. And they want it yesterday.

So we cluster together. We lament. We gnash our teeth. We wring our hands. We commiserate. And then we perform our duties in compliance with the demands set upon us.

It is not our fault. Try as we might, we get no respect. No recognition. No appreciation. If we don't crank fast and put in the long hours, they'll just find somebody who will.

We have no choice.
We are victims.
And we need only for "them" to understand and allow us to do our jobs well.

It's our own damn fault

Where do we get off? Absolving ourselves of responsibility for the quality of our work by blaming others. We rationalize doing a lower quality job in the name of pressures, deadlines, and promises made by others. But it is we who deliver the software. It is we who ultimately make the decision to not test enough, not refactor, put in excessive hours, and not do a quality job.

And every time we do this. Every single time we say it can't be done but then deliver a steaming pile that closely resembles that which we said couldn't be done; we reinforce the behaviors. Every time we put in excessive hours to be heroes, we set a precedent for the next time. Every time we compromise quality in order to meet unrealistic expectations, we devalue ourselves and the service we provide.

We haven't the right to complain about the very behaviors we enable.

Never ask permission...

If we want to stop this pattern. If we want to improve the reputation of our profession. If we want "them" to understand, then we need to change our behavior. Take a stand. Do your job well regardless of the pressure. A doomed project is doomed whether we compromise on our values or not. The more of us who behave this way; the more of us who insist on quality from ourselves and our teammates, the more evident it will become that this is not only a better way, but the right way - perhaps the only way.

Do your job. The absolute best you can. Keep learning. Keep improving.

Never ask permission to do your job well.


  1. Great article. I did exactly what you recommend - and now I'm unemployed!
    The bosses don't recognize software quality because they don't know about it. It runs and that's all what matters. I think, before we can produce quality software, our bosses should take some seminars where they learn about it! Sad but true, "Duct tape programmers", "Cowboy programmers", they are the heroes for them and not geeks who want clean, maintainable and reusable code.

  2. Rainer:

    I've lost a job or two for the same reasons. And I have no regrets. My family and I made it through those tenuous times and I found fantastic companies to work with and for. Companies like LeanDog, EdgeCase, Obtiva, 8th Light, Hash Rocket, Eden Software, ThoughtWorks, ....

    If this really happened to you for the reasons you say, then send me your resume. We're looking to hire developers who have a passion for clean, maintainable and reusable code. jobs-at-leandog-dot-com

  3. Rainer Hilmer6/27/2010 10:00 AM

    Thanks for the offer but I'm looking for a job in germany. :-)

  4. One of the major problems in the industry is that there is no barrier to entry. As long as there are thousands upon thousands of unqualified monkeys delivering software, then it's always going to be that way.

    Then again, you can hardly blame the monkeys. It's not like they know any better....