Software mirrors organizational values, or: an error message annoyed me enough to blog about it.

I just had a moment where several points I’ve been making to colleagues about organizational culture, the myth of software’s neutrality, and poor user experience choices came together in one package. It was the intersection of Conway’s Law, cultural anthropology and user experience design.  Unfortunately, the outcome was… not great.

On my current project, I’m responsible for approving the deployments to the Dev environment.  My project is using Microsoft Team Foundation Server (TFS) for build and release management.  After I approve a deployment, the system provides a response as to the success or failure of the deployment.

For successful deployments, I see this:


Pretty straightforward, right? I can see the request I’d made to the system succeeded, and some metadata about the deployment.

However, when the deployment fails, I see this response:


Uh, what?  Shouldn’t that say “FAILED” instead of “REJECTED?”

This is a perfect example about how the values of an organization slide into the software it produces. From my long experience working with Microsoft products, I know errors are assumed by default to be caused by the user behaving incorrectly with the software, rather than the software failing to meet the expectations of the user.

My expectation is not to have a system “REJECT” my request when it couldn’t successfully complete the requested action, but instead report its own failure.  But Microsoft believes as an organization that users are more likely to misuse their products than their products fail users.  As a result of this attitude, developers frame the status messaging as an assessment of the user’s ability to do things “correctly” rather than the software’s ability to respond as expected to a user request.

There’s been plenty of trench warfare in the UX community about whether systems should apologize for errors, so I won’t rehash that here.  I fall squarely in the camp of being delighted by systems that own their errors, rather than blame me for them.  I was immediately irked at TFS’s rude insistence on leveling its judgement of my deployment request. I’m usually neutral to mildly amused at apologetic messages from the various applications I use that clearly center a user (Chrome and Discord come to mind).

Next time you’re designing or building error handling routines, consider whether your system is both failing its user AND being rude about it.