I Hate Software Excuses (And You Should Too)

Posted on January 11, 2010. Filed under: Uncategorized |

It’s been a couple weeks since I started my job in Kansas, and for the most part, I’ve really enjoyed being here.  Having a fresh perspective, it’s always interesting to see the quirks of the people and the culture.  My new company is located in a shining bronze edifice called Lighton.  Inside this marvelous complex is a gym.  Each company gets a quota of the number of gym access fobs that they can hand out.  Of course, being the new guy, I wasn’t able to get one.  There were none available.

Then something happened one day!  A fob became available.  As soon as I got the email, I replied to all claiming my stake over the available fob.  Much to the chagrin of the office admin, who seems to have a problem with me, I ended up with the fob!  But she wouldn’t let me physically have it until the registration is changed over in the system.  That should take a day.  I was fine with that, but I shouldn’t have been.  The whole reason for having electronic systems is so that things can happen instantly.  Well, maybe it’s not the system itself.  Maybe it’s the human keying it into the system that’s the bottleneck.

Once I received the fob from our admin, I went to use it.  It didn’t work.  Damn.  I wondered if the office admin was vindictive enough to run a magnet across my fob.  Then I checked myself for thinking so highly of myself.  (Like she really cares enough to sabotage my fob!) I asked a maintenance man, who just happen to be passing by what I can do.  He asked me if I’m suppose to have access.  Did I pay for the fob?  Am I using someone else’s fob?  I was a little annoyed by the questions, but I kept a smile on my face and assured him that I’m suppose to have access.  He then directed me to the 3rd floor office of the building managers.

The lady in there was very cordial, and she told me that it’s possible I wasn’t pointing the fob correctly at the access point.  I knew that the fob should work, but I was willing to condescend her.  We walked down together.  She pointed the fob at the access panel, and sure enough, it didn’t work.  She told me that she didn’t understand; it should work.  Then, as if by magic, she remembered that they are working on the door; they are doing a software upgrade so the system may be down.  Obviously that wasn’t the case because there were people in the gym working out.  If the door was inaccessible, then they wouldn’t have been able to get in.  We went back up to her office.  She told me to call her in the afternoon, and she would attempt to re-add me to the system.  I told her okay, and I took a business card off here desk (she’s on the hook.).

In the afternoon, I called her, and she said that I was already in the system so my fob must be bad.  Come to her office and get another fob.  I get another fob from her, and she said that I’ll probably be good to go.  I told her that if it doesn’t work I’m coming back up stairs to see her.  I went down, and tried it.  No, it didn’t work.  So I marched back up stairs.  I’m very perturbed, but you have to keep on a good face.  She tells me that the software upgrade may have had trouble.  she’ll send one of the maintenance guys to give the fob to me once they get it working.  Later in the day, she calls me and tells me that the problem will be resolved early next week.

On Monday (today), my good friend, the office admin, came by and gave me the fob.  Hmm, I assume they got it working.  Being a tester, I got to go try it.  So I walk over to the workout facility and try it.  It doesn’t work.  I wanted to be mad, but I couldn’t bring myself to be angry.  It’s typical.  I thought they were going to try it before they sent it back over?  That’s what the lady promised.

Immediately, I go upstairs to the property management office.  Another lady greets me, and I tell her who I am.  She apologizes to me.  Apparently the other lady set me up wrong.  She explained that there’s two databases that needed to be updated with the information.  The first lady had just updated one.  Everything should be fine tomorrow once the system updates are in place.  The lady, to her credit, asked me if I wanted to use her fob to go workout.  I told her no; I just would like mine going eventually.  She told me that it should be fine tomorrow.  I told her that I didn’t believe her, but I will try it tomorrow.

WHAT’S THE POINT OF THIS WHOLE STORY?

