How [ChatGPT] Would Make It Better: Instagram

The following post was written entirely by ChatGPT when we asked it to “Write a blog post on why Instagram has a bad user experience. “

Instagram has become one of the most popular social media platforms in the world, with over 1 billion monthly active users. However, despite its popularity, many users have complained about the platform’s poor user experience. In this post, we will explore some of the reasons why Instagram’s user experience is lacking and what the platform can do to improve it.

One of the biggest issues with Instagram’s user experience is the algorithm that determines which posts users see in their feeds. Unlike other social media platforms, Instagram’s algorithm prioritizes posts from accounts that users interact with frequently, rather than displaying them in chronological order. This can lead to users missing out on content from accounts that they don’t frequently engage with, but would still like to see. Additionally, the algorithm can also lead to users seeing irrelevant or low-quality content, which can be frustrating.

Another issue with Instagram’s user experience is the way it handles notifications. The platform sends notifications for all types of interactions, such as likes, comments, and direct messages, which can quickly become overwhelming for users. Additionally, Instagram’s notification settings are not as customizable as other social media platforms, making it difficult for users to control which notifications they receive.

Instagram’s Explore page, which is supposed to help users discover new content and accounts, can also be a source of frustration. The page is often filled with irrelevant content, and users have complained that it’s difficult to find content that they’re actually interested in.

Lastly, Instagram’s Direct Messaging feature can also be a source of user frustration. The feature is cluttered, and the user interface is not very intuitive. Additionally, Instagram’s DM feature does not have end-to-end encryption, which can be a concern for users who value their privacy.

In conclusion, Instagram’s user experience has a lot of room for improvement. By addressing the issues with its algorithm, notifications, Explore page, and Direct Messaging feature, the platform could provide a better experience for its users. Additionally, providing more customization options and security features would also be beneficial for users.

Note: The above post is based on the user complaints about Instagram, but it is worth noting that Instagram is always working on improving its platform and user experience, it’s just a matter of time that these issues are addressed.

Figma Wishlist 2023

Here is our wish list of things we hope to see from Figma in 2023.

Top UX Trends That Need To End In 2022

This is usually the time of year when we start seeing lists that attempt to predict what User Experience (UX) design trends to expect in the coming year. However, we thought it would be more useful to call attention to the trends we hope will end. It turns out, there are so many that we could probably make this post into a series (and maybe we will) but, for now, here are the ones our team came up during one of our morning stand-ups.

These trends are in no particular order, and they are a mix of both software and website trends. And, you’ll also notice that most of them have nothing to do with User Interface (UI) Design — yet all of them impact the User Experience.

Not Involving UX During UAT

User Acceptance Testing (UAT) is typically the final stage of the software development lifecycle that occurs before a product release is deployed into production. Oddly enough, even though the word “User” is in the name, this testing method rarely involves actual end-users. More often, it involves the client and/or members of the product team that test and accept the software product as if they are the end-users. This needs to end.

Agile UX Methodology

It’s probably an exercise in futility to convince product teams to involve real end-users in UAT but, at the very least, they should involve members of the UX Team because they are the ones that designed the UX. When you hire an architect to design your house, the architect will make site visits during construction to make sure the house is being built they way they design it. The same goes with software. You involve UX during UAT because they are far more likely to catch flaws and issues related to their design than anyone else.

Too often, the UX Team is only involved in the beginning of the project and then a hand-off of their designs and (maybe) front-end assets are given to the development team — at which point the UX Team’s job is done. That is, until the product is released to actual end-users and the UX Team is brought back in to fix or enhance whatever issues are found by the users. A lot of times, the flaws found by users are not major usability flaws (because those would have been identified and resolved during usability testing, right?) — but they are typically things that would have been easily caught by the UX Team if they had been involved during UAT. Some of the most common UX issues we find during UAT (when we’re involved) include:

  1. Incorrect use of CSS classes
  2. Incorrect use of UI elements or components
  3. Incorrect use of colors
  4. Incorrect use of fonts
  5. Incorrect responsive breakpoint layouts
  6. Incorrect wording in messages
  7. Display/rendering issues
  8. Missing progress indicators
  9. Missing transitions or animations
  10. Missing table listing features


Auto-Playing Videos

You ever visit a website to read an article and all of a sudden a video at the top or in the sidebar starts automatically playing? And, if you have your volume up, you may also be startled by the loud audio. Yeah, that needs to end. We realize there are browser settings to prevent videos from automatically playing but users shouldn’t have to do that. Videos should only play when the user chooses to play them.

In addition, we’re seeing a trend where these auto-playing videos often have very little to do with the actual article content. So now the site is not only interrupting the user from reading their content, they are doing so with a video that isn’t even related to the article content.

For example, in this Fox Business article, the video portion at the top automatically starts playing an ad (unless your browser preferences are set to prevent it) and the article headline reads “‘World’s most expensive’ ugly Christmas sweater selling for nearly $40K” but the video is about “US inflation”.

This needs to end.


Video-Only Content

Sometimes you just want to skim the text of an article to get the gist or you are in a place where you are unable to watch and listen to a video but you can’t do this if the article page contains nothing but a video. This needs to end.

