Shadow frames the light

A fresh author's journey to actualization.

Friday, September 08, 2006

What makes a good business application good?

DDD - Domain driven design, OOP, SOA, AOP - Aspect oriented programming, it goes on and on.

What is it with programmers? Why must they always try to pigeon hole what they do?

I was reading an article, Bob Cringely's on http://www.pbs.org/c... and thinking that there are just a few concepts which make a good application good.

Here's the pitch, picture this...
One day you go to lunch across town with a friend. You don't pay too much attention to where you're going - you're just chatting with your friend and going for the ride.

The next week you want to go to the same restaurant by yourself this time. Now you can't for the life of you remember where exactly that restaurant is. But you get in your car and start driving in the general direction. As you travel you begin to recall generally where you're headed. The context of the drive - the street names and buildings - keep you focused as you incrementally expand your conscienceness to include what you barely remember about the way to this restaurant. You get there of course but not because you remembered the exact way - but because along the way your brain used the context of your locale to help you navigate.

A familiar song comes on the radio. You begin to sing silently to it. Now there is no way you could have remembered the words to that song out of hand by just thinking of it. But somehow out of your past you remember the words. How? Context. Your brain needs context to assist it in locating pertinent information.

The way the brain is structured with nodes of linked neurons which form new connections and drop others off could be considered a loosely coupled information database. Clusters of linked neurons are not really actively connected until the marble of thought rolls around and drops into that particular slot.

So how does this relate to software applications? Let's consider the only really successful application that I think has ever been built - Google. Say you want to find information about the Northern Lights. You enter a few words in Google and page through a few lists of search hits and eventually find a site that speaks about the origination of the mystical lights.
A month later you want to review the information you found on the Lights. Do you recall the web site you found? Of course not. Such exact information is buried or perhaps was never recorded in your mind. But, you do recall the contextual scenario you were in when you initially found the site. You probably even remember the key words you used to find the site. Even if you don't recall all of your search terms as you re-initiate your search the required search words come back to you as you enter the various other sites you browse through in your search for the lost site. Eventually, due mainly to a contextual localization, you find the site. Finding it again reinforces the various contexts of the path you took to get there and probably if you search again in a year you could relocate the site (provided it's still there).

Context.

Context is the key. Good applications should then leverage the brains reliance upon context to provide for an enjoyable and productive experience. All knowledge application should include search. Search is the ultimate contextual tool. Once search items are found, say customers or vendors or inventory materials or whatever a worker must manage, once found that item should then be fitted back into an application based contextual map. That is, having located the selected "3/4 inch threaded copper pipe fitting" then, in a tree view perhaps, load and show the fitting in a branching view which locates it beneath fittings, beneath piping, beneath plumbing, beneath home construction. I.e.:

Home Construction
-Plumbing
--Piping
---Fittings
---- 3/4 inch threaded copper fitting

In this way the user has used their natural methods of inductive contextual thought processes to locate an item of inquiry and then had the application locate that item back into the logical business oriented scheme. This logical remapping then allows the user to add extra context to the item's personalization in addition to focusing the user on the business at hand. Which is to update the pricing on this item.

So applications should always take into account the way the mind works by leveraging the associative bonding which exists between concepts and thoughts.

More on this later

0 Comments:

Post a Comment

<< Home