The present
Caveats
Most if not all pages are just rough notes, and these pages as a whole are far from complete. More notes will be added in time, eventually, maybe.
If, from reading these notes, you conclude that I am off my rocker, you won’t be the first, and you may even be right. These pages may simply position me as an acolyte to the late Gene Ray.
No doubt there are a dozen and one reasons why none of this would ever work, but perhaps somewhere deep down there is a tiny fragment that could be used for something.
Contents
The treadmill
From a software perspective, the IT industry has become a treadmill of bad design. The only way to avoid the stagnation of one product is to jump ship and adopt another, only to find that it hasn’t developed very far either. So many basic ideas are continually missing from decade to decade. Every generation of technology increases computing capacity and affords the ability to do things that were unthinkable before. For example, the limitations of 7-bit ASCII and the incompatible extended ASCII code pages are fortunately now a thing of the past … except for, you know, all the software and systems that still only understand 7-bit ASCII to this day. Randomly: one field will take Unicode and another won’t. Error handling is still a dream, not a reality.
New products seldom build on all the “solved problems” of the past: they introduce a whole raft of new problems. For example, a fairly new RMM product that displays links with no caption that cannot be clicked, because nobody thought to introduce placeholder captions. This is very much a solved problem, but also a “not invented here” situation.
Middle-click to open a link in a new tab (for those of the Mouse Master Race, not trackpad peasants) is a concept that a staggering amount of web UI designers seem oblivious to. All these basics just keep eluding people year upon year: no matter what product you switch to or what shiny new version comes out, you have all the same failings. Dialog boxes where pressing Enter for OK doesn’t work.
Part of the focus of the ideas presented here relate to maximising the extent that solutions can be built once and re-used forever. Programmers should be focused on the logic of their software, the actual functionality, and not in having to keep re-inventing the basics (badly) time after time.
The Web
Like it or not, more and more software is moving the the World Wide Web. HTML’s painful unsuitability for this brings its own pain: it is a language for documents trying to pretend to be a markup for UI. However, there are more general concerns with this practice.
Mazes
Web-based systems are often designed as a maze. The pages form an acyclic graph: a lot of transitions between related record types are not implemented. The only way to get from record A to a related record B is to backtrack all the way to the start and try to find another route. From a user-facing perspective the interface should be a bidirectional cyclic graph: links between related records in both directions. Instead, it’s hours of frustration trying to figure out the paths through the maze to where the records you should have been able to get to directly have been buried away.