At the very least, a video should always contain a transcription of the words used in the videos. In this example of an article about “Instagram head testifies before Congress on app’s impact on kids“, it would have been nice to give the users the option of skimming parts of the transcript if they wanted to learn more about what the Instagram CEO said to Congress.

Sure, there may be times when a simple little blurb about the contents of a video is all you need, such as this video about a woman leading police on crazy car chase across Florida golf course – but more often a text transcript or written text describing the video would also be handy.

Subscription-Only Articles

We know how a lot of magazine and newspaper websites are hurting and need to generate revenue to survive but suddenly blocking your loyal readers from accessing your content can’t be the answer. We’ve spoken to several people about this trend and everyone has stopped visiting the websites they used to frequent once they started to require subscriptions.

The most valuable thing a website can do is build a loyal base of repeat visitors. So, to suddenly block those same visitors from reading your content is like hiring a bouncer to stand outside your place of business so they can stop loyal customers from entering. Keep in mind, these websites already fill every pixel of available screen real estate with ad banners, video ads, pop-ups, and they track your every movement, download cookies to your device, and sell your activity to advertisers. In other words, the loyal website visitors are already paying a price to read a website’s content (whether they know it or not). So these websites need to figure out a better model that rewards their loyal readers and puts an end to these traffic killing subscription-only articles.

YouTube PremiumIf websites insist on having a subscription, perhaps they need to consider including an added incentive for buying a paid subscription, such as having an “Ad-Free Experience”. This would be similar to what YouTube does with its YouTube Premium subscription. If you want to experience the website without a subscription, you pay with ads and your data. If you don’t want to see ads or have your data used, pay for a premium subscription.

We’re not sure if an “Ad-Free Premium Subscription” model is the answer – but we can’t think of a worse user experience than one that blocks your users from having any experience at all.


Enormous Memory and CPU Hog Websites

If you go to a website and it immediately kicks on your CPU fans and brings your laptop to a crawl, the site just might be an enormous memory and CPU hog. We don’t mean to pick on but take a look at the 354 MB JS heap the site requires and, if that’s not bad enough, the site also utilizes over 94% of your CPU. This is completely unacceptable. JS heap size and CPU usage. JS heap size and CPU usage.


When we ran the GTMetrix Lighthouse tool on, it literally errored out before the site could even load.

Lighthouse’s explanation for the error is that:

“The page took too long to load (No CPU idle period)
This usually happens because your page is repeatedly doing something and constantly utilizing the CPU.
Lighthouse requires a period of CPU idle, meaning we must observe a brief period of no CPU activity. This is required for a page to be considered “Fully Loaded” or finished loading.

You want to make a poor user experience, crash your user’s computers or make them come to a crawl when they visit your website.

This has to end.

Mobile Designs Used On Desktops

We don’t know if this is a purposeful design decision or a sign of laziness but too many websites are starting to display mobile-friendly designs to their desktop users, which negatively impacts the user experience. These websites take the whole idea of a mobile-first approach a few steps too far. While hamburger menus may be a good solution for small screens, why would you purposefully hide your website’s primary navigation and make your users work to navigate your website? In the example below, the site not only hides the main navigation menu in a hamburger menu but it also hides the full name of the company behind the icon. Sure, minimalist web design has its place and can be effective but requiring users to work extra hard to use your website has to end.


We’ve all run into these user-hating roadblocks where you’re trying to get something done online and all-of-a-sudden you’re asked to somehow figure out what a CAPTCHA prompt is asking you to do. Hopefully, you pass the test and move on to complete what you were trying to do. However, if you get the dreaded “Please try again.” message, you run the risk of acting out online rage on your device and start screaming profanities at the website you are using.

We get the need to prevent unwanted bots from inundating websites with false form submissions but why would a business place this burden on its users? That’s having a customer come to your place of business and then making them solve The Da Vinci Code before they can start doing business with you. It’s insane and it needs to end.


Not Involving Users Because You Are A User

We wrote a blog post about this one called “3 Reasons Why You Should Never Design Software As If You Are The User“. The topic for the post was born from a few clients that asked us to design their software but they didn’t think we needed to involve their users in the process because they told us “I’m a user – so if I like it and I can use it, my users will too”. While it may be true that you represent the typical user of your own product, there are at least three reasons why you should never exclude your actual users in the design process.

  1. You are too close to your own product
  2. You don’t know what you don’t know
  3. Your users will thank you

This needs to end.

UI Text Written For (and by) Developers Instead of Users

How many times have you used a software product or website and were scolded by rude, accusatory bold error messages, such as “Error 403 – Forbidden“! This needs to end.

Perhaps a nicer way to inform your valuable users that the page they were trying to access isn’t available to them would be something like this instead: “Oops! We are unable to give you access to this page or document. Please contact support at for help.” A message like this does not scold or shout at the user and the tone of the text even places the blame on itself rather than the user while also providing the user with a way to get help if it is needed.”

