Are Web Technologies The Right Solution For Your Internal Admin System?

Probably Not

Web App Screen
It certainly seems as if everybody is developing their internal business applications using browsers, web technologies and The Cloud but are they?

If you are a software provider then offering your product across the Internet is a massive positive for you as you remove the need to send out updates to your clients, support these updates and ensure that they are applied.

I Am Not Sold On The Cloud & Browser Apps For Core Business Systems

I am going to set out my stool as someone who firmly believes that "The Cloud" and Browser Apps are probably the wrong way to go when developing internal business systems.
Browser based applications are superficially very attractive, they remove the need to release new versions to every desktop and then find that they don't work because something else needs updating which in turn means that something else also needs an update.

Having your database servers in The Cloud means that nobody is needed to manage them, hardware and software costs can be paid monthly and there will be automatic backups and replacement of failed hardware.

The problem is that browser based applications are usually much slower and harder to use, take longer to develop and usually make a lot more database calls than the equivalent desktop app.

This is because a desktop application has a much greater capacity to "remember things" even after you have closed the screen that was displaying them.

The desktop app also has the full power of a programming language and its libraries to manipulate this data whereas the browser is limited to Javascript and its libraries.

All of this usually means that significant browser based apps need a very highly specified set of database and web servers to power them.

Often the hoped for savings in hardware and server costs never appear, indeed costs often start to spiral out of control as everything in The Cloud is chargeable and there is virtually no competition.

Your servers may be in The Cloud but there will still be management tasks that are your responsibility not Microsoft/Amazons' etc so you will still need someone to manage them, although this would be a lesser role so it would probably have to be merged with an existing role. Oh and a backup for him when he is on holiday.

This may come as a surprise as most people don't have the faintest idea what their cloud costs will be as calculating them upfront is pretty tricky.

Once you have committed to Azure, Amazon Web Services etc moving all or just part of your IT function elsewhere becomes very tricky.

Using a Cloud database server to manage the corporate data can also affect other areas of the business such as working with some data locally and some in The Cloud which can be very tricky.

Or what happens if you fancy setting up an analysis or simulation that is massively resource intensive? Hosted in house you can run a process that utilises a 100% CPU and Disc Read/Write capacity for 8 hours overnight no problem, in the cloud that is going to be prohibitively expensive.



Browser & The Cloud Or Desktop & Local?

Web App Screen
A database doesn't know if it is in The Cloud or on a server under your desk.

Data Stored In The Cloud Means That I Need A Browser App,
Data Stored Locally Means That I Need A Desktop App,
Nope!

Once you move beyond trivial admin systems where your data is stored and what type of application you use to access it are not tied together in any way at all, zip, nadda, zilch, not a sausage and realising this is important when designing your new system.
In fact for most non trivial business admin applications you could move the data between Cloud Storage and Local Storage by changing just one line of code and almost no user would notice.

public static String strConnectionStringLocal = "Server=localhost; Database=CoreBusinessData; integrated security = true;";
public static String strConnectionStringCloud = "Server=somewhere.co.uk; Database=CoreBusinessData; integrated security = false;user id = user name; password=user password; ";
This is because The Cloud sort of doesn't exist, it is a marketing description for outsourcing your IT hardware and software at server level, but the technology is the same as you would use internally The Cloud just has a lot more of it.

It is easy to believe that if your data is in The Cloud then you must access it via a browser and if your data is held within your own business then you use a desktop application.

This view is completely wrong there is no reason at all not to use a browser app when you manage the database in house, or a desktop application when the data is on Azure or Amazon.

I don't even mean theoretically it is possible, I mean that it is completely free choice.

In many, possibly most businesses what is really needed is a combination, some data access via a browser so a sales rep can do something simple in the field and complex high speed data entry tasks via a desktop app in the office.



MS Access Data On My Laptop.

SELECT CloudTable.CustomerName,
CloudTable.CustomerTelNo
FROM CloudTable
JOIN LocalTable
ON CloudTable.CustomerIdentifier = LocalTable.CustomerIdentifier
WHERE LocalTable.MailshotID = "Yesterdays"
Has anyone mentioned that if you have data such as an MS Access database locally and the main business database in the cloud you may have problems?

Querying Cloud and Local Data, Is It Difficult?

Way back in the 1980s the Personal Computer rose and the mainframe declined in many, many organisations and the main reason for this was the freedom that it gave the user.

It took control away from an IT department with expensive inflexible technology and allowed individuals and departments to process data.

Have a look around your business and see just how much data is held by individuals and departments in Excel spreadsheets and Access databases, it is quite frightening if you need it all to be correct.

Clearly the PC hasn't gone away but has The Cloud reintroduced many of the inflexibilities of the mainframe?

