IDE Scaling

After working for a while for a company that specifies an IDE as part of the standard tool chain, something becomes apparent after watching it get used and through occasionally firing it up myself: A graphical user interface just does not scale well enough for software development.

By scaling, I mean in the usability dimension rather than in a performance or capability dimension. That is there is no current way for a single, integrated graphical user interface make available all of the functionality required for software development to a user in a usable way.

Another good example of this lack of scalability is in office applications. Microsoft puts a lot of effort into the user interface for Microsoft Office. For many versions they have been adding new features, but people weren't finding the very features they asked us to add. Fixing this problem (if indeed they have fixed it) required rethinking the entire interface as well as inventing a completely new menu and toolbar system.

So what's the answer? How do you get a user interface to scale? Can you keep on rethinking the interface every time you reach that tipping point? I'm not sure if breaking consistency is a wise idea and I think there must be some theoretical upper limit - in fact, I think Office and Eclipse have both hit it.

Perhaps many, smaller applications that do one (or few things) well would be a better remedy. Eclipse attempts to do this with its notion of "perspectives", but I do not believe these work well as each perspective is just that - a different perspective on the same data set, your source code. You want a way to apply different tools to the same data, not novel ways of looking at it.

Of course, the command line lets you do just this - you have one interface to your source code and can apply any command line tool to it. The interface consists of many, smaller tools that do one thing well and can you combine them to produce a more complex result. And of course, you get a unified history of what you have done in the past using them, making it easy to recall and repeat past results.

So, tell me again, why are you still using an IDE?