Also, why does the words “HTTP Error 403” need to be biggest words on the screen? Not only is the website yelling at its user, it’s also confusing them with some meaningless error code. If these codes are needed for some technical debugging purpose, why not display it as the smallest text near the bottom of the page?

In addition, far too many message pop-ups contain verbose and confusing text that force the user to stop, read and attempt to figure out what their next action should be.

Sorry software developers – but it’s really not your fault. In fact, all the developers on our staff love it when our UX staff provides them with the exact text to be used in error messages and content throughout the UI because they’d rather be coding instead of copy writing.

Out of Context “Allow” Popups

How many times have you downloaded a mobile app to your phone and the first time you open it, you get bombarded with a series of “Allow” popups to things like your Camera app, Contacts, Microphone, etc. — even though you haven’t even used any part of the app that may or may not need access to those parts of your phone. This needs to end.

Rather than bombard your users before they even use your app, app makers should consider prompting these “Allow” popups only when the user needs to use a feature of the app that needs access to a part of the phone. For example, we designed an insurance app that enabled customers to upload photos of their damaged car when submitting a claim. So rather than prompt the user as soon as they launch the app, we prompted the user only when they needed to upload a photo from the photo app. This way the user has a better understanding of why they are being asked and are therefore more likely to “Allow” access to that part of their phone.

Got some more UX Trends that you’d like to end? Tweet us: @TheUXTeam

How We’d Make It Better: Amazon Fire TV

The Amazon Fire TV user experience is a classic example of where the Visual UX is clearly not centered on the user. We make the Visual UX distinction because the Voice UX is actually pretty darn good while the Visual UX (or what you see and interact with on your TV screen) focuses far more on promoting things than on what users may actually find useful. In this blog post, we will dissect the Amazon Fire TV Visual UX and recommend ways that we would make it better.

Current Home Screen Design

The current Home screen is segmented into the following main sections:

Amazon Fire TV Home Screen

  1. Hero Promotion
    This area is nothing more than an enormous billboard carousel for promoting new or popular releases from various streaming services.
  2. Profile
    This is where you can change “Who’s watching” to someone else. One seemingly useful feature that Fire TV recently introduced is different profiles for different people that may be watching TV. The feature does enable each unique profile to customize certain options – but the options are very limited. Our hope is that this future releases will include features that most users would expect when selecting a profile.
  3. Main Menu
    This is where you can navigate to different sections of the interface, such as Home, Find, Live, Library. The center of the screen seems to be an odd location for a main menu but what makes it worse is that its size and lack of color make it barely visible – yet, it may be one of the more useful sections on the screen.
  4. My Apps
    This is a customizable list of some of the apps you have installed along with an ellipses icon on the end that links to a screen containing all your installed apps and a feature to customize the order of apps.
  5. Settings
    This is where you can access various settings (as you would expect).
  6. More Promos
    This section contains a long list of other various movies and TV series. The problem is that there appears to be no rhyme or reason as to why those specific promos are there or what even determined the order that they are displayed.

How We’d Make It Better

Better Visual Hierarchy

We totally understand how the business needs to push revenue-generating promotions but this design takes it way too far. A great design takes into consideration the overall visual hierarchy of elements on the screen and assigns a visual weight to each element that should inform the user of what is very important, somewhat important, or not really important. In the graphic below on the left, you can see how the dark grey “PROMOS” rectangles in the current layout carries an enormous amount of visual weight while the small light grey “USEFUL STUFF” rectangle carries very little weight at all. We would strike a more appropriate balance between usefulness and revenue-generating promotions because if you don’t have a useful product, you won’t have users to promote things to.

Personalized Home Screen

Since the user selected their own profile before getting to the Home screen, the user’s expectation is likely to be that the Home screen is really a personalized “My Home” screen. Given this expectation, two features that would make the Home screen a lot more useful are:

  1. Last Watched
    Often times when a user turns the TV on, they want to return to the series they were just binge-watching. Right now, there is nothing on the Home screen that makes it easy for the user to return to what they “Last Watched”. Each individual streaming service typically provides a “Keep Watching” feature once the user launches the service – so it should be possible to surface whatever show or movie the user last watched from any streaming service onto the main Fire TV Home screen. If the user finished the series or movie they last watched, then this area could be used for promotion.
  2. My Watch List
    One of the most useful features within each streaming service is the ability to add shows and movies to a Watch List so that you can easily find things you may want to watch in the future. Since this feature already exists in each streaming service, it would be handy if each show and movie on their Watch Lists could be displayed on the main Home screen. This would enable the user to jump directly into a show from the Home screen without having to first select (and remember!) the streaming service that show or movie is on.

Labeled Promotions

As we mentioned above, the promotional section at the very bottom of the screen appears to have no rhyme or reason as to why those specific promos are there or what even determined the order that they are displayed. Therefore, it would be very helpful if they categorized the promos with different label names such as “New Releases”, “Trending”, “You May Also Like”, etc. This simple labeling of the promos may actual entice the users to explore the bottom section a lot more rather than view it as just a bunch of unorganized clutter.

Suggested Redesign

