Fog Creek Software
Discussion Board




What would a sane person do?

This is just a stupid office politics question, and maybe I should just forget about it. On the other hand, maybe it is one of those things that could turn into something worse. I'm sure there are lots of people here who have written many applications that are used by office workers, and you might have a suggestion.
I wrote an application for managing the content of a web site, and there's a woman in the office who is supposed to use it once in a while. It really isn't part of her job (nothing is really part of her job, but that's another story).
Anyway, almost every single time she has to use it something goes wrong. And she announces to the managers that the program didn't work right. I have checked everything out and I'm sure the problems are mostly caused by her being confused and/or not motivated to do this work.
(I know 2 other people in the office who have had similar experiences working with her.)

Yesterday she clicked "send" and a page with an obvious mistake went out to a live web site. The program gives you plenty of chances to make sure everything is ok before sending it. This was a mistake that she would have caught if she had even glanced at the page for a microsecond. I happened to notice the mistake and fixed it before the outside world noticed.
Today she announced via email that the program once again would not work. She had the same problem 2 days ago and I had explained it to her.

Recently she accused my program of losing a lot of the information she had spent the past six months entering. But I couldn't figure out what she was basing this on, since there was no evidence of any data having been lost. I have the complete server logs and I spent half of a weekend analysing them, to make sure what she said wasn't true.

I realize the programs I write are never perfect and sometimes a user's mistakes are very understandable. On the other hand she might be making my program a scapegoat, to get out of doing the work.

Should I bother to defend my program, or just forget it and assume that everyone knows what this woman is like?

The Real PC
Tuesday, May 20, 2003

Do to others as you would have them do to you.

T.S.
Tuesday, May 20, 2003

That means never defend yourself. I find this confusing because some of the books I've read on how to be successful at work say always make sure to defend yourself (in a nice way of course) if accused of making a mistake. And if you really did make a mistake, admit it right away and fix it.

I have practically no political instincts, so I have to analyze these situations, read books and ask advice. Nothing just tells me what to do.

The Real PC
Tuesday, May 20, 2003

There's one in every crowd :)

Seriously, when it comes to bugs, I make sure that everybody understands that just because there is an error in the output doesn't mean that there is an error in the processing--there is also the possibility that there is an error in the input. I also make it clear that anything that anything that surfaces after acceptance testing is complete is assumed to be an input error in the absence of evidence to the contrary, where the only acceptable evidence is repeatability. In some cases, repeatability may mean "I'll sit down here beside you while you simultaneously do the work and talk me through what it is you're trying to accomplish."

Maybe I'm just lucky, but it's worked for me so far! To be honest the 'show me' test has caught quite a few bugs, even more design errors, and 1 or 2 cases where the training just didn't take :)

Ron Porter
Tuesday, May 20, 2003

Document everything.

(with things that are legal) You can never go wrong by documenting what's going on.

So set up a bug tracking system (hmmm... where could one get one of those?) and let management know that since you're involved with multiple projects, it's really the only way for you to stay sane. Try to get their support on the idea of "if it's not in the bug tracking system, it's not a bug"

Now your mantra is "did you enter the bug?"

Her: "It lost my data!"
You: "I don't see it in the bug tracker."

Her: "It made a mistake"
You: "Put the details in the bug tracker and I'll be happy to take a look at it"

etc, etc, etc. If she does enter the bugs, then ping on her for details, screen shots, whatever is reasonable to duplicate the bug.

If you can get the whole office using the system and adhering to "if it's not in the system, it's not a bug" then either she'll be forced to be more specific in her complaints, or it will become much more apparent (and quantifiable) as to what's going on...

Philo

Philo
Tuesday, May 20, 2003

Have you ever done a walk through with her - if not do it with a witness if possible and set the place and time with mails sent to the manager responsible as well.

Kim
Tuesday, May 20, 2003

Embed lots of logging into the next build of the app. Log everything (to a text file, the db, or something else you can get at remotely) -- and then you can tally up what she says with what she actually did.

Duncan Smart
Tuesday, May 20, 2003

Yeah, I normally have my applications log all the data entered by users. Why didn't I do that with this one?? All I have is the server logs. What a dummy. I think I will add a complete logging system tomorrow.

The Real PC
Tuesday, May 20, 2003

RealPC,

Hey, we once had a guy claiming that someone was making changes to his files while they were in version control - that someone was subverting his work.  What was weirder, is that this guy had some outstanding talent.  He was an excellent mixed signal circuit designer.  But, couldn't work with others - it was bizarre.

Just all part of the game.  Start logging transactions so that you can keep a log of everything she does and can play it back for the world to see.

Nat Ersoz
Tuesday, May 20, 2003

I totally disagree with the previous poster. It surprised me how you described the situation; I can tell you're a very decent person and not many would react the way you have so far.
I've had the same experience many times. The best strategy I've found has been this: don't take her seriously, and try to ridiculize her (in a subtle way) for her claims. I'm pretty sure other people have used your system and can tell the errors aren't there; maybe the managers have lost confidence in her anyway (this kind of person tends to act the same way across all their responsabilities).
Hope it helps.

Dario Vasconcelos
Tuesday, May 20, 2003

Pop quiz: What would you do?

Shoot her in the leg.

Clutch Cargo
Tuesday, May 20, 2003

If you currently don't have the time to add a logging system to this application you might want to is to ask management if it would be okay to temporarily install a keyboard logging program on this particular end-user's PC.


Tuesday, May 20, 2003

If the user blames the app, the same user would say the app is putting erroneus data into a log. Try this

1. She complains
2. You say "thats weird, I will check"
3. You walk away.

mosewhitecotton
Tuesday, May 20, 2003

Since she's complaining to people other than you (managers etc), I think you need to have your side of the story heard.

One way to do this is to write an investigation report for each 'bug' she complains about. Document her original description of the bug, a deeper explanation of it (i.e. after you've asked her for more info), what you investigated and what you discovered, and a list of resulting actions required (documentation needs updating, user needs further training, code needs fixing, etc). Include in the report how much time you spent on the investigation.

Circulate this report to your manager, the person who reported the bug, and anyone else that they may have reported the bug to.

If you end up with a stack of reports in which no problem was found, your manager should get the hint that this person is wasting a lot of your time. Hopefully she'll get sick of being exposed, too, and she'll stop blaming your software. If it turns out she's reporting genuine bugs, at least it shows that you're responsive in fixing them.

Darren Collins
Tuesday, May 20, 2003

Real PC, the situation you describe is potentially quite difficult.

Formalising the bug process is one possible response, but then you run the risk that the complainer can just enter lots of unsubstantiated complaints and continue to complain.

There is a base problem, in that the staffer has not been trained properly, or your application is not easy enough to use, and probably these are combined with her not being comfortable with it. These ideally should have been addressed during the project.

What you need to do now is explicitly address the specific problem, which is that unwarranted complaints are being made.

You should let management know that unwarranted complaints are being made, and also this shows a need for better training, and that you will accept responsibility for investigating this and helping the staffer to become more comfortable with the application.

Try to help her. Then everyone wins.

Must be a manager
Tuesday, May 20, 2003

It would be really nice if apps could make an "error log" of every interaction the person has with the app.  When data is overwritten, it can save the old version somewhere first.

Instant evidence.

Tj
Tuesday, May 20, 2003

The Real PC,

As I am reguarly successful in dealing with difficult people and 'turning them around' I am interested in your situation.

This sort of thing can be a really satisfying challenge when you dissasociate yourself from the emotion and view it as technical task.

After imagining I was in your place, that I had written some software and a semi-incompetant semi-malicious user was making it look bad, I reasoned I would ponder the following.

What's my goal ?

The best possible outcome is that this user turns around her view of my software and starts telling people how great it is.

The chances of her admiting her previous accusations were false is nil, that's not a valid goal.

**********************G*************
Perhaps the most achievable positive goal for me here is simply that she continues to use the program, is not overly unhappy with it and in case of problems comes to me and doesn't start telling others about the issues first.
**********************G*************

How to get there ?

I am feeling negative emotions towards her, I feel unfairly treated, she, judging from her actions also feels unfairly treated and has negative emotions towards the software she is (being made?) to use.

I will phone her up or email her and ask if she has 10 or 20 minutes available some time in the next couple of days for me to talk to her about the program (even if she sits on the desk next to me I will contact her and ask for some time).

When i approach her to start the discussion the first thing I would say with a big smile on my face is

"WOW there really have been  some problems with this system hasn't there,  hopefully we can sort some of them out." (SMILE).***

1 - _WE_

2 - When I embrace her complaints she wont feel the need to re-enforce them.  PEOPLE SHOUT WHEN THEY THINK THEY CANT BE HEARD.  Make sure SHE KNOWS you hear her.

3 - In the course of the conversation, later when she is smiling and now considers me on her side I will subtly but repeatedly, mention that I have found no evidence of fault on the software side.  I estimate a 75% chance that by the end of our discussion she will at least once admit her problems might have been her fault.  Once she feels safe to do so, that I wont jump on her.

4 - In front of her in a casual conversational manner I will list all of the problems she has reported.  I will give three possible explanations for each.  A couple of possible technical reasons (that i have already discounted) and a user error example.

"Now last week you lost those three files from the Shareholders section"

"YES!"

"ok, well we have stepped through what happened with three new files, I can think of a couple of things that might have happened..  "

I will breifly explain the technicalities even if she doesn't understand them, I do this to make her feel included, set me up as an authority and basically to give her things to think about, the more she knows about the system the more 'ownership' she has.

5 - Now I have shown the user I care about their concerns, I am taking them seriously we need a plan for the future, I will suggest that the next time she uses the application I will sit with her or I will check with her afterwards that everything worked ok.

    "So if there is a problem, if you could email me a short description I will put it in this excel 'bugs list' and then look into it and get back to you the next day, Obviously all new software has some problems, if we can sort out the stuff that's going on with you it's going to make it a lot easier for other people who use it in the future.'.

  Giving her a process (has problem, email developer, get email next day) makes her feel less helpless in the face of a problem, incompetant people scream and shout because they feel helpless because they don't have the abilities to  determine their own fate. 


6 - If things are going really well, If this software has now changed in her eyes from a thorn in her side to something she feels constructive about, i will throw in a

"I am sure we can this all sorted out but If we can't we will have to sit down and talk about other options, I dont want you using something you aren't happy with". 

At this point I would expect her to express some faith in the program or to say something like :

  "Ok, so if it happens again I email you a description and you will review the thingy at your end and then check the data that did go in for me ?"  "yes"  "ok, good!".

The user has changed her attitude from "I am being forced to use it, I dont like it, I will scream and shout so they know I am unhappy"  to "I am part of the development of something, people care about my concerns".

Ironically, The more sure she is that i care about her concerns/problems the safer it is for me to ignore them.

Over time as i hold her hand she comes to learn how to use the software more competantly and the problems stop.  That's the plan.

****
Given this approach I consider the chances that I 
achieve my previously stated goal around 80%.

If the user dissatisfaction continues or intensifies or
if my discussions with the user don't go well my next
step would be to explain the problem to a supervisor.

Explaining the problems she had

  "lost files", "missing data", "incorrect entries".. etc

Explaining my thoughts on the problems

  "I can't see how that could have happened unless she..."
  "I have looked through the code for that and since she is
    the only person...."

Propose a Work around where she doesnt have to use
the Software

  "Can we get her to organise the files and then pass onto
    Eddy to input them into my app ?"

Leave the decision up to the supervisor.
****

/--------------------------

I have this sinking feeling that a lot of people
will flame me claiming this method is totally the wrong
approach and I am setting myself up to be walked on,
admiting fault etc etc

To those (imaginary) people I must ask

  1 - Do you often turn difficult people into fans who sing your praises ?
  2 - Are your people skills a real professional asset ?
  3 - Is being RIGHT your goal as opposed to being SUCCESSFUL ?
 

----------------------------/

*** Crazy Americans may prattle on about getting sued and admiting liability, this is just silly, if you are seriously worried about being sued you live in a world so different from mine you should disregard my advice. 

One would hope that not being negligent would be sufficient defence against any legal claims of that kind. 

Also your co-workers (and hers) know who is really negligent and who isnt, never act from fear.

braid_ged
Tuesday, May 20, 2003

Evidence of sabotage or incompetence often isn't enough.  I was in a situation once where an employee was deleting data to disguise the fact they had been lax in entering it in the first place.

Long story short, despite all the evidence I had, including logs, it still came down to my word against theirs.  Management was not technically competent to evaluate what I was telling them, or just didn't want to know.

be careful
Tuesday, May 20, 2003

[It would be really nice if apps could make an "error log" of every interaction the person has with the app.  When data is overwritten, it can save the old version somewhere first.]

That's what I normally do. I didn't for this application, I guess to avoid wasting disk space. But starting tomorrow it's going to save the date, time, cookie, IP address, etc., and all data entered for every interaction.

These logs have often been useful to me in the past, because I could reconstruct everything that ever happened between users and the program. If the program had a bug that caused data to be lost or over-written, at least I could go back and dig it out of the logs.

If I had done that in this case I would be able to see exactly what has happened with this user. The web server logs are helpful, but they only show information that came in via the url, nothing that was posted in from a form.

The Real PC
Tuesday, May 20, 2003

Real PC, the way I approach these things is that it's like a duty, in the honourable sense of that word.

You, as the developer, have the power to resolve a problem bugging the user, whether by training or by changing the UI or whatever.

When I've encountered situations such as your describing, in the past, I've really enjoyed seeing the user and getting their feedback. They like this, if you're genuine, and they like getting their problem fixed.

I consider those sort of problems are problems in the design of the application or deployment or training, and make that clear to the user. Really, it's quite good fun.

Must be a manager
Tuesday, May 20, 2003

RealPC,

This person is obviously an incompetent luser. She's scapegoating you based upon her lack of clue. She's basically doing a job that she's unqualified for and she has no business touching a PC.

Therefore, as far as the damage she might cause, you might consider one of two actions: unilaterally disabling her ability to post changes directly to a public web site; or outright withdrawing the program from her use. I'll get to the political aspects in a second.

The first alternative would amount to your program's "publish" button posting her changes to a holding directory on the web site. After review, the changes could be moved to the live web site directory.

As far as the politics, defending yourself, etc. It sounds clear that your employer has few hiring or personnel standards, because if they did, people like this woman would not have the chance to mess up public web sites. Therefore, it's going to be a you-against-her debate.

Is it possible to pin her down to a training and review session? If she won't agree, I would send out a memo stating that she won't agree to a review, therefore any problems she incurs are not your responsibility.

And, can you speak your manager or someone in a parallel capacity about this problem, to assess exactly what her political clout is? This might give you a better idea what your chances and risks are. Nobody but you can do this.

Bored Bystander
Tuesday, May 20, 2003

braid_ged has it on the nail.

This user, for one reason or another, is either not confident or does not trust the application.  You have to woo her and empower her to use the application and feel in control.  The only way she has of expressing her frustration and lack of confidence is to blame the 'other'.

When I say woo, this would apply if it were a same sex situation as well.

Simon Lucy
Wednesday, May 21, 2003

I agree that braid_ged has got the right idea.  I've been faced with this situation before, and the approach he detailed is scarily similar to what was done there to neutralise the problem.

A user obviously didn't like being made to do stuff differently, and would be calling many times every day to say 'the program isn't doing X'.  Through getting the user on our side, making them an ally, concentrating on exactly what problems they thought they had, and holding their hand all the way through, all the problems go away.  Unfortunately there was a tougher nut to crack that there wasn't the time to do that for.  The tougher user said that the program never worked although we could see from logs that it did.  This user never came on board, and in the end we used the other approach - get someone else to use the app on their behalf.

Konrad
Wednesday, May 21, 2003

For "Must Be a Manager", who suggests only two options:
1) User hasn't been trained
2) Application does have issues

