Increasing user interaction with websites…

I recently gave a presentation entitled “Increasing user interaction with websites”. Because I’m all into savig the earth, recycling and being a Jolly Nice Chap, here it is.

I did it in the quite wonderful S5 system by the esteemed Eric Meyer which I will no doubt be using again very soon, and works best in full-screen mode. Try pressing F11 on your keyboard, you might like it.

An exciting time to be a web craftsmen…

One of my favourite blogs has mentioned one of my favourite words, and I like what Craig says. It is an exciting time to be working on software, especially web software, as there is a real feeling of the sky being the limit. Google, Flickr, Youtube, they all did it – why can’t I?

The fact is that while there is a lot of buzz and hype surrounding the current internet boom (2.0) there’s a distinct lack of what I would call craftsmen. Those people, like Craig said, who strive not just to finish a project but to do it right. And when it comes to doing it right, it’s all down to the end users.

They are the ones who will sit there looking at this stuff we make day in, day out. They’ll be clicking things a lot more than we ever will, they’ll find those niggly little things that we just don’t have a clue about. As I walk round my company I’m always slightly wary when I see one of my systems on somebodys screen – after all, if it doesn’t work they’re the ones who will complain because I haven’t ‘done my job properly’. Cans of worms, anyone?

So it’s important, no – vital, that we take what we do seriously. I’m not saying come to work in a suit and tie every day, or never have a laugh, but to always bear in mind the end user. And put the effort in to do things properly. I recently worked on a site that was nominally built with web standards (no tables, divs, paragraphs etc) but was completely unusable, broke in every browser by that one and was basically a mess. It had all the right components, but no craftsmanship had gone into it.

Last year my wife and I went to the beautiful island of Guernsey and while there went to a jewellery workshop. Let me tell you, those guys are true craftsmen. The hours they spend cutting, etching, shaping and polishing would put even the most nit-picky of web designers to shame. And all for something that’s just a few millimetres across. But how beautiful does that stuff look? They aren’t just making a piece of jewellery, they are making something that someone will one day consider an essential part of themselves. Something with potentially a massive amount of sentimental value, something to help make people’s lives more special.

It’s a challenging thought, but why can’t we make software with that attitude? As Kathy says, we don’t want to be just liked – we want to be loved. And we should want our software to be loved as well, because it makes people’s lives better (easier, quicker etc). After all, making people’s lives better is a worthy aim.

Content management – a fresh approach…

Further to my article on the power of the niche I read this interesting article by highly acclaimed uber-geek Eric Sink. In it he describes how, when writing a computer application at least, going for a small portion of a large market may not be the best idea.

He’s absolutely right. I have a tendency to “open my mind” far too often when forming ideas for an app.I start thinking about related features, additional uses for the app, plugins, new markets, additional functions. And before I know it, instead of the streamlined sportscar I originally started out with, I have a double-decker bus.

And that’s a problem. A huge problem. Because I can’t please all the people all of the time, not even close, so why should I bother. If I try to do too many things I’ll end up failing at all of them, but if I just do a handful of things really, really well then I have a good chance of getting it right.

So I’ve been thinking of the smallest market I could possibly go for, the narrowest niche I could develop a product for. And, of course, that market is me. just me. No-one else. I just need to do something that does what I need it to do, and ignore those voices in my head that shout about making “a viable business opportunity”. Instead I should just do something that fits my needs perfectly.

So, what am I going to make? Well, there’s just one thing that I really need at the moment, and that’s a decent piece of software for managing my websites more easily. While I could use one of the many content management systems already out there, the fact is I want to do things in a particular way.

For one thing I don’t want there to the any difference between a page and a folder. As I am fanatical about clean URLs this makes sense. Consider these examples:

mysite.com/my-page
mysite.com/my-page/more-info

Now some people would say that “my-page” is a folder, when that folder is accessed in a web browser an index page is shown. However I don’t agree, because it can be accessed directly and it has it’s own content. Therefore it’s just a page which happens to have a child (“more-info”). And “more-info” is just a page, whether it has any children or not.

Strange though it may seem for people used to using more traditional CMSs, it’s actually pretty easy to visualise if you think of it in database terms. Here’s my table with some sample data:

ItemID ParentID ItemName Content Permalink
1 1 Homepage Welcome to the homepage homepage
2 1 My Page Welcome to my page my-page
3 2 More Infomation Some more infomation more-info

So you can see I have three items in my database. The first item is the website homepage, cunningly called “homepage”. The next item is a child of the homepage – notice it has a ParentID of 1? That means the ID of the parent of that item is the item with the ID 1. If that sentence makes sense to you you’re doing very well. The next item has a ParentID of 2, because it is a child of the “My Page” item.

One thing to note is the Permalink colum. That stores a URL-safe version of the page name, and is the bit that will appear in the address bar of the browser when each page is loaded, for example “mysite.com/my-page/more-info”.

Using this system I can have as many pages as I want, all with a logical relationship to each other. I can easily set the content of each page, change the title (and the permalink if I want) but know that my menu system will always know where each page is and how to get to it. Fantastic.

However I want more. Much more. For example, I want to be able to create an image gallery anywhere I want in my website, with different sizes available for each image. I want to be able to create a wiki if I want, or a forum, or a blog. And that means I need to set the type of each item, like this:

