The root cause of my annoyance with so much software is that no one ever said 'what problem is this supposed to solve? How do we build a thing that is a great solution to that problem?' they said 'thing X exists and has users, how do we copy thing X and make a slightly better [or cheaper] X?', even though thing X is a pretty poor fit for all of the things people use thing X for.
@david_chisnall Lotus 123
@Slash909uk One of the few examples that is both sides of this process.