2/01/2015

02-01-15 - Fucking Fuck the Fucking Web

ADDED PREFACE : This is a pretty ranty rant. I write these on a semi-regular basis, and pretty much always delete them before posting them these days. I thought I would leave this one for old time rants' sake.

So I was forced to upgrade my Firefox from 15 to 35. AAAARRGGGGH.

Of course first thing is "Classic Theme Restorer" to make it look reasonable again. (christ fucking rounded shit). Ok, waste a bunch of time as usual learning new settings and updating. Whatever, fucking awful life as usual, no biggie.

But it just SUCKS it sucks it sucks. I want fucking FF 15 back.

It's so much *less* responsive and less asynchronous than before despite the big rewrite to make it async. Loading a page now, the elements keeping popping in and re-flowing and shit moves all over. It takes way longer for the focus text box to become active. I have to either manually click in it or wait forever for most of the page to load for it to activate. So bad. Even typing in the address bar to go to a new page (while a page is still loading) is all hitchy now, that is so fucking retarded and borked, your basic GUI elements need to always be independent of the page loading.

The HTML5 video player is just so not ready for primetime. Fucking buffering doesn't work right, it hitches and stalls out and then won't restart. Audio cuts out; you can't seek; etc. It's just so frustrating I want to smash my goddamn computer. I was hoping to run without Flash now, but it's just not ready. You can't fucking ship it like that.

Every so often I log in from weird places and Google decides that's "suspicious activity". So now I have to pick a new password.

If my password isn't good enough, the entry form just gets wiped, and I have to enter my old password again, and the new one twice. Nope, not good enough, wipe the form.

God damn you. I don't want to enter a complicated password because I have to type the damn thing in on my fucking PHONE with fucking nightmare starred-out stupid fucking touch keyboard, where things like going caps and lower case takes forever. I want my password to be "hello" or some shit. Nope, blank the form.

This is really fucking important Google. Because the big security leak is hackers just guessing passwords. It's not when fucking Target or Visa or someone just loses an entire mainframe full of personal account info.

Actually the biggest leak is when a major retailer literally GIVES AWAY everyone's personal account info. Because most of the big hacks are "human engineering" which just means the hackers called someone up and that person gave them access to their back end.

So yeah, really fucking helpful that you're making me put punctuation in my password and starring it out so that noone in the room can get it. Thanks a lot. That's going to help when Home Depot loses millions of credit card numbers.

Oh yeah, and when I get suspicious activity, Google locks my account and wants to send me an SMS.

My phone number is a FUCKING GOOGLE VOICE NUMBER. How am I supposed to get an SMS? Oh, I'll send it to my actual hardware phone number (which I never use and don't even know, but I have it written down somewhere.) okay, let' try that... MY PHONE GETS SMS WITH FUCKING GOOGLE HANGOUTS. And it won't let me log in and get my SMS because Google has flagged my account for suspicious activity. Amazing.

