Rob asks, "which is more difficult: building scalable well designed software or writing simple, easy to use software?".
I am not sure why, but this is something that seems to be answered wrong in the .NET space. Everyone seems to be concerned with scale and performance and little time if any gets devoted to the user experience; in other words, to the part of the software people actually use.
In our community, agile is all the rage. Unit test this, extensibility here, blah...I think as a community we are missing big ticket. If people love your software they will ask for more...which is when having unit tests/etc becomes that much more important.
Jeremy Miller wrote a pretty good Programming Manifesto which has gotten a lot of links, but not one word of it related to the user experience. I suspect many people will say, "That is the designers job" or "he was only talking about code"....but that doesn't cut it. You need to think early and often about how users will use your software and make sure the code can accommodate that experience and not the other way around. It is definitely possible to write killer code and then apply it to a killer UI and then refine both as necessary. However, real world schedules and business practices make this a utopia.
The reality is that in just about every project you get one chance to nail it. If the user experience is not perfect, your beautiful well tested code developed using the most agile process will have no users.
I think it was the great Vince Lombardi who once said, "UI isn't everything, it's the only thing".
Big Disclaimer: Just to clear, I (and Telligent) still have a lot to learn here. It was not too long ago we were in the "code will save the world" camp. It is a challenge to stay focused, especially at a company that is stock full of great developers.
Use the following link to trackback from your own site:
http://scottwater.com/blog/trackback/22364/