(Although, I'm sure I've had this one before.)
Application development is broken. This much is obvious to most folk. The reason is interesting in that it reflects something that is true of all design.
There is no right time to design the application's interface.
During initial specification, when most people spec an interface, most people can't visualise using the application. Thus you get underspecified and inconsistently specified interfaces. By the time an application is built, it is too late to specify, as change at this point usually requires complete rewrites of the majority of the code base.
In short, by the time people can actually use an application, their reaction is always "That's not what I want!"
There has to be a better way. And I intend to build it.