The mockup below represents a starting point for a design that we would want to test with real users and then make refinements based on the results of the tests. Overall, you will see the above referenced recommendations implemented in the redesign, such as:

  1. The main menu is moved to the top, the text is more visible, and we’ve clearly marked what screen you are on with a bright yellow underline.
  2. The enormous billboard carousel is replaced with a “Last Watched” feature that displays and highlights what the user last watched so that they can quickly return to it.
  3. A “My Watch List” section has been added to the right side that surfaces selection for each streaming services Watch List (or equivalent) and they are ordered by last activity – meaning, either last watched or last added, whichever is more recent.
  4. The promotional section at the bottom is now organized into labeled sections to help entice the user to explore each section.

These recommendation only scratch the surface for what could be done to make the Amazon Fire TV UX better. In fact, this is only the Home screen! However, we think these changes would have a dramatic impact on creating a much more positive user experience.

How To Make Long Online Web Forms Suck Less (For Your Users)

We’ve all been there. We open a screen in our web browser to refinance our home, get an insurance quote, file our taxes, or anything else and the form is overwhelmingly long. We take a deep breath, sigh and trudge forward. In our heads though, we’re cursing the screen in front of us with thoughts like “I don’t f#@kin’ have time for this?!” or “This s#%t is going to take forever!”. Clearly, none of these are thoughts you should ever want your users to have.

Sometimes the data that needs to be collected in all those form fields is truly necessary – but that doesn’t mean the user experience should suffer. Luckily, there are several different things you should consider to make long online web forms suck less.

Visually Segment Sections

When a screen is just one enormous form filled with tons of form fields, users can feel overwhelmed before they even begin. One way to help alleviate this initial negative reaction, is to visually segment the screen into smaller, logical groupings. This enables users to process the screen easier in their minds and quickly get the gist of what they’re going to need to do before they begin. Part of what overwhelms users is a feeling that they may not be able to complete the form once they begin. If your users can quickly understand what they’ve being asked to do, it will build their confidence and help make them think “I got this.”

Compare the screen mockups below. Even though the screen on the right is taller/longer, it appears more manageable because you quickly get the gist of what you’ll need to do to complete the form. In fact, the card headings alone can put the user at ease because they provide context for what type of information is needed in each section, which can help make a user think “Oh, I know all this info, this should be easy.” as opposed to “Oh boy, what are they asking me for now!”.

Dynamically Displayed Fields

Often times, a lengthy form will contain “parent” and “child” fields whereby certain “child” fields only need to be displayed if the “parent” field is completed a certain way. If this is the case with your form, consider developing the form so that it dynamically displays the “child” field if/when the “parent” field is completed. One of the simplest examples is a “Yes/No” checkbox. If the user clicks the “Yes” checkbox, only then should you display the “If yes,…” child fields associated with that parent checkbox. More complex examples may include developing logic whereby a combination of different answers drive the display of certain additional fields. Either way, by eliminating the initial display of the child fields, you greatly reduce the overall volume of fields and noise on the screen.

Dynamically Displayed Form Fields


If certain fields in your form are only needed in certain cases, consider moving those fields into a collapsed accordion that can be expanded only if/when the users needs to complete those fields. By moving those fields into a collapsed accordion, you greatly reduce the initial clutter of the screen and make the form appear easier and faster to complete.

Modal and Fly-In Windows

Often times, a large form may contain form fields that are only needed when the user needs to add a new item or record to the form. Other times, there may be a need to display detailed data about something in a form. In these cases, it may make sense to implement modal popups or fly-in windows that are displayed only when the user takes an action. For example, if the user needs to add vehicle information to a form, consider displaying the vehicle information fields in a modal or fly-in rather than displaying all of the vehicle fields in the main form. In addition, the main form screen may contain a table listing of vehicles but only certain column headers are needed to help distinguish one vehicle from another while all other details can be displayed in the modal or fly-in.

Question Consolidation

Forms that contain a series of questions requiring a “Yes” or “No” answer don’t always need to be displayed as individual questions with their own “Yes” or “No” checkboxes. Instead, consider whether the question section can be consolidated into a single question with a single “Yes” or “No” checkbox or toggle. For example: “Are any of the following questions true?” This enables the user to quickly scan the questions and take a single action to answer all of them.


Step-by-step wizards may seem like an old school method to break up a lengthy form field but they can still be an effective way to segment large chunks of related fields and create a positive sense of progress as the user moves through each step of the wizard. In addition, a good wizard will display the number of steps to inform the user of not only how many steps they will need to complete but also which step they are currently on and steps they’ve already completed. A huge factor in creating a positive user experience is to give the user a sense that they are making progress towards the finish line.


In Conclusion

Making long forms suck less is often about making a lot of micro design decisions and optimizations that add up to a much better user experience. So put the time in to “trim the fat” on your forms so that the result is a positive user experience — rather than a verbally abusive experience.

How We’d Make It Better: Microsoft Outlook

Microsoft Outlook is easily one of the most used software products by businesses — yet it is also one of the most flawed products on the market. The latest version of Outlook for Mac attempts to make a big leap forward with its updated User Experience and we will say that it appears to be heading in the right direction. However, there are several obvious flaws that we’ve pointed out below that can and should be addressed.