May I humbly suggest a third (and the most likely) option:
3) User is honestly an incompetent asshole.

Some people simply cannot play well with others. You can try to train them, you can try to send them to "how to win friends and influence people" seminars, you can try to help them out.

But often the only options are either to marginalize them or show them the door.

Figure if someone has made it 20-30-40 years and still doesn't understand how to play well with others, you'll be darn lucky if you can even make a dent.

Philo

Philo
Wednesday, May 21, 2003

1) User hasn't been trained
2) Application does have issues
3) User is honestly an incompetent asshole.

or

4) user has a personal axe to grind and this has nothing to do with the app whatsoever

Just me (Sir to you)
Wednesday, May 21, 2003

Okay, true, but I would've considered (4) simply to be a subset of (3)

[grin]

Philo

Philo
Wednesday, May 21, 2003

My vote is for Philo's #3. I've written production test software for many years and I've often found that when a production worker doesn't feel like working too hard that day, they'll complain that bad test software is causing problems so they can't do their job. And of course they'll tell the manager, who then comes and talks to me.

What I do: I'm very vocal about accepting and wanting any and all *sincere* defect reports, suggestions and comments on the software I write. I act on them quickly and let people know the disposition of them. I offer to sit down and train them on new and changed software.

But whining, complaining and crying wolf isn't allowed. I've had a few conversations with management over the years, telling them to "put a leash" on Employee X, or else I will. And if I do it, it makes Manager X look bad so they want to take care of it themselves.

