All in the <head> – Ponderings and code by Drew McLellan –

Web Applications are Easy

Software is just one way to make complex business logic and rules easy for Joe User to apply to every day tasks. By taking all the complex choices and decisions required to step through an involved process and getting the computer to deal with them instead of the user (stroke consumer stroke employee) you not only reduce the mental capacity required for the user to grok the process, but you also reduce the margin for error dramatically.

Web applications further simplify the process by putting an easy interface between the user and the logic. I use easy to mean the following

Non complex – in most cases it’s insulting to assume that your users are dim-witted when the reality is often far from this. One of the keys to simplicity is in identifying that the user may not being coming from the same place as you. They probably don’t understand the process they are undergoing in the same depth as you do, and so the interface needs to be non-complex so that they can quickly get to grips with it. Whilst it may be insulting to tell the user you’ve dumbed down the interface for them, I’ve never heard anyone complain that an interface is too easy to understand.

Convenient – web applications are convenient to use, as the only requirement on the user is that they have some sort of browser and a web connection. No special software needs installing, and they user doesn’t even have to be at their own computer to get access to the software they need to use.

This is all from the user’s point of view. The ‘easy’ nature of web applications is further enhanced when considered from the developer’s point of view.

Quick – compared with traditional software development, web applications are quick and inexpensive to deploy. The inherent modular nature of a web app makes it straight-forward to develop and deploy incrementally, so you can get something up and running very quickly. Functionality can then been added as necessary.

Maintainable – one of the primary principals of maintainability is centralisation, or the concept that if something needs changing it only has to be changed in once place. Traditional software development supports this on a code level, but not at the point of deployment. If you fix a bug in a piece of desktop software, the new build has to be distributed to each user and in turn they have to install the fix on their machine. Web applications offer the ultimate in centralisation – make a change and not only is it changed throughout your (well written!) code, but it is immediately changed for every single user because they’re all running off the same copy of the code. A knock-on effect of this is that those users are now easier to support, and you have control over the version of the app they’re running.

Of course, when it comes down to the complexity of your business logic, that’s going to be pretty much the same whether traditional software or web. But as someone who likes to make life as easy as possible, web applications are attractive in that they allow the complex stuff to be complex, yet make everything else easy. What’s not to like?