I don’t know how to say this without hurting someone’s feelings, so I am not going to bother to try. Some builders are terrible at making user interfaces. I don’t have to wish for a dollar for every minute that I have spent fixing user interfaces. I do, in fact, get paid for exactly this sometimes. I believe that I have come in with a blowtorch and pliers to these kinds of projects for two-thirds of my career, possibly more.
A lot of builders will focus on making an interface that maps to the basic API elements they need. If you have done this enough times, you will know that I am speaking about the CRUD interface that gets mapped to a data set. Create, Read, Update, and Delete. The four horsemen of the one-star review on Yelp. If this is your idea of a perfect interface, then I have unkind words for you. You should be banned from using Figma, CSS, and any of the LLM tools for writing software.
In many ways, I often believe that form follows function. If I only have a hot neon yellow t-shirt and lime green spotted pants in the closet, that’s what’s getting loaded onto my frame before I emerge to face the world. I won’t give a second thought, even after blinding drivers in their cars who crash into each other when I am out walking. It’s not me, it’s them.
Despite that utter deafness to fashion sensibility, I do think there is an aesthetic to “form follows function” as it relates to software. The pixels may be hot neon colors, but the structure and the flow need to make sense.
If you do not know what I am talking about yet, and you know how to spell TCP/IP, then hold still, my friend. You are in danger. Blink twice. Fear not, though, intrepid software extruder, I am coming to redeem you with my hastily scribbled letters and bombastic psycho-babble.
I have stuffed my face into a design book or two when no one is looking, so I can improve at delivering elegant software. These are links to books in design and taste, and they are also Amazon Affiliate Links. I will patiently work towards getting nickels from mister Bezos with your help, and I understand that you might not yet feel ready, and these books are not Dungeon Crawler Carl.
We have arrived near the end of the page and well past the limit of the average TokToker’s patience.
Now that they are all gone and only the Quality Readers remain, it is time to divulge secrets.
I place a great deal of distinction between functional software and usable software.
What does that mean?
Functional software arrives as a hot mess of CRUD panels, very few popups, and usually an incorrect ordering of tabs in the navigation system. You have to hop around like a Kangaroo who is more than halfway through your case of beer.
By contrast, usable software just… flows… The most usable software effortlessly melts away your objectives with minimum hassle.
With functional software, you will be angrily stabbing keys and clicking buttons that rack up touch counts from interaction to interaction with mounting tedium.
I will say that most usable software starts off functional. You can iterate your way from your first deliverable to greatness that is admired by your customers and users.
Some simple questions that have guided me on my road to usable software over the years.
Can users figure this out on their own?
Are there nine or fewer things on the screen?
Can people make use of the software quickly?
Does the cognitive load of day-to-day tasks go down using this software?
Is it leaps and bounds better than the alternatives?
I know there is a thirsty bunch of builders out there who live their MVP dreams every day. Not all Minimum Viable Products are usable. I think that the most usable MVPs will win more often in the marketplace than those that are just functional.
This has come up a few times in the past few months. The layer at which people “something something AI” every day is currently out of reach for a lot of people. Some of it is at the functional level of delivery, and some of it, if you drink three beers really fast and squint at it, is usable.
The race to ship constant functional feature after functional feature, 50 to 60 hours a week, will tend to overload most vibe coders, too, who didn’t realize that the LLM tools of code generation have promoted the average engineer into product management without them even looking. Apparently, it is making them tired and burning them out. Kinda makes you have a little more respect for those product managers you used to laugh at in their Miro and Trello boards all day.
This is all happening as you sit there being told over and over again, “You are absolutely right!” when software gets spit out of the other end of the model.
Why is this at all important?
Well, if you are looking for ideas to establish yourself as a tastemaker and make yourself less vulnerable to getting blasted by the pink-slip-job-away cannon in the coming years, this is a good place to start!