Hover Icons on Messages

Each message listed in the Inbox displays action icons (delete, archive, flag, or pin) that appear when the user hovers over the message. These icons not only take up a lot of valuable screen real estate but they can (and often are) accidentally clicked when the user is attempting to simply open the email message. In addition, the attachment clip icon and the reply arrow icons appear to be clickable but they are not.

How we’d make it better:

  1. Since opening and reading the email messages is the primary user action, these icons really represent secondary or even tertiary actions. Based on this, we would place all the icons into an ellipsis menu on the far right of the message rows (see screenshot on the right). This will:
    1. Make better use of valuable screen real estate
    2. Remove the possibility of accidentally clicking an action button.
    3. Provide plenty of space to label each icon so the users know what each icon does.

Multi-selecting Email Messages

Currently, the only way to select multiple email messages in the inbox is to hold down the shift key as you click each message. The problem is, this requires all users to know about this key command “trick” and a good UX should not rely solely on the users knowing tricks or hidden shortcuts. Personally, I have to re-teach my own mother and brother this key command every time they ask me how they can select multiple items.

How we’d make it better:

Include checkboxes at the beginning of each email message (see screenshot below). This will be a much clearer way for users to know how to select multiple emails without needing to know the key command. Plus, Outlook already uses checkboxes in other places in its UI so there’s even less of a reason for not including them here.

Creating a New Event (Bug?)

When attempting to create a new event by double-clicking on a day from the Calendar screen, the Reminder pop-up displays before the user even finishes saving the new event. This appears to be a bug because it only seems to happen when trying to create a new event on the current day or certain future days within the current month.

How we’d make it better:

Fix the bug so that the Reminder pop-up never displays before the new event is created.

Inconsistent Location of the Exact Same Buttons

This one doesn’t seem to make any sense and makes us wonder if different people worked on the different versions of the same screen. When you click a day on the Calender, you get the short-form modal window for creating a new event with the Discard and Save buttons located on the bottom right of the modal. When you expand open the modal to view the long-form version of the screen, the Discard and Save buttons are not only flopped but they are moved to the left side of the screen.

Here we see two different locations for the Send button. When creating a new message, the Send button is located in the top left of the screen. When creating a new Calendar Event with attendees, the Send button is located in the bottom left of the screen.

A big part of creating a great user experience is consistency throughout the application and there appears to be no good reason why these buttons display differently in the two different versions of the same screen.

How we’d make it better:
Make sure the same or similar buttons are placed consistently in the same location throughout the application.

3 Reasons Why You Should Never Design Software As If You Are The User

We get this one a lot. A client wants us to design their software but they don’t think we need to involve their users in the process because they say “I’m a user – so if I like it and I can use it, my users will too”. While it may be true that you represent the typical user of your own product, there are at least three reasons why you should never exclude your actual users in the design process.

1. You are too close to your own product

Since it’s your product, you will not only have a built-in bias about “your baby” but you will also come with built-in knowledge of the product’s design and how it is used. It doesn’t matter if you find it easy to use your own product — it only matters that your users can and the only way to make sure your users can easily use your product is to involve them in the design process. Unlike you, the users you involve will likely have no prior knowledge of your product or how to use it, which is exactly what you want because it will mimic what will happen when you launch your product.

“Be careful not to fall prey to the ‘false-consensus effect’ — assuming your beliefs and behaviors align with the users.”
— Nielsen Norman Group

2. You don’t know what you don’t know

One of the main reasons for involving your actual end-users in the design process is to learn things that you may have never have thought of before. And, it is a much better time to learn these things during the design process than it is once you’ve launched your product. We’re not talking about learning what your users like — that’s a Focus Group. We’re talking about interviews, surveys, and (our favorite) user shadowing. The goal is to learn whatever you can about your users BEFORE you begin to design a product for them. Then, when you start designing, be sure to incorporate usability testing into your process so you can observe exactly how they use your product.

3. Your users will thank you

Every single time we design a software product for a client and we’re allowed to work with end-users during the design process, we always get such enthusiastic feedback and gratitude from the users. We often hear them say things like “I am just so thankful I was asked to help design a product that I will be using. I mean, it just makes so much sense.” Yes, it does.

The other benefit of involving your users in the design process is that they are likely to become your Product Evangelists. These people are proud the role they had in helping to design your product and they will promote it (free-of-charge) to anyone who will listen. We’ve also seen cases where users will choose to do business with a company just because they now felt more of a personal connection with that company. For example, we designed an insurance quoting system that is used by independent insurance agencies and because we involved agents in the redesign of the quoting system, the agents are choosing to sell policies with our client over other carriers simply because they have more of a personal connection with our client and the software they helped design.


At the end of the day, even though we design software for a living, we are often not the true end-users of the products we design, which is why we involve the users in our process — and so should you.

How Elon Musk’s 5-Step Process Applies To Software Development