Mark Newman
Wednesday, May 21, 2003

This user is not competent to do any job requiring attention to details and organization. She is not qualified for her job but is close friends with her manager. So getting her fired is out of the question. Furthermore, I would never try to get someone fired. However, if I were her boss, I would have fired her by now or moved her to a non-technical position.

This user was supposed to be involved in the development process ever since I started it. I was very willing to give her as much training and attention as she wanted, but she wasn't interested. She literally spends 80 to 90% of the day on personal phone calls and email, or else chatting with friends in the office. There is not a thing anyone can do about. I'm just looking forward to when someone else takes over using the application (it will be soon).

On the other hand, I was under time pressure when developing the application and I know it isn't perfect. I'm probably not the greatest at interface design. However, my manager made most of the interface decisions. Well anyway, excuses aside, I know the program needs improvement, but that is only a small part of the problem this user is having with it.

Someone mentioned that the program could give you a chance to preview pages before sending them out to the internet -- well it actually does that already. The woman clicked at least 2 confirmation buttons without ever looking at the screen. Otherwise she would have seen the mistake (a whole section of the page was missing). She was not paying attention. She is not going to pay attention, no matter what.

The Real PC
Wednesday, May 21, 2003

call the maffia. they are one of best solution providers in this field :)

na
Wednesday, May 21, 2003

