A practical approach to building bad software
As a Software Engineer, I’ve been building commercial software applications for over 5 years and started to notice how much poorly designed applications can create hatred.
At the end of the day, it doesn’t really matter how awesome your architecture is from a technical standpoint. If you don’t build things people need and help them, there will be hate.
For those who enjoy pain and suffering (or just laughing), here are some guidelines. The ultimate goal here is to build awareness about common mistakes and important parts of the software, no need to get salty.
1. Make it Slow
The app can’t load anything in less than 5 seconds. Ideally it should take at least 15 seconds.
Make sure you don't use Background Jobs either, you really want people to curse you while they look at a blank screen because they don't know what's happening.
2. I don’t know what that is. But I’m sure it’s impossible
Whenever a user asks you for a new feature, tell it’s impossible no matter how simple it is. Don't even bother discussing with your colleagues, just shout at the user and problem solved!
Alternatively, you can say “it's not in the scope” or “it’s someone else’s job”.
3. Uptime is not important
Don’t worry about uptime (SLA). It’s totally fine to have the system go down every 5 minutes. If the app is used for customer service it’s even better, this way your users can bitch about the system being down in front of other people :D
4. All on board of the hype train
Spend all the meeting time talking about how the newest XYZ framework you’re using is amazing. It's very important that you don't give your client time to speak, so they can't start saying some bullshit about how they need that new report. 6 months later, bitch about the same framework for some random reason and how it was a mistake to choose it based on hype. Again, this part is crucial, do not let them talk; they will start asking about that report you've been neglecting for a year.
5. Make it completely synchronous
Literally everything the user does should refresh the page and go to the top, so he/she has the chance to scroll all the way down and find what happened.
6. Pretend your software is so simple everyone will get it
“Pff. Who needs on boarding tips and Help articles? I mean, what could go wrong?”
7. Validating forms is not necessary
Just pretend everything is fine and reload the page with blank fields. It’s not your fault if the fields were guessed wrong. Seriously, it's not \o/
8. Your opinion is the only one that matters
Never. I said never ask your users about what they think. You’re God’s gift to Earth and know how to do a hello world. Your opinions is all you need.
8. The more confusing, the better
Make sure none of your form inputs have a placeholder and that you make dubious which field means what. Later on, you can be very professional and talk to your friends about how dumb your users are and laugh about it.
9. Do you want it? Come and take it!
Never help your users remember anything important. Instead, let them check the platform every 5 minutes.
Emails, text messages or mobile push notifications are for lazy people.
11. Use words other people don’t understand
Pretend you’re a lawyer and add jargons that don’t mean/matter. Some tips are: “Asynchronous Request through a Proxy Browser” and “Cryptography Salt”.
12. Ignore all affordances
Do whatever you feel like with the interface. For instance, you could use a Floppy Disk Icon for deleting a record and a Star Icon for logout.
Make sure you use something like HotJar to record the screen and make some gifs later.
13. Add unnecessary loading screens
Even if you’re opening a godammn calculator, display a very long loading screen to build expectation.
~ This one is for you Microsoft ~
14. Add your tip here…
What's your tip for building apps people hate? I'm waiting for your answer on the comments :)
If you’re not into hatred and prefers a software piece crafted with love, checkout GitShowcase and get your own rockstar portfolio \m/ (rock 'n roll hand). Victor F. Santos and I work really hard to provide you seamless experience.
❤️ Like, Share, Leave your comment
If you like this post, don't forget to like, share with your friends and colleagues and leave you comment below.