ItemID ParentID ItemType ItemName Content Permalink
1 1 Page Homepage Welcome to the homepage homepage
2 1 Page My Page Welcome to my page my-page
3 2 Gallery My Pictures Here are some holiday snaps my-pictures
4 1 Blog Bloggity blog Welcome to my blog blog

So now I have the following site:

mysite.com/ (site homepage)
mysite.com/my-page (a normal page)
mysite.com/my-page/my-pictures (an image gallery)
mysite.com/blog (a blog)

You might be thinking why would I want to do that? Well, I just do. Remember this is for me, no-one else. It’s my app and I’ll code what I like :0)

So now my system knows what type each item is I can do all manner of things. In my administration system I can load the correct forms and functions – so where the item is a gallery it would allow me to upload images and create photosets, for instance, or for a blog it would allow me to create a new entry that would automatically be added to a date-specific archive. And on the public pages I could do what I want too, like load some JavaScript just for gallery pages that allows me to use a lightbox.

Obviously there’s a lot more floating round my head than just that. However if I get something that does exactly what I want it to, and works exactly how I want it to, then that would be great. The only problem is, if I’m developing this just for myself, who’s going to tell me when to stop?

Wearing different hats…

It’s one of the main things I enjoy about my job that I have to wear different hats. Not real hats, of course, I’m talking about metaphorical hats signifying different roles. Some of these hats I enjoy wearing more than others, and some I absolutely resent even going near as they are way outside my responsibility. It seems like web guys are lumped alongside general IT people when they clearly aren’t the same breed. But I digress.

Here’s a quick rundown of the hats I wear, how much time I wear them (in percent), and how well-fitting they are to me.

Developer Hat: Worn 40% of the time

My main hat is the Developer Hat. It’s plain black with a very small purple PHP logo on it. It fits pretty well, although sometimes I see people wearing the same hat and it’s quite obvious that they were born wearing the Developer Hat and I only got my one relatively late in life.

What most people can’t see is the intricate and complex mesh of technologies that make up the inside of the hat, a mesh that I concieved and constructed with my own two fingers (hmm, note to self, learn to type properly). A mesh of objects, functions, expressions and tricks that I’ve picked up over the last decade and now carry around with me. This is my Developer Hat, and I wear it with pride. It’s a pity that other people see it as a…

Technical Support Person Hat: Worn 25% of the time

That’s right, many people seem to see me as a general helpdesk dogsbody. Just because I work on the internet they ask me things like “Are my credit card details safe on this site?”, or “My screen has frozen, what do I do?” (reboot, muppet) or even “My mouse is going a bit funny, can you help?”.

The Technical Support Person hat is very distinctive. It is bright yellow with a big badge on it that says “Happy to help!”. I hate wearing this hat, it just Isn’t Me.

Let me say this once, in the hope I don’t have to say it again: there are people who are paid to answer these questions, they are called Technical Support. Ask them, not me. I am too busy to figure out how you can print every other page of your document.

Secretarial Dogsbody Hat: worn 10% of the time

Quite a lot of the time I find myself doing menial tasks that could be easily done by a much more junior person than me. The Secretarial Dogsbody Hat, therefore, covers a whole range of scenarios; from checking spelling in web pages to resizing images. While this brain-light work is sometimes a welcome change from the heavy development brain-ache stuff, it’s more often than not an annoying distraction from more important work.

Still, at the moment, there isn’t anyone else available to wear this hat, so I’m stuck with it.

Designer Hat: Worn 10% of the time

The Designer Hat is also quite distinctive. It has a set of tools down the left hand side containing things like ‘Gradiated Fill’ and ‘Bezier Curve’ and sucks up memory like nothing else on earth. It’s not a natural fit for me, but very occasionally I get it a a good angle and someone says “That looks nice”. I’d like to fit inside the Designer Hat better, but most of the time it’s a case of just jamming it on and hoping it doesn’t fall off.

Marketer Hat: worn 5% of the time

The Marketer Hat is slightly wierd. On the ouside it is all smiles and flashy graphics and low, low prices. But on the inside it is hollow, built with bits of string and devoid of soul. The kind of Marketing Hat I’d like to wear is one that is big enough for a whole community to get inside, but those hats are few and far between in big business.

Business Development Person Hat: worn 5% of the time

I like the Business Development Person Hat. It’s a no-nonsense sort of hat, plain and strong, with several useful compartments. The problem is I don’t get to wear it very often because people think that I am only capable of wearing the Technical Support Person Hat. And the few times I do get to wear the Business Development Person Hat most people tend to think I dont know what I’m on about because I don’t have an MBA or wear expensive suits.

Community Facilitator Hat: worn 5% if the time

The Community Facilitator Hat is a fun hat to wear, even if it does mean hard work. It comes with a mop for cleaning up messes, and a megaphone for making announcements. Wearing this hat means you have some degree of power, but it definitely doesn’t mean you have some degree of respect. The Community Facilitator Hat is the rarest of hats to find a perfect fit of, but once you find the right hat it’s there for life.

What most business people don’t realise is that the Community Facilitator Hat, Business Development Person Hat and Marketer Hat could (and should be one and the same.