The thing that most people think of when they think of a software program is the UI (user interface). The UI is how users interact with software and it’s how they identify with (or fight against) the system. But, the process of building user interfaces hasn’t really seen the improvements you would expect given the number of years.
In my post “Things Need to Change in the Software Development World”, I listed three issues I see our industry struggling with. The first one was the lack of “thinking time” provided to software developers. The second was the plethora and sometimes questionable quality of available UI frameworks. Below are some of the reasons why I believe UI frameworks can kill a developer.
Death by Instability
The first way in which UI kills developers is the fact that we are building more and more of our UIs on top of an unstable web stack. The web stack is unstable for a few reasons:
- web technology changes constantly
- network connectivity continues to improve
- there are many different platforms (browsers / OS) that are continually changing
- the base frameworks used to develop web solutions change frequently
This set of variables isn’t conducive to building stable UIs. Its changing sands make it difficult to build stable and long-lasting software. However, I do think some aspects have improved over time, such as using TypeScript to provide better guardrails for our client-side code. And the move toward (almost) all browsers running Chromium certainly helps.
Death by 1,000 Options
The second way in which UI kills developers is the sheer number of UI frameworks that are available. This wealth of options makes it challenging to know when to choose what and which frameworks work well together to construct a good solution. It appears that we as an industry are mostly down to Angular / React / Vue at this point, so things are settling down a bit.
But I am sure by the end of 2020 there will be a new major UI framework that we’ll all want to try. We can’t complain too much here, as developers we must love learning, but we also must love delivering software too.
Death by Rework
The third way in which UI kills the developer is the longevity of the frameworks (not the developers themselves). UIs built today using the new hotness in frameworks don’t have a great shelf life. Think of all the frameworks that have come and gone: Knockout, Durandal, Aurelia, etc.
One of the significant issues with building on the web stack is we are stitching together solutions that will require constant maintenance just to keep running.
Compare that with the green screen applications from the 70s and 80s. They are still running today. Will our applications be running 30 years from now without some major intervention on the front end? Not likely.
I don’t think there is a magic solution to these problems, but we can’t just ignore them either. Every day we continue to develop solutions using the current UI patterns is another day of UI debt we are building. And one day that debt will need to be paid for.