5 Ways to Engage Optimism in Software Design
Many times, we waste too much time worrying about things that may never happen instead of those which are likely to happen all the time. Leaving some of those worries out can lead us to happier team and better product
Estimated Reading Time: 9 Minutes
When you start crafting wireframes of an app, you create branches of possibilities describing the system’s behavior as it responds to requests that originate from outside of that system, also known as “Use Cases”. Since the beginning of my career as an IT professional I’ve always been trained to look few steps ahead and predict almost impossible scenarios in order to make the software behave predictably under unpredictable conditions.
“When you’re trained as a scientist or an engineer, first thing you think of is – How can I prevent the disaster to happen” – Neil deGrasse Tyson, Astrophysicist
Even though it’s a reasonable way of thinking, many times it may lead to series of “What if” questions and promote worries that may never happen. Although, these kinds of assumptions are essential for building robust system architecture, yet their overuse might lead us to behave more skeptic than normal.
When we started developing Invoicebus’ architecture, we decided to try different and more optimistic concept; a concept that reframe our mindset to hope for the best, but prepare for the worst. It was sort of experimental way of thinking, radically opposite from those we’ve previously been used to.
“Do not anticipate trouble, or worry about what may never happen. Keep in the sunlight.” ― Benjamin Franklin
In real world, web-apps are used by regular users, under normal conditions and in most cases in the right way. Therefore, instead to review dozen of marginal outcomes for one use case, we decided to focus only on two: Positive (the flow that is most likely to happen, the Expected Case) and Negative (for all other cases, the Rollback/Backup Case), always prioritizing the first one. By exploring and implementing this concept, we drew few conclusions that might be useful in designing web based software.
Conclusion 1: Optimism leads to smoother UX
Few months ago, while discussing ideas with Dimitar, we started conversation about how Gmail app works so goddamn fast, but Yahoo Mail doesn’t (at least at that time). After a short research, Dimitar came up with great observation: “Well, Gmail behaves optimistically, that’s why. It assumes the app is used regularly by prioritizing normal flow of the events at first place”. And he was totally right. Google is using optimistic approach as an ultimate UX and optimization mechanism.
When you try to take an action or apply some change, both apps behave similar, but yet slightly different. I’m going to paraphrase each one’s behavior.
Gmail: “Hi, I’m sending your request to the boss (server), but I’m not going to bother you with that, so you can continue doing your job immediately”;
Yahoo Mail: “Hi, I’m sending your request to the boss (server), but before you can continue doing your job, you’ll have to wait until he checks everything and gives you appropriate response”.
Just a small rearrangement of events causes Gmail users feel tremendous speed-up without a single interruption. Technically the difference is tiny, but ideologically it’s completely different way of thinking. What an awesome concept by Google.
Conclusion 2: Optimism leads to fewer distractions
“Are you sure you want to delete this item?”, “Are you sure you want to close this tab?”, “Are you sure you want to save the changes?”, “Are you sure you want to do this/that?”. What a time wasting mechanism.
“Customers shouldn’t have to think about every nitty-gritty detail – don’t put that burden on them when it should be your responsibility.” – 37signals
Of course, some questions could be beneficial and crucial interface features, but each one of them bears its own cost because too many questions lead to distraction, not interaction. So, how do we know if the user should be asked or not? We don’t. We try to maintain the optimistic approach by making assumption on the most likely scenario and deciding on behalf of the customer. Yes, we get wrong sometimes though, but we can always improve and adjust accordingly.
Conclusion 3: Optimism leads to less validation
Few weeks before the Invoicebus launch, we’d sent test link to 4 different groups of early riders divided by their IT expertise (from highly skilled geeks to complete IT dummies) to test out the system and push back some feedback. Approximately 40% of the IT skilled people had questions why validation is so minimized or somewhere even completely omitted? The answer was – intentionally.
“But the user can enter text instead of a phone number” – So what? You don’t need to validate every possible field in order to create error-free app. Unless specific data format is absolutely essential for further usage (e.g., email address, web address etc.), more validation is a curse, not a blessing.
Conclusion 4: Optimism leads to simplification
“Please retype your password”, “Your password doesn’t match”, “Your password is too short”, “Your password should contain at least one special character”, “Your password this, your password that…”. We think that’s annoying.
“But, the user can make a typo while entering his password during sign-up.” – True. However, less than 10% of the users fall in this category, and the other 90% correctly enter their passwords even if there’s only one field. So why bother all users when only a limited few are butterfingered (even though I personally found myself among them).
Backup scenario: Password reset form with one field and one click.
Conclusion 5: Optimism leads to liberation
“Is the web server powerful enough?”, “Which database should be used?, Which one is faster; should we prefer NoSQL?”.
– It really doesn’t matter because as less we worry in present, as more creative we become in future.
“Worry is a misuse of the imagination.” ― Dan Zadra, Compendium, Inc
“But what if Forbes publishes an article about us and the server crashes from traffic?”. To be honest, unless you have built space shuttle, that’s not likely to happen for a while. So, don’t worry because it’s a problem when it’s a problem. If your server ever crashes or slows down due to traffic overload, believe me; you would rather jump around the room celebrating a victory than worrying about the outage. Besides, one or two day slowdown won’t cause apocalypse of the world.
“Don’t waste time on problems you don’t have yet” – 37signals
Your inspiration is perishable, your time is precious, so don’t let worries build fence between them. Keep it up. Be optimistic. Create. And keep working on that Forbes coverage though
Now it’s your turn. Do you agree with our conclusions? What would you change to them? Please leave your comment below; I would like to hear from you.