In a fantastic, super geeked-out interview (courtesy of the Everyday Astronaut), Elon Musk breaks down the 5-Step Process he’s implemented to develop everything from Tesla electric cars to Space X rockets. One of the great things about Elon’s explanation of each step is that he speaks in a very blunt manner and uses examples of the mistakes he and his teams have made that drove him to implement these steps. As he explains each step, it occurred to us how these exact same steps can and should be applied to developing software products.

STEP 1. Make Your Requirements Less Dumb

In this clip, Musk says “The requirements you were given are definitely dumb — and it’s particularly dangerous if a smart person gave you the requirements because you might not question them.” Basically, he encourages everyone to assume that there are things wrong with the requirements they’ve received so that they feel much more free to ask questions and make them better (or, less dumb).

In addition, Musk requires all requirements to come with a person’s name attached to them – not just a department name. This way, a person takes responsibility for the requirement and everyone knows who to go to with questions.

How this relates to software development

Here are a few real-world examples of scenarios that we run into a lot with our clients during our Team Work Sessions:

  • UX Team asks “Why is this a requirement?” The client says “That’s what the business team wants.”
    The fact that product teams often do not question or challenge why a requirement is a requirement in the first place probably speaks more to a problem with the corporate culture dynamic than anything else. In other words, often times product teams are put in a position of focusing purely on delivering what they are asked to deliver — without being empowered to ask “why?”.
  • UX Team asks “Why does your current software product function this way?” The client says “That’s just how it’s always functioned.”
    This one actually happens quite a lot and it’s often the result of a product team that:

    • Can no longer “see the forest for the trees” because they’ve been so close to the product for so long
    • Has new members that don’t feel comfortable questioning things until they’ve earned their stripes.
  • UX Team asks “What drove this to become a requirement in the first place?” The clients says “Feedback from our users”. Then UX Team asks “How many users and what was their specific feedback?” The client says either “I don’t know. It’s just what we were told.” or “We had one or two users complain.”
    This also happens quite a lot and it often causes product teams to get sidetracked with enhancements or new requirements that should have a much lower priority than others in their backlog. It’s sort of like the “The squeaky wheel gets the grease” treatment.

Ideally, if product teams followed Elon’s “Step 1” advice, they would attach a name to every requirement and create a culture whereby everyone felt not only empowered but expected to ask questions about the requirements they were given before they spend tons of time designing and developing them.

STEP 2. Try Very Hard To Delete A Part Or Process

In this clip, Musk says “The bias tends to be “let’s add this part or process ‘in case’ we need it” – but you can make ‘in case’ arguments for almost everything.”

How this relates to software development

In art school, they teach “When everything is important, nothing is important”. In UX design, when you make the visual weight of too many things on a given screen the same, you create a visual hierarchy that does not inform the user about what is important vs less important. Therefore, whenever you add something you need to always consider whether it is worth degrading the visual weight of other existing things or if you should remove existing things to make room for the new thing.

This also holds true for adding functions and features to a software product. As Musk explains, the tendency is for product teams to add more and more features to their product when they should be equally considering what they can remove. After all, if the end goal is to make a better product but the bells and whistles you want to add make your product more difficult to use, are they really worth adding?

As this relates to a “Process“, a few years ago we were hired to redesign an existing product but the first priority was to get the live product working. Soon after we engaged with our client, we fixed the existing code and were ready to deploy it – but we couldn’t because the client’s development team was still working out the details of their new Continuous Integration (CI) scheme and how our team was going to get integrated with it. We suggested that, for this particular release, we simply push the updated code files to production manually without CI in place. Then, we will shift our focus to the redesign effort while the client development team takes their time to implement a proper CI scheme for us to use. Processes can be good but when teams get so programmed to follow them, it can prevent teams from considering simple, logical solutions.

3. Simplify or Optimize

In this clip, Musk talks about how he purposely makes this his third step so that it helps prevent teams from “optimizing a thing that shouldn’t exist”. In other words, it’s great that you were able to optimize the performance of that new feature – but did you consider whether it was needed in the first place?

How this relates to software development

This one speaks directly to the creation of a good user experience. When we design a software product, we test the usability of our designs before it is developed. When we deploy the tested and refined design into production, we then monitor how it is being used and even A/B test different designs to further optimize it. Sometimes our tests reveal what we call a “design thorn”, which is an element in our design that we are struggling to optimize but it continues to cause problems for the users. In many cases, the best way to handle a design thorn is to simply remove it.

This also applies to application and infrastructure optimizations, which can speed the performance of a product and help keep it more stable. A product that performs quickly, is error free, and is always available is one that is far more likely to create a great user experience.

4. Accelerate Cycle Time — or, “Go faster!”

In this clip, Musk says “Go faster — but don’t go faster until you’ve worked on the other 3 (steps) first.”

How this relates to software development

In Agile Development, “Velocity” is an indication of the average amount of Product Backlog turned into an Increment of product during a Sprint. So to increase Velocity, it would help if you made your requirements “less dumb”, deleted features or processes, and simplified or optimized your product. Once you’ve done these, you can be in a much better position to “Go faster!

5. Automate

