I worked on a multi-year multi-million dollar project to replace an aging greenscreen US Federal government legacy system (originally written in Natural / Adabas). The replacement was supposed to have a modern web application front-end with J2EE middleware and a modern relational database (Oracle IIRC). Literally tens of millions spent, but the project was cancelled. Why? First of all, there was a nasty project management issue I won’t go into now, but the more important problem in my opinion was that basically it sucked. The application was extremely slow and cumbersome, response times were unacceptably long. Users complained they actually preferred the old application because it actually worked and actions were instantaneous. There were key combinations that meant something, etc.
In addition to the usual incompetence that abounded on projects like these, my conclusion was that far too much time was spent on the infrastructure and not enough on UI/UX. I am a solid UI developer with no official UX background but I have enough experience to know what pissed users off, and the application design had these issues in droves. All of this also revealed just how much abstraction we use in modern application development. The old greenscreen apps were very interconnected and were run on “bare metal” systems such as mainframes. An action you took immediately got stored in the database and lookups were lightning quick. The modern equivalents to these go through many, many layers of processing that never before existed.
Modern application development is hard, really hard. Sure it’s easy to throw together an app with modern development tools, but once you want to make anything Enterprise-grade, customizable, reliable, and actually usable, it takes time, dedication, and talent.
Don’t ignore UI/UX.