Image

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:

Succeeded

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:

REJECTED

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.

Done is Better than Perfect

Hi. I’m Alex, and I’m a Recovering Perfectionist.

I have struggled with the demons of perfectionism as long as I can remember.  Without getting too deep into the gory personal details of my upbringing, suffice to say I was raised to be a Perfectionist.  Not just any Perfectionist, but the Most Perfect Perfectionist.

I learned from an early age that effort was not enough, if it resulted in anything less than excellence.  I was that child who was a superior student, involved in activities, volunteering in the community, working a part-time job while applying to Ivy League colleges.  In some ways, perfectionism helped me achieve, but in many others it crippled me with anxiety and destroyed my self-esteem.

I have spent years working on my own thoughts and behaviors to embrace a gentler way of regarding my self worth and my accomplishments at and outside of work.  I started by setting a mantra for myself:  Done is better than perfect.

Continue reading

The Conduit Metaphor of Communication

I find myself telling and retelling this story about the Conduit Metaphor by way of explaining that how we talk about communication is important to understanding where breakdowns in communication can occur in Standard American English speakers.

Michael J. Reddy described in 1979 the Conduit Metaphor used by Standard American English (SAE) speakers. This demonstrates how we think about communication.

Continue reading

On Being a BA: The Question Behind the Question

[Part 5 of a 5-part series of posts about ways of being while being a Business Analyst]

I have this handy article about “Disguised Queries” that gives a great metaphor for how to talk about the differences between ‘good’ and ‘great’ requirements.

Asking people to just deliver their requirements to you, fully-formed, in the first interview is untenable.  People frequently can’t think like that.  It’s another reason why we stopped saying “requirements gathering” and started saying “requirements elicitation” — because the requirements aren’t laying about to be scooped up.  You must prize them from people’s minds!

The cool part about the article shows that how we talk about a thing can change, depending on what we need to know about that thing, or do with that thing.

Continue reading

On Being a BA: People Problems, Not Technology Problems

[Part 4 of a 5-part series of posts about ways of being while being a Business Analyst]

Oftentimes, we talk about issues related to software requirements as if the problem is technology-related.  But given the time, money and priority to work on something, we can make technology do anything.  Our problems stem from people more than they stem from technology.

We have a client with a process that is documented one way, but in the wild is never done like that.  The systems supporting that documented process aren’t working for the ad hoc process, and thus, the system is blamed for being buggy, or lacking in functionality.

The problem was most likely that we accepted the first thing we got when we asked about the process (the documented version) and didn’t dig deeper.  The management-level people were disconnected from the worker-bee-level realities, and didn’t have those worker bees at the table to tell them otherwise.

Which is not to say we were lied to — although sometimes that happens! — but instead to say we needed to hear from more voices.  We needed to validate the information about How Things Are or How Things Need to Be with the people who are “living the pain” right now.

Change resistance isn’t typically because something is not technically feasible, it’s because of fear.  Inflexibility isn’t typically about how a business works, it’s about distrust.

The more we listen to the people, the more likely we are to get closer to the primary source of the problem.

  1. Requirements as Art (not Science)
  2. These Aren’t Your Requirements
  3. Requirements are Never Done
  4. People Problems, Not Technology Problems
  5. The Question Behind The Question