In this clip, Musk talks about the importance of never starting with automation first and going through the Steps in reverse. This is our favorite video because Musk tells a great story where he’s made this exact mistake when they were struggling with a fiberglass mat that was mounted to the top of the Tesla battery. The installation of this mat was “choking the whole production line”. So, he and his team spent a lot of time working on ways to optimize the automation (robots) until one day Musk finally asked the The Battery Safety Team, “What the hell are these mats even for?”. They told him they were for “noise and vibration”. So he went to the Noise and Vibration Team, and they said they were for “fire safety”. So, they placed microphones and sensors inside 2 different cars and tested the noise and vibration with the mats in and with the mats out and they found no difference whatsoever. Needless to say, the mats were removed.

How this relates to software development

This one can relate to everything from a simple ticketing system to an elaborate e-commerce website. Both require people, processes and technology to be in place before any true automation can be implemented. Much the way the robots on the Tesla assembly line were not implemented until they were designed, tested, and optimized for each step of the assembly line, you should not automate anything until you can support that automation.

In one software product we made for a client, they wanted a Task Management feature that auto-generated tasks for people based on specific triggers within the system. For example, “When Team B enters X data, generate a task for Team B”. The problem was, the client didn’t have the teams to support all the auto-generated tasks — so tons of tasks were getting generated and left open in the system and the users eventually just ignored the whole Task Management feature.

The Importance of a Minimum Viable Product (MVP)

Even though this one isn’t a ‘Step’, it’s a great clip where Musk talks about how the first few Starship rockets all blew up for reasons that were not on their “Risk List”. In other words, the first Starship rockets they launched helped them uncover flaws that no one on their teams expected, which is one of the main points of launching an MVP first. You simply do not know, what you do not know.

How this relates to software development

Too many software product teams have a hard time whittling down the backlog of their product requirements to something that could be termed a Minimum Viable Product. We often hear excuses like “It’s really not a ‘Viable’ product without all its features.”, which is usually nonsense. More often than not, a product can be broken down into a logical set of releases that grow from an MVP to and official “1.0” full release. Whether you release only one set of features to a small sample of user personas or you release only the core features of the product that may still require manual work to be done on the back-end, and MVP is critical to the success of any product launch.

How We’d Make It Better: Microsoft Teams

‘You’re Muted!’

One issue that seems to happen on nearly every video call is that users don’t know or remember that they are muted. So, they begin talking and everyone else on the call starts saying “You’re Muted!”. It’s almost become a living meme at this point. One of the reasons this happens so often is that Teams only gives users some easy-to-miss indicators that let them know they are muted.

How we’d make it better:
Other video conferencing applications like GoToMeeting can detect that you are trying to talk when your microphone is muted and they display a message on top of the microphone icon letting you know “You’re muted” — hopefully before someone on the call yells at you. They also use a solid green icon to indicate an “On” state and a grey icon to indicate and ‘Off’ state for your microphone, camera, and screen sharing options. This use of dramatically different colors helps the user know when their microphone is “On” vs “Off”.

You're Muted!

Call Selected People

Having several people be part of a ‘team’ in a group chat can be convenient for discussions and sharing ideas but arranging calls between members of that team can sometimes get tricky. If one or several members are out that day, or you simply need to speak with a few people in that group chat, the Teams app requires you to make a call to the whole team or create an entire new group chat.

How we’d make it better:
Make the Video Chat and Audio Chat buttons into dropdowns that give users the option to call the whole group or just certain selected people. This frees the user from having to constantly create new group chats and avoid calling people who aren’t needed for a certain call.

MS Teams Call Selected

A Tab for Links

Links are shared very frequently in chats on Teams but finding a link someone posted days or weeks ago can be a challenge.

How we’d make it better:
Add a ‘Links’ tab next to the ‘Files’ tab where users can quickly scroll through the links posted in the chat.

MS Team Links

Search Within a Selected Chat

Teams has a decent global search function located in the top bar that enables you to search across all chats but sometimes you just want to find something within a selected chat instead of having to scroll back through all the messages. Currently, there is a hidden trick for doing this that requires you to somehow know to use the ‘command+F’ or ‘control+F’ keyboard shortcut. This will change the global search field into a ‘/find within @Chat’ function (see screenshot below).

How we’d make it better:

  • Add a search icon near the other action buttons within a given chat. Clicking this search icon would change the ‘global search’ field into the ‘/find within @Chat’ field.
  • The search results should then behave similar to the ‘Find’ feature in your Chrome web browser whereby the words you’re looking to find are highlighted in yellow and the scroll bar indicates all places within the chat that the word can also be found.

MS Team Chat Search

Chat Filter

After several months of chatting back and forth within a given group chat, the number of messages can really pile up. Sometimes you just want to filter down the messages to just those within a certain date range or from a certain user and right now there is no good way to do this.

How we’d make it better:
Add a ‘Filter’ icon to the action buttons within a given chat. When clicked, it could display filtering options, such as a date range and users.

MS Teams Chat Filter

Reply Feature

Sometimes several conversation topics start happening within a given group chat and it’s hard to keep track of what message is replying to what other message. Or, sometimes someone asks a series of specific questions in separate messages and you want to reply directly to each question instead of adding a single message to the bottom of the whole chat thread. Unfortunately, Teams does not provide a way to reply to a single message in a chat thread.

