Why Easy-to-Use Apps Are Complex to Build

Why Easy-to-Use Apps Are Complex to Build

Most people think “this app is easy to use, therefore it must be easy to build”, it’s just the opposite

Image for post Picture by me

This essay first appeared in _[**_Gray Matters](https://graymatters.substack.com/p/-why-easy-to-use-apps-are-complex)_ 🧠, **_a weekly newsletter I co-write with [Mario Chamorro_](https://medium.com/u/6291e977af46?source=post_page-----8e5bcd6aca19----------------------) where we discuss Productivity, Tech, the New Normal, and everything in-between. Please_consider subscribing_ if you like this essay._


I personally contend with a lot of complexity in my job as a software developer, mostly thinking about “where” to put it: is it better to spend time now to make the code less complex for future changes, or is it ok to leave it as it and we can deal with the complexity at a later time if needed? It’s a question without a good answer, as it depends on a bunch of externalities you have no control over: will we maintain this feature for years to come? will it require constant tweaks? All this to say that someone at work recently posted about the Law of Conservation of Complexity which states that complexity can only be moved but not eliminated, which poses the question of…


[…] who should be exposed to the complexity. For example, should a software developer add complexity to the software code to make the interaction simpler for the user or should the user deal with a complex interface so that the software code can be simple?

Bruce Togazzini has a bold answer to that question: you shouldn’t think about that, but about what happens when we — software developers — inevitably hide complexity inside the applications (i.e. make applications more powerful but simpler to use):

If people will insist on maintaining equal complexity, yet we reduce the complexity people experience in a given task, people will take on a more challenging task.

In other words, the more complexity we hide inside the applications, the simpler they are to use, and the more complex tasks the users will want to perform.

Given that people will continue to want the same level of complexity in their lives, given that we will continue to reduce the proportion of complexity of any given function that we expose to the user, we may expect that the difficulty and complexity of our own tasks, be they at the application or OS level, will only increase over time.

Image for post

In the previous chart (via) we can see Togazzini proved right: there is an exponential explosion in the Lines Of Code (LOC, which we can use as a proxy for complexity) in commercial aircraft systems as time goes on. Pilots have now an easier time interacting with the systems, which frees up their “complexity reservoir” to take on more complex tasks.

Slack is another perfect example. Most of the people I talk to don’t realize that the apps that look the simpler to use are in fact the most complex to build because all the complexity they don’t experience as users is contained inside the code. If you ever catch yourself thinking** “it’s easy to use, therefore it must be easy to build”**, try to remember that if you as a user are not experiencing the complexity, someone must have dealt with it for you :-)

user-experience software coding apps software-development visual studio code

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

How long does it take to develop/build an app?

This article covers A-Z about the mobile and web app development process and answers your question on how long does it take to develop/build an app.

Offshore Software Development - Best Practices

To make the most out of the benefits of offshore software development, you should understand the crucial factors that affect offshore development.

Top Mobile App Developers & Leading App Development Companies in UK

Profusely examined top Mobile App Development companies in UK with ratings & reviews to help find the best Mobile App Development solution providers.

Is Low-code or no-code development is future of mobile app development

Mobile app development has skyrocketed over these years with the increasing demand of mobile apps for a variety of purposes like entertainment, banking, weather update, health, booking movie tickets, booking a taxi etc. With the latest...

Development Containers in Education with Visual Studio Code

Development Containers in Education with Visual Studio Code