I’m sick and tired of software excuses!  Don’t tell me the system takes a whole day to update!  I don’t give a crap that the system is down.  I don’t give a crap that two databases need to be updated.  It ought to just work!  As the user, I should be abstracted from all those details.  Here’s my user story: USER MUST BE ABLE TO USE KEY FOB TO OPEN THE DOOR.  Is that complicated?  Why can’t it be simple?  If it was just a regular lock, I  could have went down to Walmart, made a copy of the key, and got back in time to start achieving my fitness goals.  Why are there two databases that need to be updated?  It’s just one flipping door!  Software excuses are so ingrained in society that they are legitimate as “my diabetes is acting up”.  Nobody questions the bullshit of them.  And why is that?  I think it’s because most people don’t understand software.  As someone that understands software better than most of the populous, I say enough is enough.  I don’t care that systems are complex!  Stop the insanity!  This is a work in progress, but here’s my new software manifesto:

Daniel’s New Software Manifesto:

1) Software should be Simple to Use.  If your target user can’t *easily* use it (intuitive), it’s poorly designed, and it should chunked into the fire.

2) Software should Work.  Your software should work 99% of the time.  If your users are constantly complaining about problems with your software, then you suck and need to be chunked into the fire.  Don’t compromise on quality; it’s a slippery slope.  If you evangelize quality (and really mean it), you software will get better.

3) Software should be designed for the User.  I have an infinite amount of respect for Steve Jobs because he gets this.  He doesn’t have software developers (0r testers) designing the UI.  He actually pays people to design the UI so that Apple’s software looks slick and appealing.  I hate that companies are too cheap to invest in a good designer or user experience expert.  Design for the user!

4) Software downtime is Unacceptable.  Downtime is unacceptable for your software.  Make sure it’s up and running.  Regular maintenance is okay, but it’s not great.  The more you make this acceptable; the more downtime you’ll have.  Start with the premise that it’s unacceptable, and you’ll do better with it.

5) Software should fulfill the User’s Need. If you have software to control the access of a door, it better do it’s job.  If it doesn’t let the user in, it’s a utter failure and should be chunked into the fire.

EPILOGUE:

Probably when (if) they resolve my access issue, there will probably be no retrospective to say that things need to be different.  I sure the ladies in that office might feel bad for me, but nothing is going to change in their process.  I’m sure the second lady just thinks that it was a training issue with the first lady (i.e. if she knew that you have to do this and this and update two databases then that would have solved it).  But I really think that’s a wrong way of looking at it.  Maybe the software needs to be simplified.  Maybe they need some quality control in place (i.e. try the fobs on the door before they hand them off).  Maybe they need to restructure access systems.

But here’s the real food for thought: how many times do we as software professionals put the users through Hell and then not care?  I want you to empathize.  Every time you throw out some bullshit code, you are ruining someone’s life.  Do you really want to be the deliverer of misery in the world?  Do you want to blame their woes on your diabetes acting up?  Or do you want to say, “There’s no excuse.  Our servers sucks!  This code sucks!  This system sucks!  It’s imperative that we make it better.  To bring about a better world.”


Make a Comment

Make a Comment: ( 4 so far )

blockquote and a tags work here.

4 Responses to “I Hate Software Excuses (And You Should Too)”

RSS Feed for The Testing Blog Comments RSS Feed

Clearly this is not a software problem – it’s a people and process problem.

If the door were locked by a physical key, but the processes were the same, you would have the same problem.

Clearly…nothing! If the lady pulled a key off the shelf that went to the door and gave it to me, it would have just worked. Instead she had to grab a fob, program it. The programming process was convoluted and clearly didn’t work that well. That’s a software problem. It could be a process problem too, but I think the people did everything they were suppose to do (according to the process). They definitely weren’t stupid or incompetent or lazy (except for maybe our office admin).

It’s a possible scenario that the first time I get a physical key, and it doesn’t work. But chances are if it doesn’t work, it’s the wrong key. It’s not usual that it’s the right key, and it doesn’t work.

Have you ever lent a physical key to a friend or neighbor to water your plants while you’re on vacation, and it just didn’t work? Come on!!

Sorry, I can’t agree.

I hate software excuses, too. But I blame the people and their processes. You excuse them and blame the sofware.

Fair enough, jstrazzere; good view point on the situation. This blog won’t be much fun if we all agreed and didn’t debate. Would it?

Thank you so much for taking the time to comment. As the author, I really appreciate it.


Where's The Comment Form?

Liked it here?
Why not try sites on the blogroll...