20 Ways to be a Good User

I don’t expect anybody who should read this to actually read it. A couple of users the past few days have inspired me to write this little guide.

  1. If you request support in a channel and nobody is around to answer within two minutes, make sure to voice your frustration and leave immediately. Make sure that you stay for no longer than four minutes in total.
  2. If a developer tells you the answer you’re searching for is in a piece of documentation easily accessible, refuse to read it, perhaps citing an inability to read. Your time is important, and the developer should know the answer.
  3. Don’t read instructions or information in detail. Glancing over it should be enough. If glancing isn’t good enough, repeat your question. Don’t add any additional information to this question, or it might confuse the situation.
  4. Remember, you use this software. You have rights. The developer’s personal life, work life, or stress level is completely irrelevant. If they don’t provide the level of help you expect, remember that this is not your fault, but theirs. They owe you support, and be sure to complain loudly in as many forums as possible.
  5. NEVER thank someone for their support. They’re working for your needs, and don’t deserve any gratification. Besides, thanking them gives them a sense of control, which you should attempt to keep for yourself.
  6. Your problem is the most important. The developer may have other people they are trying to help, but it’s unlikely that their problems are more important to yours. Be sure to explain this, loudly if necessary.
  7. If you are influential at all, your opinion matters more than anybody’s. Follow the previous rule, as it will definitely produce a positive outcome. Be sure to relate the developers in question to members of organized totalitarian political parties.
  8. The more supportive you are of a developer’s software, the more support you deserve.
  9. Don’t use punctuation or bother with the spell checking. This slows down the communication between you and the developer.
  10. Insult the developer. This establishes control which, as previously mentioned, is important. Support should be thought of as a battle. Popular insults include “asshole,” “mother f**ker,” “dipshit,” and “newb.” Insulting their mother is another good way of establishing control.
  11. If your problem is very important, make sure to complain loudly about the software in general on several popular forums. The louder you complain, the more likely it is that the developers will fix your problem.
  12. If you’re confused by the “support” that the developer is giving you, don’t feel bad, as this isn’t your fault. This is the developer’s fault. Developers live in a different world. They’re nerdy, geeky, socially inept people who aren’t able to clearly get points across. Tell them this, as they probably don’t realize it. It is sure to ease the communication.
  13. As a user, you’ve come to know this software, probably better than the developer. If the developer says something about the software, take it with a grain of salt. They’re only the creators. You’re the one that uses it.
  14. Don’t waste time by upgrading to a recent version of the software. The bugs you have are important, and upgrading may introduce new bugs. It’s best to get the current bug resolved. If necessary, inform the developer that they need to create a patch release. This is especially important if the software is several years old.
  15. You represent the majority of users. Your feature request is everybody’s feature request, and it isn’t a hard to implement, really. The developer should be able to do it RIGHT NOW. Drill this in to the developer when they start stating bullshit like “that feature requires a rewrite of our codebase,” or “that feature conflicts with this other feature,” or “we’ve never heard of anybody wanting this feature before.” They’re just lazy.
  16. If you have a family member or close friend that tells you a fact about a piece of software, and the developers try to tell you that your family member or close friend is wrong, they’re just jealous. They don’t want to acknowledge your family member or friend’s expertise, especially if your family member or friend can “program” Microsoft Office onto your computer.
  17. Documentation is essential to a program. Many developers will claim they have not had the time to produce extensive documentation, citing work or personal life or other bullshit as “reasons” for not spending time on this. Often, they will ask you to do it. Have no part in this, as it’s a trap. If nothing else, they will try to take credit for your hard work.
  18. It is your responsibility to fill out as many feature requests and bug reports as possible. Do not check for duplicates in the bug tracker, as the more redundant bugs that exist, the more likely the developer will notice and fix these bugs, or implement the features.
  19. Sometimes you just have to switch to a competitor’s program. Your problem may be trivial, according to the developer, but it’s still a problem, and if there is one problem, there may be many. What are the chances that the competing program would cause problems?
  20. If the program is open source, fork it. You can do it better. To gain press coverage, post on all the forums and popular news sites. You’ll gain more respect and developers this way.

I hope this has helped all the users out there.

NOTE: For the sarcastically-impaired (if you live somewhere in the vicinity of Betelguese, this includes you) do not actually take this advice.

11 thoughts on “20 Ways to be a Good User

  1. Wow, someone really got you angry 🙂 But I have to agree, lot of users behaves just like that 😦 Sometimes when I keep talk about tolerance and politness is talking something about from middle ages.

  2. Nice. We all know that user behaviour.

    22) If someone kindly asks you for more information or a better description of errors, doubt he / she knows anything at all. Consider your given informations as enough. It is not your problem if others don’t have the same brilliancy you have. Answer not at all, or in a rude manner. Think of starting to flame the person, to keep the person’s trap shut.

  3. I got one where the user mocked me for building a cathedral because I insisted on not publishing the code to a public version control system until the code was polished and well documented. The code of course is GPL. But not having a public CVS is a big crime now as it keeps users “aloof.” Oh, and I want to forget the hours I wasted explaining my decisions, which of course was never respected.

  4. Don’t forget, if a huge and complex sytem can’t be mastered at once by a complete computer neophyte, the programmer has done shoddy job.

  5. Pingback: as days pass by » 18 ways to be a good developer

  6. I came to your site looking for a copy of the Vim logo. Just to answer Anonymous above. If you are not distributing binaries, you have no obligation to publish your modifications. This is called privacy.

    Even if you are distributing (binaries, or anything else), you are under no obligation to use CVS or to accept patches. (Some people accept patches, some people don’t).

    (Short and slightly incomplete): Your only duty is to deliver sources (maybe a tar ball) to your customers, those to whom you have delivered binaries. Unless you take it on, you have no obligation to the General Public.

    Even the dimmest poster to Slashdot knows this.

    Of course, if people are importuning you for your development versions, you can put them on you []hitlist and decline to sell them your binaries. This is standard practice in the embbeded world.

    The GPL understands ownership and is business friendly!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s