I think you are asking the wrong people PC. Sane people would not be in this field. All this talk of certification... well, we probably should be certified!


Wednesday, May 21, 2003

I don't know what your management structure is like, but you shouldn't be dealing with this on your own.

Have a quiet, off the record, word with your manager, or someone in management who you can speak to, and say exactly what you said in the original post.
Tell them that your not sure how to deal with it and you need help.
The number one job of any manager is to make sure things are running smoothly and helping get this sorted may be a top priority.

No-one (so far as I saw, although I did just speed-read 35 posts!) has raised the possibility that the person is merely trying to cover for themself. If she(?) is having problems and can't do the job properly, there's a good chance she already knows it and is terrified.  Under these circumstances she would maybe even appreciate some reassuring words from above and extra training.

SteveM
Wednesday, May 21, 2003

As a UI advocate, my first gut feel on reading this situation was that the UI was not well suited to the user.

Real PC has stated that s/he is not the best UI designer, and that someone else designed the interface anyway.  This is true and certainly not the the ideal way to design a UI. But it happens.

So, where do you go from here? May I suggest:

1) watch her work with the software and see what she pays attention to, and what makes no sense to her, what she thinks the software does, what she's trying to do with it. This activity is something like "contextual task analysis."

Concentrate on the UI first...because it is *especially* true that for users like this, the UI is the software.

