ArticlesSoftwareAbout

Choosing between different solutions (WebApp, MobileApp, DesktopApp, Console or Service)

Abstract

In this article I’ll encourage you to keep an open mind about your options when building a software solution.

Motivation

Why write or read about how to choose between different solutions? Shouldn’t it be obvious? I think it’s well worth our time to dwell on that, especially considering two reasons:

  1. Choosing the wrong solution is one of the most expensive mistakes to make. E.g. adding an unplanned feature to an application may seem expensive, but it pales in comparison with the realization that your mobile app should have been website or the other way round.
  2. Often a decision about a platform or solution is not made deliberately, because we are simply not aware of all our options. E.g. consider if Kahneman’s WYSIATI (What You See Is All There Is) theory comes into play here or the “If all you have is a hammer, everything looks like a nail” quote rings true.

Why don’t we evaluate our options more carefully?

There are a couple of obstacles that keep us from taking a closer look.

Removing the Obstacles

But how can you remove those obstacles?

Missing Expertise

Missing Expertise can be battled in the following ways:

  1. Learn about it The most obvious, although hardest solution is to learn about the qualities of certain technologies. This does not mean that one needs to become an expert in every new technology that pops up, but knowing if it’s a good match for a certain use case is important.
  2. Get Help If you’re a consultant or developer and the technology that is most appropriate or required for the task does not match your expertise, you should acknowledge the fact and inform your client or boss. If you have a colleague or acquaintance that specializes in that technology or field you should refer to them.

Emotional Bias

  1. Stressfree Environment A good way to combat emotional bias is to get to know a technology in a stressfree environment. This may mean, that you take a look at it in your spare time, without the clock ticking.
  2. Tiny steps Start step by step and don’t try get everything done at once. Sometimes you’ll feel tempted to try something big at once that you are able to do in another language or with another framework that you’ve already mastered - but don’t give in. Small incremental successes keep your motiviation going for a longer time.
  3. Ask a friend If you really dislike a certain technology, you should talk with a friend or someone you respect that is fond of it. As he or she is your friend, you are unlikely to completely dismiss them and get a glance why someone would want to use that and advantages it has.

Lots of Options

And finally, to get a quick overview I’ve compiled the following list that can be used to get the juices flowing on what parts could make up the ideal solution. My hope is that by spelling them out, they’ll be on the radar the next time when a problem needs solving. Many solutions do not fall strictly within one category and more often than not consist of more than one part.

Disclaimer

This list is neither exhaustive nor can it be, it’s just a reminder of what’s out there and should be seen as an inspiration to get you to explore your options.

As always feel free to leave a comment, especially if you want to remind me of an important option that I completely missed when I typed up the list, as I most certainly did.

Copyright Martin Kramer 2026
Impressum / About