Writing the code is the largest part of building a program, which makes it the most expensive and and most difficult thing to change. So what would happen if you designed the interface first?
Even good design is a relatively straightforward process, with a good designer, a simple sketch on the ‘back of an envelope’ may well be all that’s needed. What a lot of companies don’t seem to realise is that to the end user the interface is the program.
How many times after an Adobe upgrade do the moans start about some key stroke being changed or some command or feature having been moved? Quark on the other hand, regularly damned for it’s sluggish development have released QuarkXPress 7 with a user interface little removed from that of QuarkXPress 3, meaning that users can make the transition in a relatively painless way, despite the fact that there are over 200 new features.
If you just bung an interface on at the end, it will be obvious. If you try and combine existing interfaces, you will end up with inconsistencies. Adobe, although superficially very similar looking between programs, lack a consistency in the user interface once you dig a little deeper. Some of this is an historical bodge, all the programs in CS3 were originally stand alone and weren’t envisaged to be bundled as a suite of software. One can only hope that the problem will become less marked during further revisions, no doubt accompanied by more moans and gnashing of teeth.
With the interface designed first you have something ‘real’ to deal with. The interface design should serve as the rock that the program hangs from, if you are tempted to add extra features you can go back to the interface and see where it fits in. If the feature doesn’t fit in, don’t add the feature.
If you start with the interface you can see how the things looks and feel from the start. The interface should be continually assessed throughout the development cycle, if the interface doesn’t make sense or it’s counterintuitive then either the feature you’re trying to implement doesn’t fit the original concept or it’s time to look at the interface again. You can only answer these questions if you have designed the interface first and see what it’s like from an end users point of view.
It’s the end user that is the final judge in these matters.