Wednesday, February 24, 2010

SAAS vs. thick client

The other day my work computer crashed. I took me quite a while to get up to speed. The IT department ofcourse provides a standard image they can put on my computer and get me part of the way. The programs I depend on and the antivirus provided are not good friends so I chose to install the computer on my own.

So... I'm down to installing the operating system, installing different office products to read documents and some development tools. A lot of time is spend finding the programs i need, and finding licence keys that match. After a days I'm still missing some programs that I will need later. Its a long and slow proccess...

Why does commercial software need to be so troublesome to install?.

If I could do with open source tools (thats not an option) i'm sure I could have set up an ubuntu with all the packages in an hour or so. I wouldn't have to find and download the software i need and I wouldn't have the trouble of typing in keys and trying to activate them and find out why they didn't activate properly.

For my personal stuff I have moved everything to google apps. This means that once I have a browser up and running I'm good to go. This and the fact that I don't have to think about backups etc. is a sure winner for me!

Saturday, February 20, 2010

Predictability is a key feature

You can run a rally car on ice. You can travel under water. You can create a fast program based on slow components.

This is all due to predictability. While racing on ice you know more or less what friction you will get and what it will take to change direction. You will know how far you need to see ahead to be able to stay on track. If that criteria is met you can go as fast as possible.

On the oter hand, if you are racing on a mixed surface, you have to go slower. While you have traction you have to drive with a big margin to be able to control your skid if you suddently loose traction. While you lack traction you have to drive slower because if you skid around the corners and reach a high friction area you will end up in the ditch. Given the choice I would definately choose the high predictablity over max traction.

If you know all the parameters of a software project up front you are pretty safe. If you know all the parameters up front, you will also be the first in history to do so. Are you so sure of your requiremetns that you can choose components that fulfill your requirements but are not flexible enought to handle requirement changes? Are you so sure of your performance demands that you  can choose components that perform well but don't scale if your demands change?

Flexibility is often a an underrated feature. Its hard to put in sales brochures. Its hard to tell customers that the extra cost is to support their requirements in the future that they are not aware of yet. Often it has to do with how mature an IT project organisation you are dealing with. The more mature it is, the greater the chance of it expecting changes in the future and the more flexibility it wants from its IT systems. My experience is that these changes will amerge before the end of the project and the flexibility will end up saving them money before the project has ended.

Tuesday, February 16, 2010

Whats your projects focus?

My diagram illustrates the focus in a project. The blue on the left hand side is the business and the red on the right is the techonolgy focus on a project. The focus on any technology project will go from somewhere on the left towards the right.

In the 'A' section focus is on the business processes. Its The Why of the project. This is where you have to justify the business processes. Are the business processes really business processes or are they in fact based on limitations in old systems. If there are any mayor improvements to the busines process, this is the place to discover them.

In the 'B' section business and technology are equally important. Its The How of the project. This is where you figure out the technical specifications for the project. There might be some adjustments to the business to make it feasible.

In 'C' its mostly about technology. Its The Where of the project. Here there is little you can do to the business. You just have to implement the stuff that has been decided.

A mistake I have seen on a lot of projects is that they focus on technology. They skip to "The How" or "The Where". They haven't realized that the real benefit from technology comes when you also change the way you operate and the way you think. The reason for skipping "The Why" is often that they claim its a technology project and they already know about their business. Some people are actually offended if you suggest improvements to the way they work. Its very sad to be on such a project.

Many projects I have worked on are based on contracts that include a lot of requirements. If they have not recieved guidance in making these requirements, they have missed out on a lot of possible proccess improvements. If your project is all in the C section the benefits from the project will be minimal, and the project will be more or less pointless.

My recommendation is to keep the focus as far to the left as human possible. Thats where the sweet honey is :)

The diagram can also be applied to technical documentation or books. They will and should start by outlining what it is all about. As you proceed through the text it will focus more and more on the technology. For me I find the first half of a technical book easier to read than the last half.

Sunday, February 07, 2010

HTML5 to the resque!

I have previously written that I was disappointed with silverlight as a platform for rich user interfaces in a browser. It probably has a lot of nice features, but as a web technology it's not really important if it is not platform independant.

I went to see a demonstration of HTML5 the other day. I don't think there is much you can do in Silverlight or Flash that you can't do in HTML5. Silverlight and Flash are bound to fade out and their domain is going to be taken over by HTML5.

Internet Explorer is currently the only mayor browser not supporting HTML5. You can however install a plugin that will allow HTML5 to be displayed correctly.