A common idea is that we will move our core enterprise level data into the cloud and do other processing locally, the best of both worlds. This sounds really sensible until you get deep down into the details.

Imagine that the core customer data is in a database in The Cloud and Joe in marketing has a local database to manage mailshots.

To the left is an imaginary query to get the telephone number for everyone in yesterday's mailshot, something that is so mainstream that it can't possibly be an issue, yet it can be hugely problematic for an insoluble reason.



Plucked Off The Internet

Javascript libraries
Try and find a significant web site that doesn't use third parties libraries.

I want to be very clear that this section is not an attack on third party Javascript libraries but a very brief introduction for non technical managers who may not know what they are, what they do and how prevalent they are.

Do You Even Know Who Wrote The Code For Your System?

Basically the browser is so badly suited to developing applications that to even stand a chance you need a massive library of functions that enhance Javascript and make working with different browsers reliable.

As virtually everyone has the same problems it is attractive to use libraries written by people dedicated to the task. They are reliable, readily available and often free.

Of course you could spend months or years writing you own and then updating them because the new version of browser XYZ has a new quirk and the Save button no longer appears on the client update screen when it is the 29th of Feb.

Even if the project managers realise that their system use libraries of code pulled from various internet projects, they often don't fully grasp the significance of this.

They are told that this is the modern industry standard and this reuse is great because it means that lots of people have tested these libraries.

It sounds great, core parts of your system developed for free, but there are risks
  • You rely on code given to you for free which you have no control over, do I need to say anymore?

  • You can be forced to design your systems around the way these libraries work and this may be a long way away from what you would do otherwise.

  • These libraries may be abandoned by their developers, then you have to take on their maintenance if you can or else rewrite large chunks of your system. One very likely reason for the abandonment is that the library no longer works well with how web sites are expected to work today.

  • If you use the library in a way that its developers didn't imagine then you may find that it either stops working completely or works poorly after an upgrade. This might be fine if you know that you are such a user but you probably won't.

  • When you want to recruit staff, nobody wants to work with your out of date libraries as it makes them unemployable in the future.
And if you think I am carrying things a bit too far, lookup "jQuery" and "Is jquery obsolete" and how many websites are built around it.


Web Technologies And Staff Recruitment.

Web App Screen
How much weight should you give to recruitment over choosing the right technology?

Programming Staff Want To Use Web Tech Because That Is Where The Best Jobs Are.

Web technologies have been flavour of the month for quite a few years now, new technologies came along and programmers want to use this new tech, which was is then replaced with more new technologies rendering the old new tech obsolete.

This has always been the case but the lifespan of a lot of the new web tech is quite short and it is often based on theoretical crazes rather than the real world.

IT departments seemed to have become obsessed with the latest tech and actually making IT do something useful got lost in writing Model View Controllers and Interfaces for classes that are never going to be expanded, inherited from or replaced.

It's almost as if when using skilled programmers businesses application development peaked in terms of developer efficiency, application ease of use and low cost but still Enterprise Level when Win XP and Office 97 were mainstream.

For those who knew; SQL Server backends, or equivalent, and MS Access/VBA/Unbound form front ends, although there is a strong case for preferring VB over VBA.

Using VBA it was possible, though not always wise for departmental experts, to develop their own mini data viewers in MS Access allowing them to decide that it was worth their time to do so as it made doing their jobs easier or better.

Of course no toolset is perfect and sometime it was useful to drop into C++ to create COM objects that could be used to perform high speed calculations or to make efficient use of limited resources.

However C/C++ skills have now almost disappeared from the business systems development environment but C#/VB and .Net/WinForms desktop applications still have all the characteristics that made them attractive pre-web.

Ease of use, high speed operation for those who don't use the mouse much, tight integration with other applications, less waiting around for web servers to process requests better handled on the desktop.




Other Interesting Pages On Some Of My Sites.
Buy A Ghost
Picture of a cat with yellow star Buy A Ghost is a light hearted source of one page ghost stories aimed at pubs and restaurants as talking points.

Print them off and put them on the tables or walls and you have an instant talking point.

Aimed at regulars who have run out of things to say or new groups or couples as an ice-breaker.
Weight Loss Calculator
Screen shot of weight loss calculator Weight Loss Calculator Tries to simulate the body and report the effects of food and exercise in periods as short as 15 minutes.

This level of detail highlights the effects of a run, bike ride or chocolate bar.

For those who are new to exercise, weight fluctuation due to glycogen usage is made much clearer.
Initial Programming Language
IPL Screen shot Initial Programming Language possibly the easiest way to learn programming on a Windows computer.

Designed to mimic the simplicity of the 1980s home computers where you could get started in minutes...

...but still powerful enough to do pretty complex things.
Please note that these links do not use any tracking cookies or similar technology.