2) you need to make the most idiot-proof UI possible to help her avoid mistakes. Warnings don't work with her - to the best of your abilities, forbid her from making a mistake. Don't let her make a mistake and warn her that "something bad might happen, watch out!" Every time you consider creating a warning message, or requesting the user make a choice, try real hard to find another way to do it that eliminates the user input.

To me, it seemed like you assumed a rational, thoughtful professional person would be your user. Obviously this is not how it turned out!

3) if you are not given time/resources to help her out, make this management's problem. Either give me the time to fix this system, or get used to hearing complaints.  Here, you can enlist her support in getting the time you need to work on it ("hey, you don't like it? well, talk to the manager to allocate someone to fix it!")

... a few thoughts. Hope they help.

Lauren B.
Wednesday, May 21, 2003

As unpleasant as it may be, I think the best solution is to work with her.

Make it clear to her that you know she's having problems, and you want to eliminate them.

Ask when you can sit down next to her as she uses the application and see what she does and how she uses it.  When she raises a bug, ask her for as much information as possible to isolate the bug.  Chat with her about the weather, current events, etc.

In other words, become her best friend.  She will be less likely to deliver spurious bug reports, and can provide really valuable feedback.

Now, she may still have plenty of problems, but at least you can mitigate her pressure on you.

Brent P. Newhall
Wednesday, May 21, 2003

