The conception, birth, and first steps of an application named Charlie

Subscribe: Atom or RSS

In Search of an Interface Convention

by Alister Jones (SomeNewKid)

Those of you who have followed this blog for a little while will know that I recently stated that Charlie was on track, and was successfully serving simple, secure, localized, and configurable webpages. I then stated that I was moving on to design the administration interface. So what happened? Why am I suddenly stumbling about like a lost soul or a drunken teenager?

The reason is that I am in search of an interface convention. Not a code convention, but a presentation convention. I will nonetheless use a code convention to illustrate the problem. A popular code convention is the Model-View-Controller design pattern. This is an extremely versatile convention that works for simple interfaces and for complex interfaces. If you introduce this code convention into your Interface layer, it is unlikely you’ll ever need to replace it with something else. Similarly, I am seeking a presentation convention that works for simple interfaces and for complex interfaces, making it unlikely that I’ll ever need to replace it with something else.

My initial plan with Charlie was to create an interface that mimicked Microsoft PowerPoint. Say what you will about this program, it enables even the most technophobic person to create a slideshow presentation. Everyone can use this program without ever having to read its instructions. That’s good software. I felt that the slide-by-slide nature of PowerPoint mapped neatly to the page-by-page nature of a website. I also saw other analogies between the two. The problem with this approach is that it would be fine for a simple text-based website, but it would not scale to anything else. It does not provide a convention that would work for simple interfaces and for complex interfaces.

I am desperately keen to avoid a situation where to edit the text of a website the owner “edits in place” (like PowerPoint), and to edit the graphic of a website the owner needs to “open a new window”, and to change the settings of the website the owner needs to “use the control panel”. Such a situation would mean that the software behaves differently depending on what button the owner has pressed. This mutating behaviour means that the website owner must come to terms with the software’s quirks, rather than using the software as though it were not even there. In describing usability, Joel Spolsky tells us that, “Something is usable if it behaves exactly as expected.” Interface consistency—that is, an interface convention—has a large part to play in whether software behaves exactly as expected.

The development of Charlie has been put on hold while I search for an interface convention.

by Alister Jones | Next up: Charlie’s Enemy

2 comments

______
Anonymous Anonymous said...  
 

Hi,

About a month ago, after several attempts to ramp up my own ASP.NET 2.0 CMS, I was stumbling over your BLOG, and I’m following it ever since.

It was like living my own ideas again, but from another point of view.

I have to admit, that I don’t have written much code yet for my solution, I’m more the trail and error guy, searching solutions for in my opinion critical aspects, and as soon as I have everything cleared out, I then want to start for real.

But at least one thing we have in common, one of my last pieces left, is what you call Interface Convention … good luck with that … and please don’t stop your amazing BLOG.

Sorry for my bad English, I’m still learning your language … that’s also the reason for not writing earlier.

______
Blogger Alister said...  
 

Your English is very good. Please do not hesitate to let me know of your thoughts regarding anything that I write about.

Post a Comment

----