Studying media information technologies while working and designing software at a financial company, I have made observations I feel are rarely, if ever, talked about, and it is actively harming many companies.
When you study something with IT that isn't just building Mainframes and backends, you will inevitably run into user experience and accessibility lectures. The flow of information, the way you should lay out things, the colors and contrasts you need, what you should avoid, what you need to implement, these kinda things are essential for an application to be “User friendly”. A lot goes into the study of user experience, UX; not only what ratios of colors are the most readable to people with bad eye sight, or how to structure a website to be best navigable with accessibility software like screenreaders, there is also a lot psychology, how to guide a persons gaze, convey information in a coherent and efficient manner.
Looking at the products of many big companies, you will see many of these best-practices applied (and sometimes, violated), but they are the reason the web and many apps today, have a familiar feel today, and that is actually also an important factor. User experience is cultural, you would probably agree most know what the icon for save looks like, it's the ol' floppy, what keybindings should exist, the control x, y, z and s for cut, redo, undo, save, and many more. Many times when you had to fill in a form on the web, you will see labels above text boxes, the text box getting red or green depending on if your input is correct, a little error message beneath it telling you what's wrong, or maybe floating next to it. This layout is supported by pretty much any CSS framework, often without a way to easily change it, and that is because it seems to be generally agreed upon this is the way to go, and that's not good. It definitely has it's places, but problems arise, as soon as you put it into contexts where it doesn't belong.
Information density
When you build your software for shortening links or writing blogs (heh), the amount of information required is very small. There is only so much a user needs to enter to log in, only so much a blog needs to display, so many best practices are build on these use-cases, made to fit information neatly, accessible, enough space, font big enough, prioritizing a singular flow of top to bottom forms, which is why the label on top of the text box is so prevalent… but what happens if you have more? I tell you what happens, pain. I have once quickly build a web app for the use-case of a registry of apartments to be sold, and given it needed to happen fast, I just picked asp.net core razor pages and slabbed Bulma on it, regretting it later. Bulma, like many CSS frameworks, enforced this previously mentioned flow of information, and for this app, it was bad. When you want to sell an apartment, or in our case, dozens, you need a lot of information. Owner, interested parties, the coworker handling it, the provision, the sell price, additional parking spaces, their selling price, if it's rented already, for how long, when their contract is from, when their rent was increased the last time, if they have a right of first refusal, if you have a copy of their renters contract…… I can go on for a long time here, and I had to back then. The forms handling this, in the classic web form with labels on top of textboxes and a max-width of like 25rem where spanning pages, and I had to build a tool later that put this all into a proper PDF Exposee, to make it even remotely comprehensible. A much more common approach that is used in, let's call it, corporate software, is to put labels left of text boxes, and to use multiple columns. This is not very responsive often, but it is needed, because the focus here is not easy of access, it's coherent presentation. An important practice I learned and applied to lots of my tech was, that when a user has to scroll or switch tabs, I have failed. And that is not without reason, I have used existing corporate tech that looked like it was from the 90s and build upon so much, a single customer view could require you to go through about 20 to 30 tabs, each with 4 to 8 columns of information, and often scroll… how do you expect anyone to use that without error? And now imagine this in a modern web form, your browser would probably die. It's partly not their fault, as I said, the information density can be ridiculous, and this probably started out as a very simple project with one or two tabs, and then customers had needs…
Buttons, Icons and Labels
Another thing people love is iconography, having your lil' hamburger menu, your save, save as, load, undo, redo, and whatever more icons, because users know those, right? Think again. I have heard people in the past complain when Excel, Word, etc. replaced their small toolbars with these big chunky top bars where nearly every icon had a label beneath it, but honestly, this is fucking genius, and a practice I started implementing myself, and it seems like some modern designers seem to catch up to it. Not only does it emphasize your most important tools, it also makes it so much more accessible to people that only touch a computer for work to fill in a spreadsheet. My big software I made for the company has a bar with very big buttons on the bottom for save, new, use preset, etc., all the stuff a user needs, and it made people so happy. Especially older people, who do simply not see your toolbar. Their peripheral vision is limited by their vision overall being limited, and I see my boss so so so often overlook things because some designed put them in a corner or the outer edge of the screen, not helped by her using a very big 4k screen so she can read better.
Another thing I have noticed, but still haven't fixed yet admittedly, is disabled input fields. My app has as mentioned a button to create a new entity, but I have seen multiple times, when my boss navigated to the customer tab, she tried to click the name fields and was confused, because they were disabled, because no customer was open, she needs to click new first, to create one, logical to me, it's just a view, but not to her, and I now know why. We often forget the origin of forms; literal paper. When I was handed a form, I was expected to just fill it out, right? I didn't have to tell the form “yea, we will now enter information”, because the fact it was empty already implied that's what it's for. I will need to fix that when I get to it, nobody should have to click “new”, the form is empty, what else they gonna do with it?
Don't repeat yourself, always explain yourself
Another thing I often see, and also done myself, is duplication of functionality. The first version of my app had a search tab, but you could also search for a dataset while in that datas' view. On a customer tab, there was a search button, opening a dialog allowing you to search for just customers, this was a mistake. To us, it is often convenient to have multiple ways to do things, especially if some of them can be contextual or more precise, to inexperienced users, this is hell. First of all, they expect you to teach them one way to do a thing, and you giving them many different ways causes a myriad of issues: if you show them only one of them, they will one day ask someone else, who shows them the other, and now they will be confused, if you show them all, they will mix up the flows, because they ultimately achieve the same, but inevitably don't work the same, so they will mix them up, or they just flat out don't remember it because it was just too much. This builds upon another thing that is extremely different between UX for the tech savvy person, and UX for inexperienced and older users: documentation and intuition. If you learned UX, you probably once heard this:
UI is like a joke, if you need to explain it, it's bad
Well, easy to say when your users have grown up with the web or had to use computers at school, they have a lot of intrinsic knowledge about inputs and use of software that you can tap into, but many people do not have that, and don't want it. When you get into building corporate software, you will experience a culture shock, I certainly have, and that is, software is expected to come with documentation, handbooks, and lessons for the workers to teach them how to use it. Partly because it is necessary (remember the information density), but partly because UX depends on culture, and work culture is not “I hand you this tool and you figure out to use it”, it is “This is essential to your work, you will learn how to use it, how to safely operate it, and who to talk to if it doesn't work”. After all, software is expected to be just another tool, on top of your label scanner, your registry, your forklift, you are expected to operate the inventory software, and why would you completely shift your mindset just because it's on a LCD display? (Besides, your label scanner has that too). Honestly, it's often frustrating; I have to do a lesson soon to teach people how to operate a Kanban board (Planka), and had to make a PowerPoint summarizing the basic interactions (logging in, clicking a board, clicking a place to add a new card, where to find labels), it's frustratingly easy to use.. for us, but not for them. Could they learn to operate software they way we do? Maybe. Would it save a lot of money to not have to teach people to use the most mundane software? Yea. Will that happen, or does it need to? Probably not, for the aforementioned reason of software being just another tool, and also for all those who can't do it, and would be left behind. Thus, I am cursed to make presentations explaining how to log into an app using your Microsoft account.
The silicon valley mindset
Now we get into the juicy bit. People knowing me would probably tell you I wrote this article just for this section, and partly I did.
It is the result of “move fast and break things”, the brainchild of “products need to change, to feel fresh”, that also causes planed obsolescence. It had been brought to my attention again just recently by ClickUps “3.0” update, that essentially changed nothing but the design, or the early access of the “new” outlook, that is just the website as electron or something… I fear the day that one will roll out. Modern tech loves to cycle through icons every 6 months, change from rounded corners to sharp to rounded again two years later. The problem is, it works with us, the new shiny, things get patched so they must still be good or improved, right? It's a psychological trick to keep us engaged with their product, but is has horrible side effects if used outside of social media. Software that is build for companies and business customers more often, follows the same trend, and it's making my life hell. Every time a productivity app moves a button for no reason, I have to call in another meeting to explain where it is now, and my coworkers need days to weeks to adjust, because this just doesn't float in a business setting. Imagine forklifts get refreshed the way Mercedes cars would? Every year four new models, now with rounded corners, new touch displays and heated seating, please replace your entire fleet, it would be hell. I hate this mindset with a passion, not only because I hate patch culture in general, but because every time corporate tech switches it layout for no reason, I hear a million workers scream in confusion, and they are screaming at me, to explaining where their searchbar went. Here the tool mindset once follows us, imagine a carpenter would have to learn a new type of hammer every year? Ridiculous. And yet, that's what these companies demand. I previously mentioned the 90s looking tech, and how horrible it's layout was, but that's the thing, nobody should ever touch it. It has been this way for decades, and there are people having worked with it for decades, that can operate this software faster and more efficiently than I could ever use a smartphone, and you would probably cost them their job moving shit around. It needs to change one day, but not like this.
A good example of a person that understands software is one very smart, middle aged man, that I once talked to, when we bought some of his companies software. He had one of these 90s apps, installed from CDs, in many companies, but he realized something. The future is the cloud and the web, REST and the likes, and this will hit the financial sector too. But did he touch his existing software and userbase? He did not, instead, he build a new product, offering the same functionality as his old, but with modern tech; online, scalable, focus on security and modern web flows, but not the silicon valley kind, more a modernization of commons business software practices, all information on one screen and the likes that I mentioned before. And this is the way, he can sell this to new people, can maybe cause existing customers to switch over time, modernize his tech, by running the new besides the old, maintaining the app flows many people rely on, while building for the future. He probably has to support that old software for another 20 years, but his customers love him, because he understands them and looks out for them.
People often look at corporate software like another extension of capitalism, as the old, unmoving, ugly and incomprehensible, and in a way, it is, but there is more to it. Building software and solutions for people in a corporate setting is a whole different culture and challenge, and I find a certain beauty in that. Not only because of the challenge, but also, because you are much closer to your users. Silicon Valley develops for their focus groups, we develop for people, for the older, the inexperienced, the hesitant, we provide them not only a product, but a service, we teach them to use our tech, adjust it to their needs and their way of thinking. Building corporate tech sometimes feels much more fulfilling to me than many other endeavors. GeeksList might be useful to me, and I can probably look at the database to see how many people have signed up for it, but when I build my customer management software, I can look over the shoulder of my coworkers, see where they struggle with, improve the flow, and they thank me for it. Whenever Windows restarts their PC for the 4th time this week, they are thankful my software hasn't changed it's flow in nearly two years now. And I take pride in that.
