I think this is a big factor in what killed slashdot. They did a big redesign years back that added a lot of whitespace but actually made it incredibly difficult to easily browse comment threads and see quality comments. Similarly, despite the old Reddit interface having a reputation as being "ugly", I hate the new interface and always browse on old.reddit.com, mainly because of the higher density of information that makes it easier for me to scan for posts I want to read.
I'm actually trying to "redesign" an app (I put design in quotes because I'm a dev and just trying to make a personal project look nice) and one of the struggles I have had is that high information density can look crappy at first but once you get used to it, is a better experience. So much nicer to have everything you care about in a single screen.
Your app should have the information density that it needs to be:
1. Useful and
2. Help the user avoid operating the app in a way that they don't intend to or is dangerous
Looking fancy is a secondary concern to good function. Typography has an important function because it is how you convey information to your user. Poorly laid out or written text can cause your user to get tired or use your app wrong.
Of course, making a useful interface is a difficult and long job. It is also thankless work, because if you do a good job your users will use your app without even noticing how well designed it is (good design is invisible!).
It's much easier to slap a pretty facade on your poorly designed app and call it done. People will be impressed by it, but struggle to use it.
I would recommend finding physical copies of Josef Mueller Brockmann's books, especially "Grid Systems in Graphic Design" and "The Graphic Artist and His Design Problems". They are both old (pre-DTP) but have great basic advice about how to design pages.
Ebay's one job is to connect buyers and sellers and they fail miserably at that.
Not even a local minimum, a global minimum. Not a platform, a gated swamp.
They are old-school because they are lazy about it, not because something is already optimized.
Whenever I hear about how great a Amazon is as a company, I just do a single search and am dumbfounded.
If you type the name of a product - even when it is in their catalogue - it may not come up.
Search for 'mousr' on Amazon and you only see PC mouses.
The only way you can get to the mousr product is by typing the company name.
Tip of the iceberg.
Amazon search is in comparison much more... approximate.
Hmm, I'll give you a hint. You're looking at it.
Fun fact: we're further away from its first release (2001), than it was from Windows 1.0 (1985).
Remember Windows 7?
We're further away from its first release (2009), than it was from XP.
I wouldn't call the CL UI ugly. It's certainly not beautiful, but I'm not sure how it could be described as ugly. There's something in between, right?
How is this an improvement?
Reddit wants lots of growth (they are taking new money now I think) and that means lots of new users that don't know the old UI. The new one is designed with those users in mind, not ones that know the site inside and out already.
Integrating RES into the main site would've been most of what they needed to get going...
in the current political climate, it's not hard to see why reddit might be cautious about implementing such features. of course, the real reason might just be that most reddit users don't even have one account to manage.
They need hundreds of millions of new users and those have to come from Facebook and probably on mobile.
The site isn't mobile-friendly though, is it?
It's slow, bloated, and has repeated interstitials demanding you get their app if you deign to use mobile.
 The one which you can still reach by adding '.compact' to any reddit url
In particular, faster.
I need to have a supercomputer to scroll past the first few pages.
Although anytime I mention this I fear they'll take it away...
: For example, see /r/CrappyDesign with (https://old.reddit.com/r/CrappyDesign/) and without (https://of.reddit.com/r/CrappyDesign) Comic Sans.
e.g. hackernews.reddit.com -> reddit.com/r/hackernews
Why does this subreddit exist?
> Why does this subreddit exist?
Considering the prevalence of the rebuke "HN is not reddit" on HN, probably for people who want to talk in a more reddit-like style.
So 'tap, tap, tap, tap, enter' becomes 'tap, <locate mouse> click, tap, tap <locate mouse>, click'.
These days it's so hard to organise or browse your own music collection.
On the dedicated "select a playlist" page with the squares, it even freaking re-organizes the squares every time you view it! Imagine if your desktop icons re-organized themselves in some arbitrary way every time you needed to open a program, and you get the utter destruction of muscle memory that can make up for the gaps in efficient design.
Or are you saying the bar is: "as long as there's something worse"
It could be that, in most cases, we only think of the options as ones that we've been introduced to.
We're way too busy with daily life to really think in-depth about everything in hypothetical possibilities, such as "here's a way in which a music app that doesn't exist could do it better." Instead, (unless we're very passionate about music), we tend to only think about the options that have been presented to us.
Material design and minimalism probably have a lot of strong theory behind them, but the cargo culting around them often leads to worse UX. I think a lot of companies reach the "dedicated UX team/person" stage before the "careful A B testing of user flow" stage.
For me it was the pedantic, toxic community. HN is a breath of fresh air by comparison.
I used to work at a portfolio analytics company who’s explicit goal was: to have all of Wall St use Bloomberg on one screen, and our product on the other.
Our app was probably the anti-thesis to the Bloomberg Terminal in almost everyway: “modern” design, tons of white space, a web app, making you have to log in every 30 minutes for “security”, no keybindings.
I’m sure most of HN have never used the terminal, but let me give an analogy. The Bloomberg Terminal is like using Emacs or Vim, they make you feel powerful, they make you feel like a wizard.
Our app was like google docs, you never felt like you were in direct control of it. You never felt like it was an extension of yourself. Unsurprisingly, even though our app was incredibly useful and provided portfolio analytics that you could only get from excel (our biggest competitor), it, and the company, was largely a failure. Instead of being worth billions, we were capped at a valuation of 200m for over 5 years.
I believe completely that the company’s failure was due to our “modern” white space heavy app.
Not a better phrase to describe a Bloomberg Terminal. Everything is there, mainly data, quick charts, Messenger and with it 'social' (yes, Bloomberg Support do make restaurant recommendations if asked), quick facilitation to sometimes complex questions through these services, handy linking to Excel, and where data quality was questionable a quick response.
I think what Bloomberg did/do was/is listen to their customers. A Bloomberg today is much like when I first touched it 20 years ago, but it isn't. It feels the same, or similar, the screens are vastly larger, does what it has always done, scales. There are no redesigns that stop a user doing what they've done before, yet allow them to do more. It is what is expected and surprises, sometimes frustrates, but a learning curve and pleasure comes from learning.
For people that haven't used it, I know it sounds like porn. But it's incredible.
The colour scheme also looks good. A black background gives you many more high contrast choices. Try using yellow or cyan on a light background. It seems most of the colours are based on the old 8-bit selection; red, green, blue, cyan, yellow, white and black. Orange seems to have been added as well.
It's probably not entirely true given there were dozens of known phosphors, and there were monochrome displays in other colors (e.g. the 1980 Apple Monitor III was available in green and white).
However assuming they went with pretty standard equipments green was by far the most common followed by amber. Amber is also somewhat softer on the eyes, which might have been an argument in favour given they'd have folks looking at these displays all day long, especially for charts which would fill the terminal with <color>: green monitors were OK when you had mostly black (text, curses interfaces) but it was way too harsh otherwise.
Our first computer actually had both green and amber displays, the amber display was dedicated for games and the like, anything which would light up a significant fraction of the display at once would go to the smaller amber monitor instead of the larger green one.
It's funny how little credit we give to business users these days, and how much marketing UX there can be.
There was a time when business students attending college and their crufty professors could manage using email by telneting into the mainframe to use Pine. And the technology was a wonderment to them.
Myself, I absolutely hate it, because it puts sellability over productivity for end users. I.e. it literally wastes people's time.
It's an attractive font.
Me too! I wonder if it was the same company?
> Our app was probably the anti-thesis to the Bloomberg Terminal in almost everyway: “modern” design, tons of white space
It was not.
Man those guys had an ugly app.
Also how are monospaced fonts "the right decision"?
Also in regards to the monospaced fonts, you can easily calculate how much space a block of text will take on the screen.
They do have the Bloomberg anywhere portal which is web-based, but the main app isn’t web based.
Source? I heard this from the developers directly.
> For the same reason that monospaced fonts are the correct choice for code: so text can line up.
This isn't a requirement for code. Coding in variable width fonts actually works fine.
But the vast, vast, majority of people think otherwise.
GUIs generally represent the sacrifice of power and automation for approachability by the lowest common denominator.
The GUI eliminated the busy work of setting up your environment to make your workflows easy. It instead provides an environment where a wide variety of workflows are easy by default, although maybe not as easy as they could be with specific configuration like setting up customized keybindings, etc.
But learning is time consuming, too. Keyboard-driven interfaces can be more efficient but they are not discoverable. Maybe keyboard-driven interfaces make sense for the domain specific tasks that you do every day, but would you want a keyboard-driven interface for every random website you come across?
Definitely, no. But you can have both at the same time; in fact, in 90s-era applications and in professional desktop software, this is the norm. You build your discoverable UI, but ensure every action is attached to a keyboard shortcut, and that keyboard shortcut is also discoverable. Call it "progressive enhancement" of UI ergonomics, if you like; the point is not to put the ceiling for regular users on the level of your average first-time user.
> But learning is time consuming, too.
Not as much as time wasted if you don't provide a "faster path" to learn. I'm trying hard to understand, why modern UX designers react to the possibility (not even requirement) of users learning like devil to holy water. That is, beyond the obvious reason - pretty but useless software sells better, as you rate looks on first impression, but ergonomics on repeated use (i.e. after sale).
The most powerful form of computing is having the command line for input but also allowing a UI for the display of information.
Let’s check Twitter...
select message, username
order by date desc
Slightly more realistic is the “semantic web” concept.
But my only lasting memory of that app is that it probably didn't increase productivity as much as I thought it did when I looked at how they used it day to day, and only succeeded in giving them carpal tunnel syndrome due to all the extra mouse-clicking. The final conversation I had with those users is how their wrists were starting to hurt so much. But hey, I was moving on to another project. Hey, sorry to hear, here are some exercises for your wrists, see ya. Oh, by the way, did you ever try Powerball? Supposed to do wonders to make your wrists stronger.
I try not to be so narrow-minded about app design after that.
Pretty does not necessarily equal functional, useful, or value-adding.
edit: In retrospect, those users grocked that terminal interface with all their key shortcuts the way a seasoned developer or sysadmin would grock emacs. Imagine forcing such a guy to use point and click instead for everything. You'd have a riot. I can't believe I didn't see it at the time. Young and naive, and now also regretful for all those people's wrists.
>Are there things my users really don’t need to see right now? If you don’t know, ask!
ASK! ASK! ASK!
For the love of god please ask your users. I worked for a company with a big clunky enterprise app. It got redesigned numerous times and rolled out with big fanfare.
Nobody who used for any significant amount of time was involved in any of the redesigns. It was horrible every time with numerous changes just to get it not to be a huge pain point.... and then a new overhaul would come again.
I changed jobs to web development recently and really the first questions are to define the problems we're solving, and find out from folks using it day to day what their pain points are and how they work. I'll make some mvp type stuff for say a given function and then show them and get more feedback, the important thing is to get it from the end user, not their boss, not their VP, but the end user (boss and VP have to be involved too of course, just in other ways, distract them with fun control panels and such....).
I ended up working for a very small company, handful of people, me and one senior programmer, the product doesn't dominate the market but time and again customers just love that we call, ask, and do stuff and don't dictate how they work (within reason).
You can still make things clean, but when removing things you have to ask, communicate, you'd be surprised how much you can change if it is part of a conversation, and how little you can change if you just force it on them.
Except users lie all the time. They don't know what they need or want. People are horrible at being logical about what will actually help them.
Watch them work. Watch a bunch of people work. Test and prototype changes and watch more people work. And watch them work at their desk or where ever they work.
This x1000! I took on a freelance project for a heavy machinery hauling company. They were a year into transitioning away from some customized off the shelf Enterprise scheduling and dispatch system into some custom built software by an “Enterprise” consulting company.
They were originally bringing me in to audit what the team that was building it but that pretty much changed on the day I submitted my proposal...
In the proposal I wrote to my then prospective client I allocated a couple of days of onsite interviews with “lower than management” people that would be using the system or it’s outputs, and a week of shadowing people in all roles that would be directly using the system. The project sponsor (to his credit) didn’t ask me why I would need to do that, he started laughing and exclaimed that I was the only person to ever even recommend this approach.
We ended up re-writing the proposal into multiple phases where I just interviewed and assessed, documented their current processes, provided business process workflows and suggested ways their current workflow could be optimized, irrespective of any one technological solution. A crappy process, then automated, is still crappy.
I wound up spending 6 weeks before even proposing anything that had to do with technology.
My implementation proposal was set in phases that would bring related functions to light in a way that their teams could begin using them right away and we could collect feedback and iterate while producing the next set of features as well. It was their first ‘agile’ project or contract and the fear was quelled when after the first month I had put more useful software in their dispatchers hands than the “Enterprise” team had in a year.
From day one interviews to “finished” project we spent about 6 months and that system still lives 9 years later- though it has been modernized and upgraded every so often in the intervening time, it is still one of my proudest projects even though it was one of the least “sexy” I’ve ever done.
I think one of the most valuable thing software engineers can do for themselves in some circumstances is attempt to shift perspective towards assessing projects by how many people they help and how. The most rewarding projects I can think of are the ones where a day or two after rolling them out, I'm contacted by a few employees that they affected the most and told they love it and it saves them 30-90 minutes every day, consistently.
I think it's a feeling most developers can empathize with, since we often automate boring drudge work in our own jobs and lives. Making multiple people's lives and jobs a little less monotonous and dreary, or a little more effective at their job in a way they feel and appreciate is a good feeling.
Because of the complexity and the importance of getting it right, it took her around 10-15 minutes every time she needed to use it. She, and her colleagues, are pretty much luddites so a basic calculator was their only tool.
She absolutely loved it, and shared it with the rest of the staff. Apparently some counsellors at another clinic heard about it and requested it as well. Someone thanked me at her Christmas staff party.
In terms of effort to build vs. hours saved and end user appreciation, I don't think I'll ever top it.
About the last point you made, how it would be great if hardware/mechanical devices could be made more like software - a few years ago I heard about "micro factories" (forgot the exact term): 3D printers for small(er) scale manufacturing. It seemed promising that soon we could be writing software to manufacture devices/products at home, in a garage, local maker "lab". If you thought of an easier mechanism to mince garlic, you could whip up a prototype in a code editor and "print out" a working prototype (or production-level device)..
I had a fantastic client. I don’t know if it’s because the rigging industry is full of “holy sh, we gotta think on our feet” situations or what, but for a seemingly “low tech” client they grasped on to an iterative and flexible approach so much better than most clients I’ve ever had from the tech industry.
Penny wise pound foolish.
To be fair, they may not _trust_ that you'll actually do a _good job_. There are so many terrible consultants out there, and clients are not very good at evaluating who's going to be good.
One has to be careful with this; often a process has "invisible benefits" such that outright removing it creates unintended consequences. For example, one industrial analyst found a way to speed up the assembly process. However, it was so efficient that the glue didn't have time to dry before the subsequent steps, damaging the product. Work-arounds were found, but it took time to iron out all the changes.
So let’s say you really want to do this bit, but you also know management is too cheap; you create a super-cheap option where you don’t do the activity, but something else also happens that management is unwilling to accept, something pretty horrible. Then you have two other packages that are actually desirable, both containing the activity; one of them should be the bells&whistles option that will look expensive. Management will discard the costly choice and the obviously-subpar one, and pick the middle tier. The skill is in not making it too obvious that is what you wanted all along - i.e. you should sound really disappointed that they didn’t pick the super-expensive version.
Do you have any tips/ideas on how can I pursue this as a career?
I also added my email to my HN profile.
That's the starting point for all the garbage enterprise apps I've ever used. Someone that has no clue what the users are doing makes a decision about how best to design an app that they don't even know how to test.
Don't ask them how to design the app. Ask them what they do with the app, then find the best way to get them where they need to go. Then let them test the first and second and third versions, and listen to their feedback without an assumption that "they just don't understand my genius".
It's important to distinguish between casual social media app users and power users spending hours of their day using an app to get their work done.
You're talking at cross-purposes.
To get a sense of how people are interacting with the software you have to watch them interact with the software. The moment you ask them a question about UX you'll begin to get low quality input that you can't trust:
* user is expressing an exaggerated desire for some esoteric feature that nobody else would use or discover
* user is repeating what they think should be decent design
* user is agreeing with a criticism they don't understand because they want to appear knowledgeable
All of those and many other problems go away when you just watch somebody use an interface.
Asking users, in addition to watching them struggle, can inform you on what they're actually trying to achieve, and what's their mental model.
"What's the most annoying part of your job with this software" (with followup questions to understand why and what they were trying to do and _why_ they were trying to do it) is better than "What feature do you want that would most make this software less annoying"?
If you watch them you see that what they mean is (dramatised!) "I open my browser, which defaults at Google, then on the Google home page I type 'bing', click on the first search result, then go back because it wasn't Bing search but something else, then read the results and find bing search engine, follow that, login to Bing, then access the app button to choose "Outlook" online, ...".
You might not be able to train them not to search for a URL, but IME users will click an "outlook email" icon on desktop or favorites/links bar; of course you need to watch them to see if they do.
Aside: browsers could fix this but the browser makers are either the SE owners or in their pockets and don't choose to.
Not necessarily dramatized... I've seen almost identical behavior in some places I've worked.
Basically: you can't take anything users say for granted. You need to actually see them work.
a plumber doesnt ask his customer how to plumb. just which pipes need fixin! doesn't go fix the toilet if the shower is broken :S
In that case the plumber could and should ask where the sink is going, even if he was only told to move the toilet.
Why? Because maybe the sewage line is over there and about to be covered over with concrete and they’ll have to tear up all of that to move it in two weeks, but the sink hadn’t arrived yet so no one told him that would move either.
The point is not that the plumber is asking his customer how he should do his job, but that he can be more valuable if told the whole scope and impact of his job.
Similarly you can’t just ask a user “how could this screen work better”, you need to watch them work so that you see that that screen isn’t even the problem - they’re clicking off of it 15 times every call - but you didn’t even know to ask about the other page.
Why would you ask that anyway? You've already assumed the problem and solution at that point.
You ask how it's going, very generally and let the conversation lead you to their pain points.
You don't ask about the UI, which they are not an authority on. You ask about their subjective experience, which they are.
A few months ago I heard a talk by the chief product manager at a photo album printing company where he talked about an in-depth series of customer interviews they'd recently conducted.
His advice was to keep asking why until you get to the root of why someone did something. However, if the answer you reach 'Because I don't want to die alone', then you've gone too far...
Also, 5 is just the "suggested" number. More or less may be needed. If you reach 'Because I don't want to die alone' in 3 whys, probably no need to try for 5...
But yes, watching them work is invaluable. First time I visited one of our clients, I noticed two issues that I had no idea of:
1. All users had dual-monitors, and maximized our application across both. Our application is MDI still. This was a very bad fit for dialogs that were (for historical reasons) had the default position set to center-of-application, rather than center-of-screen. Try reading a dialog split right across two monitors. So when I got back I immediately did a pass to make them all center-of-screen.
2. When doing the main data entry, they didn't look a the window they were entering data into, but rather the source material. Thus any additional controls or dialog would mess up their workflow big-time. That's when it really hit me why the user interface for that window was rather clunky...
Recently, I actually forgot to make a whole series of changes on a dashboard that were requested. They hated the old version .... but I didn't change it before the next meeting ... and then they loved it at the recent meeting. It was the same one they hated on.
Sometimes you also just have to let them get used to it too ;)
It's an iterative process no doubt, but as a dev... I'm no better at knowing what I'll do too. Iv'e worked something up and weeks later changed it completely after I've used it.
But in all seriousness, this is a good point. In addition, you have to think about the user you are listening to. Are they smart? What terminology do they know that other users don't? Maybe they figured out a workaround to some problematic UI already, and you can just make that workaround global.
That's a bit harsh. IMHO people don't know what's even possible, so they can't tell you what the solution is. Sometimes they can tell you what bothers them about what they've got even if they don't know what would be better. The rest of your comment it good though. Watch them. Look for things that look hard or redundant. Ask if they ever get tired of X, what gets in the way, etc... But don't necessarily expect them to tell you how to make it better.
I like to say users don't have requirements. They have problems.
Best to watch a few at all levels of seniority, if at all possible, to fully understand how to deliver what they might need. Then dig into the issues, shortcuts and timesavers or bottlenecks they currently have.
Yes, you can't just "ask". But there are certainly ways to learn. Doing a major UX redesign without doing any UX research seems like asking for trouble -- and I don't trust the conclusions drawn from the outcome, still without being based on UX research, either.
Ask things to your users, and then listen to them! Watch them when they show you things, watch them when they work, watch their emotions to see what they like and don't.
Asking them to describe the problems they have and doing exactly what they say will fix those problems are two very different things. The difficult, but critical, step here is to decipher what root problem should be fixed given the feedback users have given you. Sometimes the right thing to change is something the user never would have thought of to ask for, but can be figured out from what they did ask for.
Remember, your users (usually) aren't UX designers, they just know where they get frustrated.
Of course they don't always know. That's why you have to do proper user research. You should not just build what they are asking: you should try to figure out why they are asking for a particular solution, try to find patterns among all the users, find the actual source of the problem and then propose a solution that could work for them. This is, of course, an over-simplification. Like I said in another reply, work with a PM that's really good at user research (like scientifically-good).
That is fundamentally a human problem and I'm not sure what technology can really do to significantly improve the solution which is to slog through it and listen to feedback.
If they're so deluded about what they want what makes you think you can see through that and find a solution more clearly than they can?
Good design is a cross-disciplinary activity, mixing the domain knowledge in users' heads with the design knowledge in the heads of developers/designers. This is hard to do well, with few hard-and-fast rules, but it often benefits from collaboration.
There are often big a-ha! wins when you're watching a user and ask a question like "why did you do that that way?" or "what if I redesigned it like this?" Users often can't ask those questions because they're focused on doing their job rather than the meta-job of improving it. They often don't realize what's possible.
That's no excuse for ignoring their suggestions, and unfortunately many users have been specifically discouraged from thinking how to improve their own experiences by developers who were lazy, incompetent, or merely bureaucracy-laden. But fostering a collaborative environment, where developers learn something about the domain and users learn something about how their tools are created, can lead to much better user experiences than either could do alone.
It also happens that people only take their own needs into account and not those of the other users they're indirectly interacting with via the app. They'll tell you that certain app objects should have certain constraints, that certain things should be impossible, and that such assumptions can be used as foundations for other features. Then you go visit another user and they'll tell you very plausible conditions under which those things should be possible and even required. Talking to users is good, but you also need to observe them as a group and sometimes weigh their needs against each other.
When asked what they want, they present the ideas they believe will reduce pains or increase the pleasure of using the software.
It's up to you to 1. Determine if the idea reduces pain, increases pleasure or both. 2. Test whether the hypotheses are correct.
Rephrased: Users come up with untested ideas
The asking should be user interviews and contextual inquiry to understand their problems. What are they trying to solve? We shouldn't be asking them to design our products for us, because users often don't know what they want or what they even do. This should typically come very early in the process as foundational work.
Observing people both working and in a usability testing setting will help us learn what is and isn't working. As we get into the prototyping stage, it should be a lot more observing and testing.
I think what you are responding to is this idea that all we need to do is just talk to our users, and you are correct, that is very wrong. Just asking users what they want is a good way to give them something they won't use.
When we do ask people questions, they need to be done in a methodical and probing way.
> Except users lie all the time...
Users who have "skin the game", who actually have to use the application usually have valuable observations and suggestions. Does it mean that you should uncritically implement what they ask for verbatim? No, but sometimes the insight is right in front of you if you're receptive to it.
So ASK, but do not ask direct questions (e.g., what do you want?).
Instead, ask what are their problems, their pain points, and what items they rely on most.
And OBSERVE -- watch what they actually do. What items they most rely upon (i.e., do NOT change that stuff if you can avoid it).
These answers & observations can then form the basis of your solution, which should relentlessly focus on their needs (and not your own design conceits).
Story from a friend who wrote & sold software into IT shops: When he asked "Do you like these features and would you buy this software?", he got all kinds of "Yes" answers, would write the package, and find few buyers.
When he switched to asking (basically) "What are your pain points, what is aggravating, time consuming, etc?", then writing software to address those issues, he got plenty of sales and happy customers.
It's the indirect question that matters.
But resist the urge to do a general facelift or reorganization just for cosmetics. Users can fly through the ugliest interfaces, even text-mode terminal interfaces, once they get used to them. Change that at all, and they will be stumbling around and complaining. That can be worth in the end if their usual workflows are now shorter and faster, but tread carefully. Users of enterprise apps really don't care too much about how they look.
Exactly. It's your job to see that, for example, people spend lots of time manually doing X in Excel, and design a tool to do it for them.
You need to ask/provide a way for users to tell you what they want (fixing or features).
And you also need to observe users using the product.
- the boss of the boss of the representative of the customer company
- the boss of the representative of the customer company
- the representative of the customer company
- my line manager's boss
- my project manager's boss
- my line manager
- my project manager
- me and my team
- the user
Any of these people might of might not have been ever in contact with the elusive "user".
Yes, we know, THE DESIGN IS BROKEN.
And then, nothing. New features come out though, most of which aren't needed or deprecate features that we actually like. So I'm sure some Project Manager is being paid handsomely.
When I say 'works as designed', what I'm actually saying is that I didn't have control over the design, go talk to the ones who did.
When shit's broken I want to at least be able to go in there and fix it myself, not email some support vendor who's just going to ignore it.
When I was working on a reimplementation of an existing web app I had several team members watch how users were using the application. A mixture of sitting next to them and quietly watching (not interrupting their workflow) and remote watching via shared desktop (which we also recorded to refer to later).
Watching (in person and remotely) was without question more valuable. We could go back and replay what they were doing and why (we had copies of the worksheet they were working from for each use). Without it we wouldn't have delivered about 30% of what they were looking for and would have had to redo a load of work compared to if we had just gone by how they said they were using the system.
The new system rolled out and we had a total of two post-launch changes to make. Both of which were very simple changes. So don't just ask but watch how the users who use the system actually use it.
I think the proper thing here is for the purse string holders to defer to the views/feedback of the every day users.
The article has an example of customer records where the name fields are merged, same with the address fields. I know that would be hell for my friends in customer service wanting to find a customer by postcode or just their first or last name. Sometimes people are insistent they have complained before and you have ignored them, or you get scam artists. In these scenarios the team have to do detective work and they rely on having a decent sortable grid of customer records so they can find what they want if given incomplete information. Incomplete information comes from telephone messages made by cover staff, poor quality handwriting and a multitude of other sources. Since the staff stare at the same screen all day they know their way around it and simplifying the layout helps nobody.
Even in terms of the "recommendations" in the article, I can see all sorts of red flags. Group addresses? What if I needed to see what state it is at a glance? Now the state alignment is off. Or if I needed to sort by state?
All of this could have been avoided by sitting down with users of the existing system, watch how they interact, and then put together a revised version, and watch how they interact/where they have trouble/etc before doing a wide release.
The fact that user testing wasn't done, especially on an internal application where the users are right there available for it, is the real story here.
The problem is, the arrogance of the designer. Who would ever redo something without talking to the user?
Even though it was pretty high end stuff.... everyone hates technical support and I found that generally companies eventually devalue it as time goes on. I got tired of that system.
I got paid really well but just got tired of seeing the atmosphere at company after company get more negative. Poor management trotted in, just coasting, incapable of making changes and such. Despite bringing in massive $$$ in support contracts... that money was never directed to support and things just degrade over time.
Then companies would outsource to some garbage company and the support there would be terrible so I and others would take the brunt of angry customers. Then someone would roll out metrics that show those folks overseas who just close cases are doing great because ... they just close cases without solving the issue.
The bad stuff just snowballs and there is no going back no matter how valuable you are in support.
When I was in support I worked closely with the engineering teams who wrote the code and who really liked how I worked (they'd ask that difficult cases be transferred to me because they know I'd document things, actually troubleshot, be honest if I don't know). They actually picked me at one point to be able to fast track issues that I saw straight to engineering and they'd pick up the phone immediately, because if I told them "you're gonna see this soon (either from a VP or something) because it is bad, you want to get a head start on it" they knew it was real. So I was already curious about coding in some form.
I wanted to do something new, got laid off after an acquisition, got a severance, and went the bootcamp route. I like making things now and web development is fun for me, I find that "troubleshooting" and "debugging" and such are all the same thing and that has served me well as well as the ability to work independently and learn independently.
We've all got bad metrics stories, but wanted to share this one.
Friend at megacorp was doing JS work, and working with the offshore team in India (few people in the US, and 3-4x as many in India IIRC). India team was "killing it" because of all the issues closed, and the US team was getting crap because they "took forever".
One of the mandates was "when you commit code, you need to have a test for it". Friend checked out the offshored code, ran the tests, and ... they failed. Almost all - a few worked by accident, but they were failing tests. Actually, when he first ran the test suite, his whole system locked up and crashed - the test suite runner couldn't deal with that many failures (that was my impression based on the symptoms and repeatability).
The 'defense', such as it was, was that no one had instructed anyone that the tests should actually be run or pass, just that test files needed to be committed with regular code. So they'd write empty tests, or copy/paste code from other tests. The line count and 'closed issues' were both great - so much better than the US counterparts. It's just that... literally... nothing was actually being tested. Budgets were cut and he and a bunch of other folks didn't have their contract renewed - they put more money in to the offshore team. :/
Which is really the only way to develop if you want anything to get done.
Everything is a "problem", and the executives at the company, often feel that way about support itself.
Everyone values support when they talk about it... don't want to actually pay for it.
This same exact story of a UI disaster happened at a Fortune 100 company I was at in 2005. They had a legacy app (think DOS character mode talking to a mainframe) for entering accounting documents.
To replace it, a high-priced consulting firm installed a "web portal" technology. (Unifying a company's various enterprise applications behind a single web portal was a hot endeavor back then.)
When it was rolled out, the accounting department fell behind on their work. Nobody noticed that the constant UI banner at the top of the of the web portal browser window was forcing users to always use the mouse to scroll up and down to look at information. In the old DOS system, they could just enter info from invoices quickly without even looking at the screen. But the new system broke the users' fluid familiarity.
The UI disaster was so bad that the consulting company had to have their consultants come in on Saturday to help the client's workers catch up on all their data entry. Imagine an army of $150k consultants doing the work of $10/hour clerks because the web portal's UI was never really field-tested with a real-world workload! If just one UI web developer actually shadowed one of their users for a day, they would have noticed the usability problem.
I feel like there is an opportunity to make a graphical user interface framework that mimics old terminals. Full screen apps that leverage use of the keyboard shortcuts or hell even a custom keyboard specifically made for industrial use. Basically a IBM 400 system but running on modern software stack. Airlines have stuck with their UI and for good reasons.
How to look up unsold inventory on the system at the first job I worked in 1999.
There people there who could navigate 5 screens without looking until the system returned the result they wanted.
People are smarter than many give them credit, the computing revolution in business really started taking off in an era when computers booted to something like.
But productivity was not as high as a rosy colored view of the past might suggest.
Operators had to be highly skilled. Entering a record for the East coast sales team would require remembering the code ESALES03. There were no helpful UI affordances of the modern age, e.g. fuzzy or free form searching.
I work on enterprise systems and try hard to keep things consistent, it’s amazing how much enterprise web stuff I’ve run into that doesn’t even handle tab order correctly on a form that is pure data entry.
It’s hard to go all in on keyboard because browsers are somewhat inconsistent on which key combos do what though.
For example, pressing Enter or giving the command "m" or the fuller "menu" at the command prompt may give a menu similar to:
1 - Search for employees (SE)
2 - New hire (NH)
3 - Department transfer (DT)
4 - Etc.
0 - Back to prior menu [app-wide convention]
And the shortcuts may take optional parameters, such as "SE gar" to search for all employees with a last name starting with "Gar". (Without the parameter, they get a typical search form.)
Before GUI's, I worked with users directly to gradually fine-tune such gizmos, and after a while their productivity screamed. They loved me and even forgave my lack-luster people skills.
Say you're trying to show git log. The first time around, you'll press "?" to show the top-level popup, notice "l" is for logging, press "l", see the popup for logging commands, notice you need to press "l" again, press it. The next time around, you'll just press "l l" without thinking, and Magit will react as fast as you can type.
I still prefer the web - just with the keyboard as a first class citizen.
Personally, I’ve never used a web app that I actually liked or trusted. Maybe it’s just me, but I’m always worried the page will time out or refresh or something.
Like imagine emacs or vim in a browser window, it would be horrible!
It's also possible to map most or all of Chrome's (not sure about other browsers - but we're talking within the enterprise) keys can be rebound. Check out keycode.info - every key even ones like `Alt+D` and F1 and even `Ctrl+R` can be rebound and prevented from doing their normal function in place of something else!
My goodness, Flintones even. The fashion chase is becoming obsessive and wasteful. As I've ranted about many times on HN, UI faddism is a huge time and resource drain and the industry should just say no or see a therapist.
It sounds strange, but desktop UI's around 2000 pretty much reached the pinnacle of business UI's. The web slid us downhill with its stateless ways, unpredictable layout results, and now wasting screen space while copying touch-screen-oriented design for mouse users who don't need swollen boundaries. Use 5-pixel lines to visually segregate panels, saving you about 20 pixels of width versus white space. ("Web" pixels, not nec. actual pixels.)
(The only exception is perhaps drill-down link-heavy lists/reports/charts. The web served these well.)
And it’s always for goofy vague reasons: “It looks dated!” “It needs more pop!” “It’s not fresh enough!” (What are we making? Software or food?) Nobody is willing or able to prove with numbers or measurement that the old UI is bad and the new UI is better. It’s usually just the designer’s hunch! Yet if I want to change the search algorithm we are using I have to prove the new one is faster with research...
For example, there's now a framework that implements the React API for general-purpose terminal rendering, without actually involving any web stuff at all: https://github.com/vadimdemedes/ink
Exactly, it is a bet. A bet in which you can win nothing more than a refined résumé, or lose a lot of time.
You can have a website up and running (not just locally, but live on the Internet) within literally 5 minutes using React and Heroku, netlify, now.sh or whatever. If it takes weeks to do that, you're doing something fundamentally wrong.
> You can have a website up and running (not just locally, but live on the Internet) within literally 5 minutes using React and Heroku, netlify, now.sh or whatever.
Of course, I am not disputing this! But it is equally possible to have a website up in literally 5 minutes using vanilla JS + HTML + CSS and an nginx Server, without taking the dangerous bet that the framework you have chosen won't be obsolete in 2 years.
That's why I specifically mentioned React and its API, as it's generic enough to have drop-in replacements or even frameworks that apply its basics to completely different kinds of rendering (https://github.com/vadimdemedes/ink). I find it unlikely that the basic idea of component trees, efficient one-way rendering of updated data, and JSX rendering will go away anytime soon, and none of that depends on the specific project named "React".
I strongly disagree. Perhaps if you dont really have a problem that needs React to solve it. I understand you already had extensive expertise solving this problem in JS without React et all.
This isn't to say there's no new good stuff. The problem is that there's also all the new fads, and it's a very rare job when you can get the good without the fads.
And remember to use Angular or React... actually, now you must use Vue. And create polyfills for your webpacks (and vice versa).
White space is great for new users to help not overload them, but after a few weeks of use, most should be able to go to their options and change the layout to save all this pointless mouse wheel scrolling.
I am impressed at the responses in this thread - I honestly thought I was in the minority about this, but hopefully the fashion moves a little more towards functionality