I think that you hit upon a very important aspect of good design -- that it
is consistent throughout the user's experience.   If even one part of the
experience is less than satisfactory, then the designers have failed.  The
user walks away with a bad taste in their mouth.

I'd love to hear Josh's thoughts once JavaOne is over.   Best of luck! :)

--Ryan

On Thu, May 28, 2009 at 8:49 PM, Reinier Zwitserloot <reini...@gmail.com>wrote:

>
> Here's a fine example of how clearly somebody wasn't even thinking
> straight. This is linux, doing a major update in ubuntu. Just a few
> things sprang to mind:
>
> The theme: Every so often I get a dialog box that tells me that I've
> changed some settings file and now apt-get doesn't know what to do;
> replace, keep the old one, attempt to merge it. This dialog is so
> ridiculously insanely stupid that I don't get why microsoft isn't
> showing this to the world and going: TADAAAAA - linux is an amateur
> toy that doesn't deserve to play in the real world. It's that dumb.
> We're using a gui based updater here that's just a light frontend on
> top of apt-get, which is a package manager that basically knows
> dependencies and works it all out for you, and can even update
> packages by taking down the service, replacing the files, integrate
> whatever changes to the settings files are required, download and
> install all dependencies, then take the service back up. That's quite
> a feat, and apt-get is really cool. It's probably the principal reason
> why debian is cool, and ubuntu ate redhat's lunch (redhat uses rpm,
> which can't do all that). Now that you know, let's move on to how this
> fantastic tool turns into unbelievable suck, just because of bad user
> interface design. Compared to the mind boggling effort that goes into
> maintaining all those packages, keeping a fleet of mirrors running to
> serve all of them, and the effort that went into the technical design
> and development of the apt system, this is small fry:
>
>  [ simple stuff that's easy to fix and should assault your senses
> immediately. This isn't the kind of Joe Nuxoll style thinking out of
> the box stuff, just general: We need to make sure our user interfaces
> aren't explicitly out to shoot the user in the foot]
>
>  A. it's an enormous dialog box that's totally empty, except for 1
> dropdown box. Anyone remember the microsoft shut down dialog drama?
> the entire screen as real estate, and you hide the important bits in a
> -drop down box-, that you have to click. WTF? Dropdown box contains
> the same 5 choices every time. Opening it just opens it across a sea
> of grey. If you're thinking of user interface design even a little,
> the first time you as a developer see this dialog box, you should file
> a 'critical' bug or fix it then and there. You don't let piss like
> that go out into the world, period.
>
>  B. One of the times the dialog box popped up it didn't even have a
> sensible file name. I had absolutely no idea what I was supposed to
> 'keep', 'replace', 'integrate'.
>
>
> Now lets dig deeper. We know that apt more or less forces this
> situation, if you have any experience with the text output of the apt-
> get tool. But, even with the way apt works, we can do a better job,
> even if we're still not in Joe Nuxoll think:
>
>  C. Give me the full path to the settings file, show the diff between
> the old and the new, and offer me an option to manually integrate the
> files.
>
> And now for the big whammy, let's redesign this entire thing so that
> it's actually, you know, usable by a mere mortal:
>
>  D. There's such a thing as file system hooks. Apple uses it in place
> of a registry; all applications have a file in them that explains
> which files they can open, and everything you put an app on your
> harddisk, a system hook reads this information and makes sure that,
> when you right click on such a file, that app shows up in the 'open
> with...' dialog. There's neither a registry (windows) nor a big
> settings file (linux) to worry about. When you delete the app (there
> are no uninstallers on os x, just delete it), the file system hook
> removes that app from open with lists. You can apply the same tactic
> to settings files: *ANYTIME* I mess with a settings file, apt should
> be called so that it can inspect what I just did, see if it can
> automatically integrate that change with a possible future update, and
> if not, back up the previous version, and send me a mail (or better
> yet, if we're on a GUI, show as I try to save it) how I can fix it or
> where I can edit it so that it does integrate properly. Note that all
> major linux file systems offer this feature.
>
> NB: For many apt-get installed tools, the settings file for that tool
> is managed by apt, but it 'includes' a special file that you can
> safely edit without setting yourself up for future pain. However, most
> manuals on configuring the tool aren't debian/ubuntu aware and point
> you to the file you're not actually supposed to edit. Often there are
> some remarks in there by the debian package maintainer that you're not
> supposed to edit this file, but, yeah, as if I'm going to read all of
> those! How perfect would it be that, on saving, apt-get runs in the
> background, automatically diffs my changes, and tries to automatically
> move them to the right properties file, -or-, mails me this plan so I
> can confirm or deny it.
>
>  E. Upgrading debian or ubuntu takes a day or two. That's because for
> every conflict and settings problem you get a dialog box. I'm not
> going to sit and stare at my computer for the 1 or 2 hours total
> runtime it takes to process all updates, so what ends up happening is
> that it just sits there, idle, showing a dialog box, and every hour or
> 3 I check in, turning the process into a long and painful process that
> I loathe. There's no excuse here: the gui tool (and probably apt-get
> itself) should figure out all conflicts beforehand, and toss all
> dialog boxes my way BEFORE starting the actual process of downloading
> and replacing things. This also allows me to hit 'cancel' midway
> through, whereas with current apt-get, you can't really do that
> halfway in.
>
> You could take that opportunity to rethink the design of your dialog
> boxes, and for e.g. settings files, show a table, with checkboxes that
> you can quickly mark as replace/keep/integrate, along with e.g. double
> clicking on any entry to show a diff editor so I can manually fix it.
>
>
>
> Is this easy? Well, I just thought of all of that in the span of 15
> minutes, and compared to the effort behind the mirrors and apt itself,
> developing all of that is indeed easy. And yet, its the difference
> between 'utterly useless piece of tripe that makes me want to throw my
> house server out the window every time I dare update my ubuntu', and
> 'so awesome I'd shit bricks - and I'd tell all my friends too'.
>
> On May 29, 3:49 am, Michael Neale <michael.ne...@gmail.com> wrote:
> > Well good luck with everything for JavaOne ! And I hope you can post
> > more on this subject in the future - just resurrect it when you have
> > some time !
> >
> > On May 29, 11:47 am, Joshua Marinacci <jos...@gmail.com> wrote:
> >
> > > It sucks that this thread is going on right now during JavaOne prep.
> > > I'd love to join in. I'll just say this really quick:
> >
> > > Yes, UI design (and visual design in general) is an art. But there is
> > > method to the madness. There are rules and guidelines. There are
> > > things you can learn and apply in a rigorous manner. And yes, it's
> > > even possible for engineers to learn the basics of design (UI and
> > > otherwise).  I hope to explore this more after JavaOne.  In the
> > > meantime, stay tuned for some cool stuff next week and feel free to
> > > send me your questions on anything.
> >
> > > - Josh
> >
> > > On May 27, 2009, at 8:29 PM, Ryan Waterer wrote:
> >
> > > > The tools help streamline parts of code that can be streamlined.
> >
> > > > "Beauty is in the eye of the beholder."   What is intuitive to one
> > > > person can be cumbersome and clunky to another, or too simple and
> > > > limiting to someone else.  From my understanding, we want to design
> > > > to a certain demographic, and have it be as easy to use for that
> > > > demographic.
> >
> > > > I believe that UI is art.   Just like art, you can teach design
> > > > principles, concepts and techniques.   Just like with art, some
> > > > people with be naturally gifted, and understand ways to present the
> > > > information in an effective manner.   I also believe that there are
> > > > some people who just "get" server side logic extremely well; it
> > > > comes naturally.   We can just look at Dick and Joe for examples of
> > > > both types.  This doesn't mean that Dick can't learn to be extremely
>
> > > > good at designing UI.
> >
> > > > I agree with Michael in that doing a "good" UI is often more
> > > > expensive.  I think that it's the least understood, and put off
> > > > until the last in most cases.  As Joe has argued in the past, this
> > > > is extremely bad for a product.   I'll go a step further --  I think
>
> > > > that bad UI is more damaging and costly to a product than a poorly
> > > > written back-end system.
> >
> > > > While I do enjoy playing computer and console games, they are also a
>
> > > > fantastic study of UI design and different approaches.  While the
> > > > complexity of the game varies, a good design does a great job of
> > > > hiding the complexity and helps with the immersion of the game.  A
> > > > UI that "gets in the way", and forces the user to break immersion is
>
> > > > clunky and poorly designed.
> >
> > > > A different look is the new nintendo system (let's ignore all
> > > > discussions on the value of the system, the gimmickery, etc).   They
>
> > > > took a piece of hardware that is difficult to pick up and use and
> > > > transformed it into something that most everyone recognizes and
> > > > understands how to use -- a TV remote control.   Like my comment
> > > > above, Nintendo made it so that the "UI" didn't interfere with what
> > > > the user wanted to accomplish -- play games.
> >
> > > > Ultimately, I think that is a good definition of a good UI or a good
>
> > > > design.   Can the user do what they want to do in an easy, efficient
>
> > > > manner?
> >
> > > > On Wed, May 27, 2009 at 8:47 PM, Michael Neale <
> michael.ne...@gmail.com
> > > > > wrote:
> >
> > > > good points - and I agree with Mark - change is in fact good, nothing
> > > > to be allergic to.
> >
> > > > I think the important point to me was that is very very very hard,
> and
> > > > very very important. I also wish I was better at it - partly that is
> > > > practice and study, but I think the bigger thing is facing up to the
> > > > fact that this is important and hard - and getting it right will give
> > > > you a competitive advantage (a la apple) versus the way the status
> quo
> > > > views it: a detail which is just an annoying cost.
> >
> > > > Unfortunately UI design isn't as respected, at least in some circles,
> > > > so its a tough battle.
> > > > I am glad there are like minded people here (and Joe's influence is
> > > > appreciated).
> >
> > > > The worst thing: doing it right is expensive, so, so expensive, and
> no
> > > > one wants to hear that. In fact as we use tighter tools and languages
> > > > which compress the cost in the "other layers", it makes a quality UI
> > > > seem proportionally very expensive - I have no idea what to do or
> > > > think about that problem.
> >
> > > > On May 28, 11:00 am, Reinier Zwitserloot <reini...@gmail.com> wrote:
> > > > > Same here; I disagree with the notion that its an art and can't be
> > > > > learned well if you don't have the knack for it.
> >
> > > > > I think that most software developers/companies just don't put in
> > > > the
> > > > > effort. No, scratch that - they don't even acknowledge that such a
> > > > > thing as design exists.
> >
> > > > > if you haven't the first clue on user interaction design, and you
> > > > > still start off with: I will design the user interaction first, and
> > > > > then I'll build whatever I need to make it work, even if this is
> > > > > wildly different from how things work under the hood - then you'll
>
> > > > get
> > > > > a long way already. Sure, getting it -perfect-, that may be an art
> > > > > form, but what isn't? (I'm channeling Joe Nuxoll here a bit; he's
> > > > very
> > > > > much against designing the interface of an app to mirror the
> > > > technical
> > > > > implementation, and I think having an innate alarm bell in your
> head
> > > > > whenever you do that is a good thing).
> >
> > > > > Apple on the other hand takes this so seriously, its practically
> > > > their
> > > > > corporate mantra. They still get it wrong plenty of times - even
> > > > apple
> > > > > isn't perfect, but at least they acknowledge that the world is
> > > > > supposed to work User interface first - everything else later.
> >
> > > > > Simple examples:
> >
> > > > > Instead of letting your web app write dates like 'May 1st, 2009
> > > > > 12:14', generate '5 hours ago'. That's what people really want. Of
> > > > > course the database stores timestamps and not a continually
> updating
> > > > > 'X seconds ago' - but the fact that the database stores timestamps
> > > > > does not mean you need to render them as such. Just because Samba
> > > > has
> > > > > 500 settings doesn't mean you need to have a settings dialog with
> > > > all
> > > > > of that; instead, creating some oft employed defaults, and let the
> > > > > user pick one of those. If you want to be linuxy about it, over an
> > > > > 'advanced...' button that lets you edit this to the exacting specs
> > > > > that text configuration of Samba allows - I don't think apple, or
> > > > the
> > > > > right spirit for interface design, is against giving users that
> kind
> > > > > of power if they really want it. The important point is that you
> > > > don't
> > > > > make things needlessly complicated just because you're not willing
>
> > > > to
> > > > > think beyond the road thats paved out for you due to technical
> > > > > circumstances. This is of course a lot harder, but then, making
> good
> > > > > stuff generally isn't.
> >
> > > > > On May 28, 2:13 am, Mark Hibberd <mthibb...@gmail.com> wrote:
> >
> > > > > > On Thu, May 28, 2009 at 9:42 AM, Michael Neale
> > > > <michael.ne...@gmail.com> wrote:
> >
> > > > > > > well replace intuitive with cohesive and consistent etc... do
> > > > you
> > > > > > > agree with the gist of it then?
> >
> > > > > > Yeh I would. I definitely agree it is underrated, both how
> > > > difficult
> > > > > > and how important it is to get UI right.  I just think the
> article
> > > > > > overlooks the point (maybe intentionally) that not every user or
>
> > > > user
> > > > > > base is the same and that it is pretty easy to find fault with a
> > > > > > system/ui when it is not built to the purpose or audience that
> > > > you are
> > > > > > applying it to.
> >
> > > > > > I think my position can be summarized as: Good UIs are not
> > > > universal,
> > > > > > even if the principles that guide an effective UI are (and with
> > > > a few
> > > > > > exceptions, they are).
> >
> > > > > > > I so wish I had the skills that is described there, I have an
> > > > enormous
> > > > > > > amount of respect for those who are able to get it right (I
> > > > don't
> > > > > > > agree that you *can't* learn them), and desperately try to
> > > > learn more
> > > > > > > myself, and practice...
> >
> > > > > > > I think you could stretch user interface to include major
> > > > apis, if you
> > > > > > > kind of tilt your head a bit... but still, I think its really
> > > > the most
> > > > > > > important thing today.
> >
> > > > > > APIs definitely need to be classed as UI, and treated with a
> > > > level of
> > > > > > respect that is often lacking.  There are definite skills that
> > > > apply
> > > > > > across the board to UI, be it API or GUI, like making it easy to
>
> > > > do
> > > > > > the right thing, making it hard (impossible?) to do the wrong
> > > > thing.
> >
> > > > > > One interesting thing is that people feel it is generally
> > > > acceptable
> > > > > > to evolve a GUI but not a programmatic API. I think everyone
> > > > needs to
> > > > > > get over that. Change is awesome.
> >
> > > > > > Mark.
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to