I sometimes hear the agile manifesto being criticized for focusing on “just working software”. It’s said that working software is not enough, that we need to reach further. I agree that we need change, but not in the wording.

If your definition of working software is “if it compiles, ship it”, then the manifesto’s words won’t seem like they change much. For you, the manifesto sounds like business as usual.

Twelve years after first reading it, the agile manifesto still doesn’t sound like business as usual to my ears.

Here’s the thing. I really like software. Really. I always have, ever since I used my first computers as a small kid. I guess computers and software filled a spot for me.

I don’t like all software. I like software that does its job and is a pleasure to use. I’m on a continuous quest to find more software like that, but many of the apps I try suck.

It’s not working software if it doesn’t work for me. Then it’s broken software.

As a user, I’m not content with software that works in the sense that “all functions are there, but that’s about it”. If it does the job, but is a pain to use, I don’t think of it as working software. I may even come to hate it, because now I know that the software could have worked, but its creators didn’t care enough to make it lovely to use.

When developers lack a passion for the user, the result can never be working software. Instead, we get broken software. Broken software is not working software.

For me, the problem is not the expression “working software”. That makes perfect sense. The problem is that some software makers still have a broken definition of what working means.