Key #5: Egocentric Applications

January 31st, 2007 ericdes

I’ll develop the concept of egocentric applications in a future article. Here’s a summary:

  • Centricity: An egocentric application runs on a single computer. It uses data stored on the same computer.
  • Egoism: An egocentric application only exchanges data when forced in doing so.
  • Centralism: An egocentric application structures data its own way unless forced in doing otherwise.

From reading these 3 points, you’ve guessed such applications, due to their local point of view, must be easy to program. This is true and the main reason is they make full use of the rapid application develop (RAD) possibilities now included in most IDE’s.

It’s the reason why you should write egocentric applications whenever it’s possible.

Although not every application can be programmed in an egocentric scheme, you, as a software creator, should try not to fall into the traps of the hype and stick to that kind of programming.

Let’s review how you would write an accounting program (as an example) and see how it would fit into the scheme:

If you start thinking in an egocentric way, you’ll start builing a database located on the accountant’s computer and he’ll access it with the accounting program you’ve written for him. So far, so good.

If his boss wants to see the general ledger, you’ll set up an application on the boss’s computer with its own database holding the general ledgers. This application will retrieve the info from the accountant’s computer.

Now there’s an exterior accounting expert who must review the books, and he wants the data to be formatted his way. There again, no problem: You’ll set a database and a server application (egocentric too) on the company internet server. All 3 applications will communicate together.

You see from this example that each time you add a computer, you also add an application (which can be a duplicate). Server applications must also be added each time data must be shared.

You might object against the ‘plumbing’ for applications to communicate, but the routines involved are very similar from a project to another. A additional benefit is that data will be duplicated in many places and computers will be able to work in a disconnected way. Data integrity is controlled via the ‘plumbing’ routines.

2007-01-31 Add-on

I came accros Wrike, a wonderful online task and project service that actually uses the egocentric concept. Although it’s a collaborative tool over the internet you’ll manage your tasks from within a familiar Windows application, actually nothing less than your typical email client (the smart guys!). Plumbing with the remote server is done through email messages. Its extreme simplicity and concept centered on the individual user rather than on a centralized organization boosts collaboration to an even higher level. Not bad for a suppositively egocentric concept!

Entry Filed under: Keys to creating software (and making money...)

2 Comments Add your own

  • 1. Baku  |  November 18th, 2006 at 10:50 pm

    Thanks or article.

  • 2. Baku  |  July 18th, 2007 at 11:27 pm

    Great article! :-)

Leave a Comment

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed