As a designer first turned developers in the early 2000, I beg of you to learn the gestalt.
Frameworks, languages, computers, come and go, but the human body doesn't change and the knowledge I have in design, I carry every day and have barely changed over the years. Sure there are new patterns now... "hamburger buttons" and swiping, but the logic remains the same. Human's don't change quickly. They discover things the same way.
Learn about visual hierarchy, visual rhythm, visual grouping, visual contrast, visual symmetry; the golden rule; the theory of colours etc. Think "subject" first, like in photography. Design for first glance & last glance.
Go beyond "do these align".
Think in the eyes of your user as if it's their first visit, there is no content yet, etc; as well as if it's their 1000th visit; cater for both cases; first and power users.
Understand the gestalt, understand the psychology behind design... Why does bright-red jumps at you, at a visceral level?
Feeling that something feels right is great, but understanding deeply why it feels right is a superpower.
Understand the human brain, its discovery process (how do babies discover the world), "why do westerners look top left first"? And you might innovate in design, instead of designing to not offend anyone; or worst, copying dribbble and other sources because "they spent the money".
Trust me if you can learn React or Kubernetes, you surely can learn the gestalt and understand "the design of everyday things"! That knowledge won't expire on you, you'll start seeing it everywhere and you'll carry it for the rest of your life.
I work on a desktop PC and "hamburger buttons" frustrate me beyond reason, in the same way that many other "modern" designs. I understand that cost benefit of having just one implementation for mobile and desktop. But it is still annoying.
> Frameworks, languages, computers, come and go, but the human body doesn't change and the knowledge I have in design, I carry every day and have barely changed over the years.
This is the part that adapting interfaces for the small tactile screen of a phone and then using them on big desktop screens seems so wrong. The design is probably fantastic but it is applied to the wrong interface. The people that designed the desktop interface were good at it and should not have changed. I wish UI designers went back to desktop interfaces for big screens. But mobile has economy of scale on its side so probably it is not going to happen.
I mourn that the scrollbar has been hunted to extinction, even on windows 11 desktop. Windows explorer slowly starts to behave like a web page app.
If you enable many columns in the explorer file view, this design is bonkers:
To navigate those columns, you need the horisontal scrollbar.
But modern design lunacy dictates that this scrollbar must be INVISIBLE.
So you have to guess where it should be, and wave your mouse around in that area, until the windows 11 geniuses decide to fade in and reveal that - oh My!, THERE WAS A SCROLL BAR THERE ALL ALONG.
So, now naive you might think "OK, we both agree there is a scrollbar there now, so maybe we can keep it in view?"
NOOOOHHH! as soon as you have used it to find your new columns, it must of course disappear again, so you must once again wave around your mouse in its general direction, next time you need it :-(.
A similar insanity happens with window borders in general, because heyaah, wow, minimalism is cool. So when you need to resize a window or, god forbid, drag it by its title bar(), that too is minimized into unrecognisability.
To be clear, the problem here is, that you can't tell where window A ends and window B begins, because of design minimalism, so it is simply hard to discern where the drag-border is.
() which leads me to window title-bar anorexia: It has also become oh so popular to minimize and compact the windows title bar, so that there is no area left where your mouse can grab the window to drag it. Web browsers, among many other apps, are guilty of this. The intent behind is to avoid the "double windows top", where you have first the title bar, then the menu below that (they have been collapsed into one);
but apparently no one thought about "but how can users then drag their windows?"..
I guess we are not supposed to, because the app is supposed to be full-screen maxxed, on the tablet we are drooling on. Or if there is another way, I, director Skinner and Homer's dad did not get the memo.
Of course there is a much better way for all your troubles!
Window move: hold a modifier and click&drag anywhere in the window area instead of wasting time precision hunting the titlebar.
Window resize: same, use a big 30%-window-width area close to the border instead of hunting for those few pixels of an actual resizable border
Horizontal scroll (though strange, Win 11 explorer has horizontal scrollbar immediately visible, though maybe that's a config?): hold a modifier and use the more convenient mouse wheel
(or use a window manager with shortcuts or visual grid)
None of that, of course, is part of your unhelpful OS
> But modern design lunacy dictates that this scrollbar must be INVISIBLE.
In a real modern design there is no lunacy as wide/tall scrollbar is mostly a space waste as you have better control options, and narrow/short ones are still that, but also unergonomic to use. So you'd have a wide/tall invisible one, which in those smaller % of cases you need them would become visible, but still wide/tall ones
> I, director Skinner and Homer's dad did not get the memo.
That's unfortunate indeed that the bad old ways of window management and scrolling persist for so long and the better ways aren't integrated in the OS
Your suggestions highlight what I hate about the new Android gestures interface. You have to know those patterns in advance and remember them. They aren't visually apparent like scroll bars, drag handles, titles bars, and window frames. I am quite versed in keyboard shortcuts, but keeping *all* of them in my head gets a bit much sometimes. When I forget one, rediscovering it is a serious PITA. The rediscovery (or initial discovery) is orders of magnitude harder for things like the Android gesture interface.
Couple this with App and OS designers feeling a *constant* need to change things and make them "better" and you have a disaster in the works. I've been grousing about Android changing things just to change them as I get older. The other day even my 12 y/o daughter was complaining about them changing how things worked.
Anyway, my point is simply two-fold. First, any UI that requires knowing and remembering interactions that aren't easily discovered *is a problem*. Second, constantly changing UI interaction patterns, even when they are discoverable, *is also a problem*.
Oh, sure, those are indeed major fails in all of the OSes - no guides and no easy way to find anything about fundamental operations (it should be easier than googling).
But these are separate issues. For example, even with the scrollbars there can be a change between two behaviors: click on the empty bar jumps to that % or jumps by 1 page. And one can be a click and another a Shift-Click - where in the OS would you discover that??? And the scrollbar width - can only find a registry hack to restore that from some tech article/blog post/ etc, nothing in that waste of the Win 11 Settings app.
But with a visible scrollbar you would have a visible indication which behavior you triggered. If the scrollbar is invisible you get a changed viewport in both cases but you have to infer which gesture triggers which behavior.
> I understand that cost benefit of having just one implementation for mobile and desktop. But it is still annoying.
Of course it's annoying. When desktop software is using mobile UI, that's the result of a deliberate choice to make the software worse (something you care very much about as it affects you) in order to save the company money (something you don't care about). It would be weird if you weren't annoyed by such blatant disrespect for their customers.
Let's stop pretending that "companies" could just do things better at no extra cost.
I prefer a desktop UI on a desktop, but I also prefer paying less for software I use, and halving the UI development costs to enable that is a pretty sensible tradeoff.
They're actually spending a shit-ton of money on designer-hours and developer-hours in order to have everything custom, but still with a subpar experience.
It's similar to accessibility: a huge chunk of free off-the-shelf options are more accessible compared to the non-accessible chimeric design system of most modern web apps and sites.
Here's the funny thing though (as a developer which worked for various companies that didn't have designers):
It looks custom designed because... it's not designed at all :D
At this point I'm not even sure if what you said is an insult or a compliment.
Almost all projects I worked in looked more or less like the following:
- a BA meets with the client and creates unstyled wireframes with all of the requested features. (BA doesn't really think about UX here, more or less applies some generic patterns).
- the development team grabs the wireframes, uses a generic preexisting "design system" which is the cheapest for the chosen technology (can be whatever: Bootstrap, Tailwind, Material Design) and max. adjusts colors a bit to match the client's brand
I haven't worked in a place that doesn't use Figma, since Figma was released.
And haven't worked in a place that didn't get a dedicated designer before the company was 6 months old.
However: I must have worked with 30 different designers in 10 years and TWO of them actually knew how to properly use components and Figma. The rest just copy pasted shit around.
And on the rare occasions where there is a designer on the team, they just throw their fantasy user interfaces over the fence to be interpreted by developers as well as blamed for any complaints.
What we really need is developers with solid design skills, that should have been part of fullstack from the start.
I second this, it’s like people live in completely different worlds when it comes to getting stuff out the door.
Of course, that’s still better than a 1 pizza team of full stack devs attempting to create their custom UI component library from scratch, now that’s a total mess.
Grandparent here. Alright, I totally believe you and everyone else, and would probably also be much happier in a less wasteful environment that you mention.
In which industry/company size are you? Maybe I’m looking in the wrong places.
Unfortunately the environments without dedicated designers are also likely to be understaffed or under tight deadlines.
Think along the lines of companies with either <200 employees that can't spare the resources (and also might be lacking in DevOps or other regards, often times falling behind the curve when it comes to all sorts of development practices), or the likes that work in consulting instead of building the product that they sell/dogfood themselves. There you'll get all sorts of people but more fluid team structures - full stack devs that just throw something together for the front end and it's considered good enough.
Of course, it's also possible for companies without the actual means to delude themselves into thinking that they must do everything Google or other big orgs do - that's how you get bad bespoke components and frameworks without the mettle to make them good, as well as stuff like architectures based on microservices without a good reason to do so and so on.
> They're actually spending a shit-ton of money on designer-hours and developer-hours in order to have everything custom, but still with a subpar experience.
Are they though? My impression is that most companies are just using frameworks or sdks that promise some degree of cross platform uniformity, and that’s why they don’t use the native toolkits. The savings come from not having to develop UI for multiple OS targets.
Pretty sure there's places doing it, but I haven't really worked anywhere that used a Vanilla framework, except for the first few months, or have used an app that just uses something off the shelf.
I'm in the YC startup space, though, but have seen this also in enterprise.
Consider the latest UI disaster - Apple with liquid glass making stuff worse in the most fundamental way - decreasing readability. Doing worse was extra cost, so yeah, in many cases companies can just do things better by not wasting the design money and spending part of it on actual design improvements.
No need to bring up the myth of the huge 50% savings when using a single menu everywhere, there is no way it costs that much (neither does having different padding values per platform)!
They don’t have to do things better. They just need to stop changing things. Computer UIs used to be designed by HCI people. There were volumes of books explaining best practices. Then companies prioritized curb appeal and forgot their own heuristics that were backed by actual research.
I too prefer to get things cheaper (all else being equal). But in this case they aren't equal, which is kind of the rub. I would much rather have desktop software which doesn't suck, even if I had to pay more for it. And of course don't forget that just because the company is saving money, doesn't mean you the customer do. Companies are very happy to cut their own costs and pocket the extra profit, so it's difficult to say whether this reduction in software quality is actually benefiting us by making things cheaper.
I love "The Design Of Everyday Things", the book doesn't talk much about computer UI, yet the 7 design principles it introduces allow to make much more informed design decisions, where design is not just the matter of taste and aesthetic, but of achieving well-specified goals. For example, if the user has no way to figure out what a button in the UI does, and needs to click the button to check it, and even then can't figure out what has happened, it is a more prominent design failure than misalignment of the button.
One that drives me crazy is copying text from messages. So many apps fall foul of the button problem you describe above.
Even chat apps. In Whatsapp every time I want to copy some message text I have to hunt for where the copy icon is, it appears far away from the message at the top of the screen with 5 other icons, none of which it's clear what they do.
Slack is at least a little better than this, when you highlight a message it offers similar functionality but with a modal where it's easier to find the "copy text" option as it's labelled.
Worse are the apps that try and make it hard to copy text because they want to force you to share via their app to drive engagement.
My local co-op for about the last 10 years had a norman door, and multiple times a week I would pull rather than push or vice-versa. Then finally a couple of weeks ago they've sellotaped a handwritten push / pull on both sides.
So it mustn't have just been me getting it wrong every time!
Unfortunately either direction doors are harder to weather seal and energy efficiency matters a lot. Just give me a clear handle that indicates which push/pull and I'll do the right thing every time - this is cheaper as well (but it might not fit with your senses)
Designers who remove scroll bars and window borders so you can’t click and drag are computing’s version of a terrorist. It’s an active assault on performance.
The problem with designers is I have to google words like "gestalt" and perform some sort of sacred incantation to "learn" it, all while forcing my eyes to roll back forward.
Who can afford to think like this though? FAANGS? Every designer I've worked with loosely knows some design theory that is impossible to question beyond a quick "hmm maybe a few more pixels on the padding?" and is largely a pixel pusher due to pressure. If I started to talk about visual grouping and the golden rule my boss would have blown a gasket.
I can't name a single well-designed app off the top of my head. I can name a million good-looking ones though. The problem with design is people have to eat. The UI reaches an ideal point but is never frozen, it lasts a limited amount of time before they start shaping the hedge down to a stump. Linear comes to mind. Spotify too. How are you going to reach a good design for a music player when there's 7000 people that need to put in 40 hours a week?
A little lighter on the "gestalt" and a bit heavier on the "will this design murder the weekends of my dev team and scramble the brains of my users" please.
I feel the world "gestalt" has been thrown around in your circles a little too heavy handed.
Who can afford to think like this? Anyone curious about the human brain.
If you're concerned about the time to design something well, I would take just as long designing a terrible solution to a problem!
Explaining with words why your design is the way it is isn't a waste of anyone's time, it's having a degree of confidence moving forward. It's having a healthy conversation about the said product.
If anything, knowing what you're doing and being able to justify decisions, leads to a quicker decision making and therefore more time for implementation.
A good design is thoughtful precisely to prevent re-work in the future. That's the point: understand, analyse, solve & apply.
Don't get me started on large companies and their design teams... Going from one design system to another, redesigning every 6 months, and never quite finishing... I've seen those and I'm too old for that.
I'd never imply that good design should be a road block or causing a late Friday evening of work; it takes just as long to implement a terrible design than a good one!
I am merely encouraging everyone to stay curious, and look into building some skills in a field that is timeless, unlike most software engineering fields, and henceforth worthy of your time.
I read your comments and I think you come across as intelligent, thoughtful, knowledgeable and as someone who cares about doing a good job.
Most people aren't those things, certainly not all at once. Most people seem to me like they mostly care about collecting a paycheck. That was their motivation for their studies and it's their motivation for their employment. You see people talking about writing obscure code so others can't replace them, you see this guy above talking about redesigning an app to justify their work week.
I think these people who don't care are the same ones who make up all these excuses - we didn't do a good job because we didn't have time. We didnt do a good job because the client asked for a bad job. We didnt do a good job because if we do a bad job we have more job security.
Any time I see these types of excuses I judge the person making them to be someone I don't want to work with. I don't make these excuses. I always strive to write good and maintainable code. I take the time I need to do things right and if someone pushes me to take shortcuts I push back if I can or I find a compromise like fixing it later(and then actually do so). If a client asks me to build something I know will be bad I tell them and suggest a better approach.
In short, I take responsibility for my own work and I do not allow others to compromise the quality of my work. I do not respect people who blame others for their own shortcomings. Quality is less about constraints and more about having the ability and caring about it. Doing bad work generally isn't faster, if anything it's usually slower at least after a while. It's just that the people who do bad work needs an excuse to explain why their work is bad.
When I contracted (for many years) I always told my employers at the time "my job is to return the value I cost, or more" and that if somehow I couldn't, I'd quit. I never had to quit. Sometimes I'd pivot internally as "it's what the company needs".
It was always a healthy relationship with my customers/employers.
I learnt early on that work is such a big part of life; why suck, or barely scrape the bottom of the barrel 40+ hours a week? Isn't that a complete waste of a life?
You might as well strive at being in the top 5% of "your people".
My business motto has always been "Find good people and do good work" - note that I don't say "the best people" or "amazing work". With age comes pragmatism; life isn't a self-help book. Having good people means that no matter the work, how terrible of a slog it is, you still wake up to work and look forward to the next week; even if this one stank! Surround yourself with people that care, that take it upon themselves to improve and that have your back (no genius psychopaths).
Sure I've come across a plethora of oxygen stealers and time robbers, and I could count on my right hand the people I'd chase up to work with again...
The key is to not let the bad apples ruin your experience (and sometimes, they're overwhelming all over, at every level, and you have no choice but to move on). Take pride in your work and ignore the bad apples. If the business is any good, they'll get weeded out. Constructive honesty works. And if you talk yourself out of job, it wasn't the one. A good dose of daily humour certainly helps.
Jobs in our industry, we change like we change cars. Often we get more jobs than cars actually. So don't get too precious about your first scratch...
Many CEO, CTO, manager, whatever, will recognise quality in their people if they see it. Weasels have a limited shelf time. No matter how good they're at lying, they're scared of people who confidently do a good job quietly. Eventually they'll stand naked in the spotlight without any excuses.
Any job worth doing, is worth doing well - my father said, he was always inspired by the Japanese culture.
When I found myself in a daily slog, I found that routine was extremely important. That walk to coffee. That walk at lunch time. That little detour during commute. Whatever could be small wins throughout the day, I'd take it. It helped the drudged work where I was stuck in for a while, because having nothing to look forward to, is depression.
Work is a marathon, not a race; even if the industry wants you to believe that you're missing out, you're too slow, etc. As long as you can sleep with yourself at night, and it brings the pay check, strive to do your best in any condition and accept the things you cannot change. But don't let bad people define your work.
I worked somewhere that (IMO) placed a lot of emphasis on good design. Even among engineering folk we'd talk regularly about Dieter Rams' 10 principles of good design. Two of those principles being "it is unobtrusive" and "it is as little design as possible".
> I can't name a single well-designed app off the top of my head
Which wouldn't be a surprise to anybody who actually cares about good design. Precisely because a really well designed product should just help you do whatever is it needed to help you do, and be all most invisible in doing it. It just worked however you expected it to so well you barely even give it a passing thought. It was unobtrusive. It was as little design as possible. I was not trying to wow you by the fact it's one of the million good-looking apps you've seen.
> I can't name a single well-designed app off the top of my head.
When it's well designed you don't notice it. Surely you've encountered badly designed apps and interfaces in your life. Now think of the apps that don't make those same mistakes.
The purpose of digital technology is so that people who are not developers should be able to use them and be productive with them. Just like cars are designed so that people who are not mechanics or engineers can also drive them.
If you haven't met a good designer and have been working in any industry more than a few years, maybe you don't know what you're looking for.
Design is everywhere in your life & career & and you'd be lost without it.
Perhaps you need to learn what design is, so you can start to notice it around you. Then, you'll be able to put that knowledge to work yourself and might become the mythical creature you desire to see in the world.
Look up the Joshua Tree principle - I recommend Robyn Williams book series "for Non-Designers" get one that interests you and open your world up!
I mean, for a start, literally every human-made object is designed. It may be designed poorly, or designed purely for function, but every one is designed. The pen you use to write notes with, the sticky notes you write on, the traffic cones blocking off the open manhole on the way to work, the manhole cover lying nearby...all of those are designed.
Design isn't just "making things look nice". It's every thought that goes into the structure, function, and aesthetic of an object, whether physical or digital.
There's a difference between design and styling. I'm a visual person rather than a verbal thinker, but more like a graphs / topolological kind of visual person, not about alignment, size or colors of things so much at all.
I wish I could specify the content and topology and the computer would do the styling. I don't want to select fonts, font sizes, align boxes etc.
Currently I think the best a computer can do is bullet points. Anything beyond that and you have to become a manual stylizer, which is what I specifically want to avoid.
When using tables, you already you have to start manually adjusting column widths or they become very often very wasteful and hard to read.
Your advice is completely un-actionable. "Learn the gestalt?" Do you mean the principles of gestalt design? Because half of those are entirely about designing clever logos, not about making useful UX. If designers spent less time gooning over the FedEx logo, everyone would be better off. The remaining principles are good to understand, but all the challenge is in applying them for specific cases.
Or do you mean: simply understand all of human psychology and design UIs that work for everyone? That seems to be what you're saying, but both are impossible. Nobody really understands human psychology, especially those who think they do. Show me a psychology finding that is applicable to UI design and I'll show you a study of 30 college freshman that doesn't replicate. And you cannot design a UI that is intuitive for everyone; people are too different, and the "average person" literally doesn't exist.
So what exactly is your advice? Know everything and apply that knowledge appropriately for your specific situation? React and Kubernetes have clear documentation, tutorials, and canonical ways of doing things. UX design has a couple of clever books. The analogue of "just learn good UX design" is not "just learn React", it's "just learn how to write readable, maintainable, clear, performant code everywhere." It takes decades.
> This system is about achieving the best possible design with the least amount of effort. There’s no need to know about the psychological impact of colors, which fonts are best for which purpose, golden ratios, etc. This is expert-level design knowledge that is just distracting if you’re not on that level. The key is to focus on the few important aspects, and not try to optimize every tiny detail.
>Trust me if you can learn React or Kubernetes, you surely can learn the gestalt and understand "the design of everyday things"!
I understand and share the underlying sentiment, but it seems to me like quite a lot of people are suspiciously satisfied with how learning React or Kubernetes has entirely blinded them to the fact that the everyday things do indeed have a design.
Everyone wants developers to learn everything all the time...
Software development, infrastructure management, testing, business analysis, design, even marketing and communication sometimes.
We have to pick our battles. Guess what employers ask for from developers during interviews and 90% of the work. Plot twist: not design.
How do you become good at this? Is it simply practising doing UI/UX interfaces over and over and over and over until you get it? Do you have some specific advice on how to get "there" faster? I recently stumbled across this Refactoring UI book[1], heard it's sort of popular, know if it's any good?
Personally, I immediately don’t trust this book because the example on the page of the list UI puts a big red X over the version I prefer and find easier to read.
Half agree. The left version I feel has too many sharp lines and bold distinguishing features, so you don't know where to look, where the version on the right has too few so you don't know where to look.
I know exactly where to look, the little squiggly lines called letters and numbers, nicely separated from other rows with actual visible separators, instead of just floating out in the same ocean of grey.
This does not strike me as a way one should go about making "good-looking user interfaces" as described in the article. What you are describing is UX, and UX doesn't necessarily imply an aesthetically pleasing UI. I can make things that are very useable but don't look very nice.
He did - "the design of everyday things" is a book that has been around for decades and is still the best introduction to these. The book doesn't cover computers at all.
Though I warn you, I read it 30 years ago and I still cannot enter a kitchen without cursing how bad the stove is.
From reading the original comment, it is not apparent that "the design of everyday things" refers to a book with that title. When I read the comment the first time, I didn't understand it.
Communicating through writing is hard. Just as designing something that can be easily understood is hard.
What you've called out is meaningful, but it includes an implied requirement that you're not spelling out: the time and effort and attention to detail, along with the history of experience, to really apply the principles you are talking about to a project.
When I read the main article, I interpreted it from my perspective. I'm mostly a systems person. I can appreciate the points you mentioned, but I don't have those other implied things that are prerequisites for applying those concepts effectively.
Without rules of thumb like these, the UIs I design end up looking like grade school collages. Building UIs that make people _feel good_ when using them is not my core competency. I'm just looking for a baseline level of quality.
I believe there are two cohorts here: the people who want to make UIs that are beautiful, and the people who need to make UIs that are not hot garbage.. and we're reading the article from our respective perspectives.
"This system is about achieving the best possible design with the least amount of effort. There’s no need to know about the psychological impact of colors, which fonts are best for which purpose, golden ratios, etc."
Translation: I don't need to know why I am doing anything but hey, it looks okay to my eye, and I didn't spend a lot of effort on it. Now I have more time to write a blog post about it that mostly advertises my app.
Frameworks, languages, computers, come and go, but the human body doesn't change and the knowledge I have in design, I carry every day and have barely changed over the years. Sure there are new patterns now... "hamburger buttons" and swiping, but the logic remains the same. Human's don't change quickly. They discover things the same way.
Learn about visual hierarchy, visual rhythm, visual grouping, visual contrast, visual symmetry; the golden rule; the theory of colours etc. Think "subject" first, like in photography. Design for first glance & last glance.
Go beyond "do these align".
Think in the eyes of your user as if it's their first visit, there is no content yet, etc; as well as if it's their 1000th visit; cater for both cases; first and power users.
Understand the gestalt, understand the psychology behind design... Why does bright-red jumps at you, at a visceral level?
Feeling that something feels right is great, but understanding deeply why it feels right is a superpower.
Understand the human brain, its discovery process (how do babies discover the world), "why do westerners look top left first"? And you might innovate in design, instead of designing to not offend anyone; or worst, copying dribbble and other sources because "they spent the money".
Trust me if you can learn React or Kubernetes, you surely can learn the gestalt and understand "the design of everyday things"! That knowledge won't expire on you, you'll start seeing it everywhere and you'll carry it for the rest of your life.