How we’d make it better:
iOS Message does a good job of letting you reply directly to a specific message within a conversation thread by providing a contextual menu on a message that includes a simple ‘Reply’ feature. For Teams, we would simply expand the existing ellipses menu to include a ‘Reply to this message’ option.

Teams Reply To This Message

How We’d Make It Better: Spotify (Vol. 1)

One of the things I hope you’ll notice when we go through the examples of how we would make Spotify better is that most of it has little to do with the User Interface design — but all of it has to do with the User Experience.


Currently, Spotify provides a small area buried at the bottom of each Artist page containing a blurb ‘About’ the artist (if the artist provided one). However, there is a huge opportunity for Spotify to fill a void that’s been missing since the days of vinyl records, CDs and even cassettes and that is: Liner Notes and Artwork.

“Back in the day”, listening to music was always a multi-sensory, immersive experience where you would sit in your bedroom listening to music while looking at the artwork and reading all the Liner Notes, which often included :

  • Lyrics
  • Songwriting credits
  • Producer and sound engineering credits
  • Guest musicians
  • Album artwork credits
  • Thank you notes
  • And more

When you read the liner notes, you felt like you were really getting to know the band on a different level because you would learn all kinds of behind-the-scenes details about the music you were listening to. Sometimes it even gave you a better sense of the band’s personality and talents. Unfortunately, this whole experience went away when music started to be distributed via download and streaming services.

How We’d Make It Better:
The good news is that all this content exists — so if/when Spotify includes it in their product, they will fill that void and create an even better user experience for its customers.

This is a sample page of liner notes from Green Day’s ‘Dookie’ album. I always loved the raw sketchy look of this because it reminds me of the doodles I would make in my notebooks during school.

Sortable Column Headers

One of the great features of Spotify is its recommendation algorithm, which suggests artists that you may like based on other artists you’ve listened to. Now lets say you visit one of these recommended Artist’s page to see what other songs they have. The first thing you will see is a list called ‘Popular’ at the top, which seems to be a list of the most popular songs by the artist – but we’re not sure. Assuming this is a list of the artist’s most popular songs, the list (for some reason) is not sorted by showing songs with the most plays at the top. In fact, there’s no way of knowing how the list is sorted at all. And, even if you wanted to manually sort the song list by the number of plays, there’s no way to do that either.

In addition, it would also be useful if there was a column for ‘Album’ so that the users could see what album a particular song is on and link to it.

Spotify’s Artist Page with a song list you can’t sort.

How We’d Make It Better:

  • Add sortable column headers
  • Make the default view show the most popular songs first
  • Add a column for the name of the Album

We could do a whole series on what we would do to improve the iTunes user experience but it does have all the above features.

The Winery Dogs on iTunes

iTunes Song List with sortable columns.

The Spotify Artist Page does not provide a way to access “All Songs” by the selected Artist.

“All Songs” List

While the Artist page appears to show the top 5-10 most popular songs, there is no list or link to all songs by the Artist. You can expand the “Popular” list to see 5 more popular songs but somehow the Artist page leaves out a section and a link to all “Songs” by the artist. We’ve talked to several people about this one and they all noticed the same thing and are frustrated by this seemingly obvious omission. How can the Artist page in a music listening app contain all the sections listed below but not include a section for “Songs”?:

  • Popular
  • Popular releases
  • Albums
  • Singles and EPs
  • Featuring [Artist Name]
  • Fans also like
  • Discovered on
  • About
  • Offers

Of course there is a way to get to all the songs by an Artist — but you can’t get to it from the Artist page. Instead, you have to search for the artist and then filter the search results by “Songs” to see them.

How We’d Make It Better:

  • Simply change the “Popular” section name to “Songs”
  • Sort the “Songs” list by the most played songs at the top
  • Provide a link to “All Songs”

No-Repeat Shuffle

When a user uses the shuffle feature on either their own playlist of any list of songs, the expectation is that the songs will not repeat until all the songs have been played once. If you’re a Spotify user, you may be saying “But that’s what shuffle already does!” and you would be right, sort of. If you use shuffle on a song list and then close the app and open it again hours later or the next day and go back to play that same song list, you will likely hear songs repeat. For example, I have a Beach Mix containing 94 beach-themed songs. When my wife and I were on vacation with friends, I put my Beach Mix on one day and then, at some point, I turned it off. The next day, I put my Beach Mix on again and I heard several songs repeat from the previous day before playing other songs that had not played yet. In another example, we were driving a long distance and I was playing my mix of 98 Mellow Rock songs. We stopped a few times along the way and whenever we got back in the car and I put the same playlist on, we would hear songs repeat.

How We’d Make It Better:
Ideally, Spotify should utilize a songs “last played” date and time stamp so that when you shuffle a list of songs it knows to select songs with the older “last played” dates before playing songs with the newer dates.

Spotify Shuffle

In Conclusion…

As you can see, none of the examples above are focused on how the User Interface was designed or laid out but all of them impact the User Experience. They’re really more about content and either missing features or enhancements to existing features.