I'm making a desktop app for my best friend's family restaurant (no, I'm not doing it for free).

Background info:

My friend told me he tried with several apps he found on the Internet; in fact, he claims they have worked fine for him ("by fine," meaning no bugs or crashes, the new meals are added, the bills are calculated with the right amount, etc.), but are very graphical unattractive at best, hideous and trying to leave you blind at worst (who thinks mixing yellow and red is a good idea for a GUI?), and lacking in features we wants / having features he doesn't need, so he figured he needed the app made for him.

Example: Someone and his/her buddies go to have their meal. He gives them the bill and cue some jerk in the group with a sattisfied sneer on his/her face: "Oh, didn't we mention everyone is paying for their own stuff?", while the others snicker. They have previously said X friend was paying for it all, and this... gaslighting starts about how they hadn't said that, how my friend has a "bad memory and shouldn't be a waiter", etc then he has to go back to the computer and do it over (and then the guys whine he took too much time to bill them, and start demanding a "discount" for the long wait.) This happens all the time. Resourcing to ask them about who is paying what at the very beginning doesn't work either; they lie.

The feature he urgently wants is to quickly separate bills (now, he deletes the order and does several bills for each jerk, which takes its time), to stop these bully people for causing trouble and complaining for his tardiness.

Now, he's a role model user. Excellent, in fact. If he has a question, he asks. If he doesn't like something, he says it. He didn't understand why stuff is rendered "inactive" rather than be deleted; I explained it to him and: "Oh, I see. It would be too complex given those relationships you mentioned."

The problem both my friend and I are dealing with:

The one causing issues is HIS SISTER. She's one of those "I can't do anything wrong / I'm always right / It's never my fault" people. Whenever the parents (the owners of the restaurant) leave her in charge of using the computer and adding data to the current app, bad stuff happens. Whenever my friend comes with a new order, she goes to the kitchen and tells the chef what to cook, but she forgets to add the order into the system! By the end of day, they have counted their winnings in $ X, but the system says is $ Z. Well, duh! SOMEONE didn't go their job! When she's confronted by the parents and his brother, she claims she did type all the info and clicked the "Add Order" button, but the system didn't do it because of a VIRUS OR A HACKEEEEEEEEEER!!!!! (A computer that is never conected, by the way.)

She doesn't even know what a virus means; it's just her little crutch to justify she didn't do anything right. If her brother points out the system has never failed to add stuff when he has used it, she pouts and mutters "Maybe is a virus that comes and goes..." If he points out the computer is safe from hackers due to not being connected, she stays quiet, but quickly goes back to her old ways.

This problem caused by her has been present in every app they have used. How can we (my friend and me) explain to her is not the program, but HER? If / when I finish my app, she's gonna blame it too; no matter how good I made it, it would still have "lots and lots of viruses that don't let her save stuff."

We feel that even if we teach her the difference between a virus and a software with a bug, she's gonna scream it's "has lots and lots of bugs, then."

If someone asks her: "Hey, I heard soulblazer made a program for you. You know, I need someone to make a program for me. How good was yours?" and she starts her rant about "viruses" and "being unable to save stuff", I'm gonna sound like a thief. I don't want that, neither does my friend.

Other than convincing the parents to ban her from using the restaurant computer and changing her tasks to cooking the food, or asking for orders (we don't want her to be fired over this), we don't know what to do.

  • It's not your business. Smile and politely reiterate that it's user error when the problems arise. Then shut up and correct things if possible/necessary..... that's what you are paid to do. And be thankful that this particular individual is creating more billable hours for you. (I didn't read the entire post.. it's just a rant for the most part)
    – Scott
    Commented Sep 4, 2016 at 19:51
  • @Scott Except she goes around telling to everyone (friends, Facebook posts, etc) that the current app they're using at her family's restaurant it's "a piece of s**t, it broke the computer!" and "we were ripped off, never ever ever buy anything from [people / company who made the app]!" If she's gonna badmouth my app like she did with all the others, then IT IS indeed my business. If I were to leave to avoid the badmouthing at this point, she would badmouth me either way because "never hire soulblazer, never finishes the work!" Sorry for not being "thankful" to someone like that.
    – soulblazer
    Commented Sep 4, 2016 at 20:00
  • 2
    Then gather evidence of the employee misconduct proving you are not at fault and sue for defamation or explain to the owners the damage this person is doing to your reputation and quit. My point is.. if you can't correct the situation and won't be adamant that the owners protect your reputation..... then it's your fault for staying in it. Leave if you aren't happy.
    – Scott
    Commented Sep 4, 2016 at 20:02
  • 1
    @Scott If I leave, what's to stop her from "commenting" to her friends that I quit and didn't deliver? We live in a small town where gossips travel a light speed.
    – soulblazer
    Commented Sep 4, 2016 at 20:09
  • 2
    Well, apparently nothing's stopping her now. So what difference does it make? With all due respect, I just think you're whining. Either take steps to correct the issue or stop dealing with the client. Get your emotions out of your decision making. Business is business.
    – Scott
    Commented Sep 4, 2016 at 20:09

2 Answers 2


In my contracts I have a field that tells: "company representative", that is the person who is officially authorized to communicate with me about the project and with whom I talk when I need info and stuff.

If I were you:

  1. I would meet your friend and tell him that you need a company representative, or contact person, who is "computer aware". You will only and exclusively talk with that person, everyone inside the company will be able to communicate with you only through this person.

  2. I would talk to all of them and say clearly that your app is tested and working perfectly, but in the remote case that there will be a bug or a problem the company representative (#1) will privately report it to you and you will make tests and solve the bugs.

  3. If there are viruses or hackers is a company problem, let them call a technician and fix the computer/network/etc.

  4. Anything that will be said publicly about malfunctions and possible problems about your work will be evaluated for possible sue for defamation and indemnify request. Anyone who wrote in social network or said publicly anything like that must delete the posts and fix the problem immediately.

  5. Add Google Analytics, or other stat service, to your app so that it will log the real accesses to it, so noone can tell that they added an order at time XX:XX when the logs shows no access at that time.

  6. Do your best to make your app stupid-proof to avoid any possible predictable problem.

  • I've dealt with stubborn users before, but never to this extent; that's why I didn't know what to do (all stubborn users before her at least understood finally it was a matter of their computer being too old or something beyond my control). The stat service sounds great.
    – soulblazer
    Commented Sep 5, 2016 at 15:03
  • I too was going to suggest that you should be logging entries anyway, who input what and at what time, independent from any order table or order_line table. That log should log every interaction, coded by type, so you can filter operation types out, like show me all the orders input between 1pm and 3pm for this user. I do not see how they can argue with you over that. This is an awful situation, and although I have had awkward customers in the past, never as bad as this. The other thing is to train the chef that he can only cook stuff that comes through on the system, not vocally instructed.
    – PaulD
    Commented Sep 5, 2016 at 17:13

With all due respect, doing this for free is not a wise idea. Western culture doesn't value stuff when it's free.

Were this family to actually purchase a restaurant point-of-sale system:

  1. They'd be required to decide on features that they need or don't
  2. They'd be on the hook to make a purchasing decision, and commit to their decision (i.e. not decide, the day after, that it wasn't appropriate for them)
  3. They'd be on the hook to arrange an opportunity to review the software before using it in the business.
  4. Most importantly: they'd be on the hook to PAY for additional training, consulting, or modifications

You have someone unreasonable on your hands. If this were me, I'd refer these folks to either an open-source product (do NOT offer to install or otherwise support it!) or a company that provides software and support. Take yourself out of the middle because over time this will only prove to be a drain to your morale, and it will wreck your friendship.

  • I'm not doing it for free, but I missed the "no" due to lack of sleep. I'm so sorry about the typo, maybe that's why they thought I was whining in the comments, but you are still right. She's unreasonable and spoiled. EDIT: She's not my friend; she's my friend's sister. In fact, he's ashamed and hates her over this.
    – soulblazer
    Commented Sep 5, 2016 at 3:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.