(and when Google Hangouts can't login with my primary Google account it automatically switches to my RAD account without asking. No retry / enter a new password prompt or anything. Awesome.)

Oh my god, I hate the new fucking google maps. Every time I want a map now the process is :

1. Huh, WTF, why is it loading so slow ?
2. Oh my god the fucking nav buttons still haven't finished popping in?
3. Aw crap, it's the new maps I forgot about this nightmare
4. How do I go back to the old maps? Is it settings? Nope
5. "Help" button.
6. Select the reason why I want old maps : "I want to punch you in the nuts".
7. Return to Classic Google Maps

Fucking christ. If it's slower it's worse. Don't fucking ship it. My god it's so fucking slow.

And how is the fucking most basic search interaction of maps & normal search still so fucking garbage. Basic shit like if I do a normal search and I get various search results, I can't just click one and go "show on maps". If I'm in maps, I can't just take my current search text and switch back to a web search. If I'm in maps trying to get directions, and I put in a description search instead of a specific address, it kicks me out of directions mode when I choose the address. WTF WTF. This is what you fucking do and you're so garbage at it. Everyone is fired.

I was going to write "I don't understand how companies look at these things and think they're okay" but actually I know exactly how it happens.

The fundamental way that tech is developed is all wrong.

There's this very weird non-results-oriented thing that can happen with developers. You sort of go into this rabbit hole where you have a blind spot for what the actual user experience is.

In any product development cycle, it starts out with reasonably good intentions. You want to solve a problem and make things good for the user. But then you translate that into todos which are technical, like "rewrite the back end in such a way". The weird thing that then happens is the developers focus on the technical todos, and they are happy if they accomplish them, even if the end result is actually worse for the user.

It's like :

1. We want to make it good for the user
2. To do that we have to figure out some tech todos
3. So we decide to do A, B, C
4. We go away and put our heads down and crank on A, B, & C
5. Great success!  We have accomplished A !  Pat ourselves on the back
6. We have totally forgotten about #1.

(though realistically, even at the start there are usually lots of "todos" on the list that have nothing to do with improving user experience. There will be things like "make it IEEE PPTP RFC 40187 compatible" which you feel is really important but in fact for the user means almost nothing. There will also be lots of pet todos from the developers like "make it fine-grain threaded" which again, if they actually result in a user experience that's more snappy, great, but if not then it's just tech masturbation).

As far as how the horrific moronic GUIs keep getting green lit, I don't really know. I can only guess. I guess that there are probably GUI mockup meetings where things are approved based on still screen shots. I guess that managers who are in charge of these things have no fucking clue about the most basic principles of good GUI design, like "buttons should obviously be buttons", "focus should never move without the user doing it", "GUI elements should not trickle in or change unexpectedly", "buttons should always be in the same place", "delays in rendering should not change the meaning of UI input", etc. etc.

And there's a general lack of testing. You have to get people in and watch them use your software. People who aren't familiar with it. Don't give them any instructions. Any time they need the help or get frustrated, you have failed. It can't be a last minute thing when you aren't willing to make drastic changes. It has to be early and often and you have to have many months left to make changes before shipping. I cannot believe that these companies actually get anyone to try their product (or web page), and see how fucking shitty the user experience is, and actually respond to it.

(Nobody who ever uses Outlook.com comes away doing anything but screaming their head off)

Fucking Amazon sucks as a UI. Fucking ebay sucks. Fucking facebook sucks. Not like sucks a little bit, like they're just awful. Our fucking most valuable, biggest most important software products are just fucking garbage. Why is it so fucking hard for me to spend my money on the internet? It's ridiculous.

Part of the problem is that by the time you have something to show, the team is usually so weary and calcified, that they don't really want to listen to any feedback. They'll make lots of excuses to not change things.

Managers are hesitant to ever admit a mistake or cut a huge feature or redo work, because it reflects badly on them. That's terrible. It means that broken awful shit gets shipped just because they politically have to keep insisting "we did a great job". In a better world, a manager would be able to say "actually our GUI rewrite for VC2010 is a total fuckup and we're going to just bin the entire project and go back to VC6". Unfortunately in corporations, like real politics, it serves you better to insist that you totally believe in all your choices still even when they have obviously turned out to be huge fuckups. Kind of mind boggling that people like it better when their politician is walking down the street naked saying "look at my fabulous choice of clothes" than if they would just admit that they got duped.

I think an interesting idea for development would be to have a totally separate "finishing team". You get all new developers and managers on at the end, so that they aren't wedded to any of the ideas, they aren't building fences around their work and unwilling to change anything, they aren't prideful and unable to admit that it sucks. The finishing team is only concerned with the *results*, what the actual user experience is, and they can mercilessly cut up the product to make it better. Politically the finishers have no stake in keeping work, so they can even revert huge chunks or just cut features.

We've had great results at RAD with ryg as a sort of ruthless finisher. Developers very regularly get some crazy ideas in their head about why they absolutely must do something in a crazy over-complicated way, and they cling to some silly reason why they can't just do it the simple obvious way. It takes a 3rd party coming in to rip up the code and take out the stupidity. (This used to be sort of my specialty).

(sort of like how Hollywood brings in separate writers to finish screenplays; the analogy's not great though because in writing there's a lot to be said for the flawed artistry of a single voice, but in web apps not so much)

I certainly have been guilty of this sin myself many times. It's just very fundamental to the developer personality. We all get Balkan and prideful and defensive and calcified.

One example that I regret is the camera on Stranger's Wrath. I wrote the camera; I had this vision of things that I wanted to do, partly based on mistakes I'd seen in the past. I wanted it to be very robust, physical and analog feeling (not digital), to not get stuck or ever jump ahead or go through objects, framerate independent, very solid. And for the most part I accomplished those and thought that I was very clever and had done an amazing thing.

But people didn't like it. Almost right away I started getting feedback from within the company that was not glowing; why can't it be more like this other game, can it move faster, can it do this or that. Later as we started getting outside play testing it was a common complaint. And basically I did nothing about it. We did some minor tweaking to speed it up a bit based on feedback, but I didn't have the "come to jesus" moment of hey this doesn't actually work as something that makes users happy. It may have hit all the todos that I set out for it originally, but it didn't accomplish the only goal that really matters which is to make users go "this feels great".

One of the stupid excuses that I made with the camera, which is a very common one, was : "people are just used to other cameras (Mario 64, Jak & Daxter and so on), so they're expecting that and just think it feels bad because it's different. Once they get used to it they'll like it."

NO!

Even if that's true, you're wrong. The fact that people are used to some other thing is a fact of the world and you have to work within that. They're used to GUIs in a certain style. They're used to the controls in their car being in a certain place. Maybe you have thought of a better way to do it, but if that feels bad to people in the real world because they're used to the old way, YOU'RE WRONG. You have to make it good within the context of actual users. (that's not to say you can't ever change any GUI, but the changes should feel good to someone who knows the old way; and of course if it's something like a car where the user will switch between various vehicles, then fuck you just make it standard and don't change things that don't actually make anything better)

Whoah. Enough ranting.

4 comments:

nothings said...

+++

Sam said...

I love your rants because I usually agree with them and it's good to know I'm not alone heh.

Sly said...

Fuck! It's just like I've written it myself. Kudos.

johnb said...

A++ would read again!

old rants