Based on the limited information, I would guess it's a combination of #3 and #4.

Basically, as you stated, she doesn't have a clearly defined role in the organization. Clearly, she cannot competently do the jobs assigned her. Financially, times are tough.

I have a hunch that this woman is very, very afraid that, if there is a perception that she cannot do her work, she'll be out of a job. Therefore, she's doing whatever she can to make it seem like it's not her fault, with the hope it will spare her the blame.

As for what *you* should do, I cannot give a good answer, because it depends to an enormous extent to your boss, whom you've said nothing about.

Joe Grossberg
http://www.joegrossberg.com

Joe Grossberg
Wednesday, May 21, 2003

Another observation:

Real PC is suffering from a double whammy: an inattentive co-worker who isn't able to operate a program; and being blamed for a user interface that was dictated to him.

I've been in the exact same situation (not quite as bad). A client once asked me to develop an internal customer tech support issue-tracking database. The micromanaging owner (a codehead who gets his rocks off on being the big boss and always being the brightest guy in the building at the same time) basically ordered me to lay out the screens in a certain manner.

This guy ridiculously over-engineered the program design with features that he never really explained. The users *hated* the program and the cumbersome screen layouts, most of which accommodated unused TBD features, and the users blamed me in turn.

The program only came to be worth a crap when I started to pull features out and improve the user interface, based directly upon user feedback, and ignore the owner's original crap design. IE, once the owner had stopped ego tripping and lost interest in this project, I could improve things w/o interference.

Real PC needs a friend in management who can help resolve this based on the reality of the situation. I get the sense that he's being set up as the scapegoat and he's being made responsible for decisions made by others.

Bored Bystander
Wednesday, May 21, 2003

I would strongly support my original suggestion, Real PC.

You've got some poor user who has to work with something she knows nothing about and doesn't understand.

She's scared of talking to the programmer because he treats her like an idiot. Her managers don't know what to do and avoid giving her useful help.

Really, developers have power. Accept that power and exercise it responsibly and you find people treat you as if you have power.

If you personally find it difficult to determine what users are talking about, maybe take along one of the other programmers who can decipher their concerns. It's one of the most useful devvleopment skills you will master.

Must be a manager
Wednesday, May 21, 2003

Must be a manager:

Great advice - normally. However, I've gotten the impression that RealPC has already tried to work with the user and never got anywhere, mainly due to the user deliberately not cooperating. Therefore, there's nothing to work with.
If this is not true (IE: relationship has been adversarial due to Real PC mishandling it) your advice would apply. However, you are then relying on someone who couldn't work with the user to diagnose their own inability to deal with the problem.

That's why I am saying that he should enlist a trusted manager to help diagnose the situation. Doing so would cover either case.

Now, doing so is a thread in its own right!

Bored Bystander
Thursday, May 22, 2003

my 2 cents:

I've met simillar users before. The problem is not the interface, is't the way they use it. If you click through TWO buttons and still make the mistake, the software cannot be to blame.

What I would do: document every complaint from her. First the complaint, then the analysis of what really happened (logs etc). When you have enough proof that she is wasting your time, you could start answering.

The nice thing would be to just answer to her first, and not to the manager as well. Tell her what the problem was, and if it was her mistake ask her not to do it again. If she continues, then just relpy to all.

Slight ridicule (vey slight) together with slight (again, very slight) eye-roll achieve a simillar effect, I have been told.

Dimitri.
Saturday, May 24, 2003

*  Recent Topics

*  Fog Creek Home