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?




Comments
BTW – Everytime you post i smile – did you every watch that film Happy Gilmore “Its all in the hips…” I can’t help but say over and over “Its all in the head…” :)
Keep up the good work!
Oh and please take this the right way.. you might want to add a clear:both; to your footer as the right column is overflowing >>> although i bet it doesn’t now i’ve posted
So do smart client apps: there’s one copy of the exe, dynamically retrieved (along with any dependencies) via HTTP. And you can implement drag and drop to-from the desktop in a smart client. Try doing that in a browser. It’s something users demand, and nigh impossible to do via browser.
I’m all for simplicity. Browser UI is appropriate for some tasks, but a giant nightmare for others.
I guess they don’t get the point across. SkunkLink is a nice, simple model, with intuitive
markup to go with it, but as a model plus markup, it doesn’t say anything about what apps
might do with the markup. (“When a link contains multiple arcs with the same prominence, the
arcs in question are intended as alternatives for selection by the end user. As with the
arc-type, implementations are free to interpret the prominence in any suitable manner.”)