Wednesday, Nov 1, 2006

Do Not Forget the User Experience

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.

Filed under: , ,

Trackbacks

Use the following link to trackback from your own site: http://scottwater.com/blog/trackback/22364/

  1. Community Server Daily News Wrote:

    news of the day a grab bag for what's happening in Community Server BlogMailr. Get the buzz started.

  2. Ken.Robertson.Blog Wrote:

    Today, both Rob and Scott blogged about designing for usability compared to designing for scalability/performance.

  3. Community Server Daily News Wrote:

    news of the day a grab bag for what's happening in Community Server Wyatt Preul, like Ben, is in suspense

  4. Dave Burke Wrote:

    Several important posts on application design and useability were written by several Community Server

  5. Announcements Wrote:

    This week... The Community Server 2.1 Service Pack 1 is released! BlogMailr is announced! Well, sorta.

  6. Community Server Daily News Wrote:

    news of the day a grab bag for what's happening in Community Server Steve Kaschimer describes a very

  7. Jeremy D. Miller -- The Shade Tree Developer Wrote:

    Sort of a continuation of the ongoing maintainability series, it's time to look at some of the benefits.

Comments

  1. Jeff Wrote:

    It's funny that you mention the stuff in your disclaimer. I used to think that the older version of the forums had some great features in terms of code (the data provider model, for example), but the UI was terrible. Amazing the difference that several versions make.

  2. Scott Watermasysk Wrote:

    Hi Jeff,

    It would have been my own first repsonse to this blog post (Ancora Imparo). We (Telligent) have been of this mindset for a while now. However, we had a lot invested in CS (time, money, code), so it has been a huge task to get us focused on the right things...but focus is just a small part of it. Over the last year or so we have been making changes whenever possible to be easier to use out of the box and yet hopefully still powerful enough for those looking to get a specific task done.

    We have learned (and debated :) a lot and I think we have some really great things to show people in the coming months (blogmailr will be a very small taste).

  3. Chris Wrote:

    Hi Scott,

    I am not a developer at all (A systems engineer by trade).  I can hack my way around aspx files here and there but that's as far as it goes.  Designing, CSS and building different components together to form a unique site is what I am good at.  I use WordPress on my blog now and use CS on a community site.

    If you look at WordPress for example, they have an awesome user experience for both their power users who know how to write hardcore PHP code as well as someone like me who can take their template design, the template tags and the huge number of plugins available and build a truely inique site for my visitors.  

    For me, the biggest frustration is the complex theming system in CS.  I know that Chameleon is going to be a big step forward in this space but I would love to see more flexibility in terms of the template and theming system so I can create a once of a kind site for my visitors.  

    If I look at http://windowsvistablog.com/ I see a fantasic implementaion of CS.  You can see it is a CS site but they have done a great job in the design and some custom code to make it one of a kind and the user experience is great!

    Your site is another example of something different with the trackbacks and comments seperated and the Similar Posts section.  I want to do this type of thing in CS without hacking away at the code for hours.  

    One last thing.  You guys MUST provide better documentation for us who use the software.  Once again, WordPress has very impressive documentation and this helps a lot.  

    User experience is about everything.  Good, scalable and reliable software - You have that already.  Ease of use and administration - Pretty good so far.  Ability to customize - Hopefulyl Chameleon answers my prayers.  Good support - You guys do well at this, just need better docs for more advanced users.

    Thanks for all your hard work on CS.  It is great software!

    Cheers

    Chris

  4. Haacked Wrote:

    That's why I'm such a big fan of the Getting Real book by 37Signals.  http://gettingreal.37signals.com/toc.php

    I think they have the right idea by starting with the user and user interface first.  As they point out, you can scale later (http://gettingreal.37signals.com/ch04_Scale_Later.php), but you have to get the users first before you'll ever have need to scale.

    I know a lot of people will read a couple things they dislike in the book and dismiss the whole thing (What, no functional specs? These guys are insane!).  But that is a grave mistake IMHO.

    Phil

  5. Scott Watermasysk Wrote:

    Hi Phil,

    100% agree. Getting Real was required for my team right after it was published.

    You also nail it when you say that not everything in that book should be consider an authoritative how to guide, but at a minimum, it does open your eyes.

    I made a post on this last week on my "other" blog: http://crinket.com/archive/getting-real-book.aspx

  6. Gregor Suttie Wrote:

    Ahh how true - we are currently doind long hours on a project which everyoneis focusing onthe bug count - the real concern for me is not bug count but useability of the site which at present is unuseable.

  7. Milan Negovan Wrote:

    My conscience has been torturing me for not unit-testing Web Forms (which is, as you know, next to impossible without dirty hackery). But I find comfort in the fact that we talk to our customers directly, get the features that matter (or so we believe), resist those "it would be nice" features, work a lot on the intuitiveness of the UI, and so forth. And, like yourself, I've been a fan of the Getting Real book (http://www.aspnetresources.com/blog/getting_real_book_review.aspx).

    If wonder if abuse of agile practices is "over-engineering" in disguise. No, I'm not pointing my finger at Jeremy. I'm just saying this in general.