All your clients should go on a diet

During the last few months my graduate supervisor and I have been doing a lot of demos to the major canadian telecommunications companies. In the demos we show different devices interacting with each other (which is something people love at demos). One of the things we get asked fairly often is: “How long did it take to build each one of these applications?” and our usual answer is about less than a day. This usually shocks people.

How can this be done? Simple, we use thin clients and the cloud (or some robust and scalable servers).  By having outsourced the client logic to the cloud it is possible to build thin clients.  The thin clients just do a few data calls (or get their data pushed into them) to exchange information.

Of course, this requires extra effort at front when building the server logic but it saves A LOT of work later.

Just as a note, in all cases many client side optimizations should not be overlooked. As an example, client side caching is a good thing when possible.

Measuring Quality

Many developers forget that in our industry almost everything we do is a service. We are performing work for others at some level. In many cases there will errors in the service provided and then it is when we can measure the quality of the service.

In my opinion, it is an error to try to rate quality of a service as a relation between bugs and release version (this measures how effective are processes). I like to measure quality as a fixed bugs, release version and days to release correlation. This way, we can measure how good is the service by measuring how fast the bugs can be fixed (and properly fixed).

I am not a fan of the even if version 1 sucks, ship it anyway theory but it has some good points. Most of the clients that love my work are happy because any bugs that appeared on the systems have been fixed fast (and remain fixed).

Even google services go down but we all keep using them because google fixes them right away. How can one measure how good is a service? It can be measured by how fast it can respond to change.