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. By using full service conveyancing tool, law firms will be able to meet client expectations. From customer relationship management to the automation of repetitive tasks, law firm technology helps optimize how your law practice runs.

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.

Tech-translation: Gmail doesn’t wait the response from the server to make the changes visible for the end-user. Therefore, first it calls local Javascript function (the changes become immediately visible), then asynchronously sends AJAX XMLHttpRequest in the background without user’s knowing, and finally, the server independently processes the request. Yahoo executes these actions in a slightly different order. First it sends AJAX call to the server, then while request is being processed, it shows progress bar and waiting message, and finally, after the server responds it makes the changes visible for the end-user.Interesting fact: By applying Google’s approach, we’ve managed to speed-up the Invoicebus engine more than 300% (oh man, we were so excited). Actually, that wasn’t even a real speed-up, because we only hided the network/server delay in the background.

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.

Example: While designing the Invoice Editor we faced the doubt if the user should be prompted confirmation dialog when he’s deleting an item. Thus, upon deletion, we decided to move the item immediately into the trash without any confirmation.

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.

Interesting fact: To date, we haven’t received a single support ticket regarding validation issue.

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.

Photocredit: Candie_N

Stefan Chachovski
Co-founder of Invoicebus. Huge lover of nature, science, and chocolate cherry cordials. He occasionally writes on this blog about Invoicebus' stuff. Hello him on Twitter or subscribe to his updates on Facebook.
Stefan Chachovski

Latest posts by Stefan Chachovski (see all)


  1. Slobodan says:

    Beautifully written article, in addition to hitting some great points.

    What you’re talking about here can be applied to much more than just IT and web apps. “I know it’s 20C now, but maybe it will get cold tonight, so I better bring my winter jacket with me” will get you to carry your jacket around 99.9% of times.

    Optimism is good, everywhere and people tend to be more successful (in addition to appreciating you more) when you show that you believe in them not screwing anything up, rather than making validate and confirm every single input (“What do these guys think, that I’m an idiot?”).

  2. Completely agree with you Slobodan; indeed, we can observe this concept in wider manner and can apply it in everyday life as well. I think the statistic is not much different there, because only tiny part of our worry will come to pass whenever/wherever you are; and most of our worry is wasted. Actually if the worry prevails you become skeptic and limited in many ways.

  3. Amazing article, Stefan. I think that the sense of worry next to being cautious has pretty much the same effect as panic compared to sense of fear. It freezes you and takes away your every ability to make the right decisions. Hence my favorite thing about this article is – Conclusion 5: Optimism leads to liberation.

    Once again, one of the best articles I’ve read whole year. Thanks

  4. That’s excellent Dragan, you’ve got really interesting comparison here because there’re lot of things in common between optimism/worry and panic/fear. For example, the paranoia and its ability to block reasonable judgement in many situations. Very nice observation indeed, thank you too.

Leave a Comment