Wednesday, December 01, 2004
Good Design
(Note: This is a reprint from our December 2004 newsletter - this advice remains relevant today)
Ever wondered why Canberra’s traffic system works so well? Even at peak time you can travel from one end of the city to the other in 40 minutes.
And when you consider that Canberra has a severe case of low-density urban sprawl, it's an even more impressive feat.
If you asked the average cynical Australian why Canberra's traffic system works so well they would probably suggest that it's something to do with the fact that, as in all things Governmental, the streets are paved with gold. So this enhances electricity flow and makes the lights work better.
In truth, the reason Canberra’s traffic system works so well because it was part of a purpose-built system. A road system designed and built around the requirement of accommodating motor cars and not horses and buggies.
This means that, from inception, the planners designed for what would eventually become a moderately large city. The recent duplication of William Hovell Drive (the road that you take to Belconnen from Parkes Way) is an example of this.
Here, good planning meant that, when traffic flow along this road reached its capacity, the land required to improve the system was already zoned and available and no properties had been allowed to be built and thus none needed to be destroyed to allow the work to proceed. And when the land had been zoned for duplication, enough had been put aside to accommodate extra lanes on these motorways should they become congested again.
All this meant that a significant engineering feat was achieved with minimum disruption to the surrounding area, or to other roads and systems already in place. Furthermore, costs were lower because the engineers and workers didn't have to dig tunnels, demolish and remove buildings etc. All they had to do was build the new road.
This all goes to show that one of the greatest values of good design lies in the avoidance of big costs and complexities down the road (no pun intended).
Yet, imagine the same project being carried out in Sydney where buildings would need to be demolished, people relocated etc. Partly because of this, the modern Sydney solution to roading congestion is to underground motorways, and this is such an expensive option that most of these motorways are tollways. Design your system and plan for growth or your business is likely to outgrow its system. Sometimes these problems can be solved relatively easily.
The same principle that good design saves money applies to computers and networks. Design your system and plan for growth or your business is likely to outgrow its system. Sometimes these problems can be solved relatively easily. For example, if a server is not powerful enough to do the job anymore, you can simply replace it with a more powerful server. While this could be expensive, at least it is relatively straightforward.
But sometimes the problems are much more difficult to overcome – your business process is tied to an unusual piece of software for which there is not a lot of technical support. Worse still, the software isn’t able to scale past a handful of users.
In this case, possible replacements would need to be identified, tested, and a replacement selected. New hardware may be required also. You would need to migrate data held in one application into the new system etc. All the while trying to run your business in parallel to this process.
Another important component of design is the funding that is available to allow for future growth. In other words, do we fix the problem now (roll out a dual carriage motorway to a new suburb even though no one lives there yet) or simply make provision for future capacity requirements (just make sure there is enough land to accommodate the dual carriage motorway when it is needed).
An important skill in the art of design is to avoid placing the solution first. In other words, get to know the problem before you settle on the solution.
A pertinent metaphor for computer systems design is a re-arranged old saying. When it comes to system design: “Don’t put the horse before the cart”.
Imagine you asked someone which horse(s) you need to pull a wagon loaded with beer. Without asking you what you need to move, where, how quickly and how far you need to move it (identifying your requirements), the wise consultant tells you that you need a team of six thoroughbreds.
Since you suspect that thoroughbreds aren’t right for the job, you query this. The expert sniffs. “Thoroughbreds", he says haughtily, "are the best horses”.
He is, of course, quite correct. Thoroughbreds are the best horses - for certain purposes. But most of us know that draught horses, or even bullocks would be best for moving a load of this kind (depending on speed, of course).
But let’s imagine the problem is a little more complicated – the beer is needed for the Governor’s Birthday Party. The party is 45 kilometres away, and takes place in two days time. Also, let’s assume that if you don’t fulfill the contract to deliver the beer, you will probably be imprisoned or made to marry the Governor's daughter. Suddenly you have a vastly different problem!
Not being a horsey expert (don't ask us to place your bets for you!) we are not sure of the exact answer to this problem, but lets suggest that you need to break the beer cart into smaller loads pulled by lighter faster horses. Then, to cover 45 kilometres in two days you may also need fresh teams of horses waiting along the way. Thus, the solutions to a systems problem - to get the work done how, when, and where you need it - require you to fully understand the problem before you can come up with a design that gives you the solution.
Unfortunately, there are many in the computer industry like our horse salesman. Without actually listening to what the customer needs are, now and in the future, these individuals will push your towards a prepackaged solution.
So, be warned! If you don't get expert assistance with design you can end up with a speedy but weak thoroughbred when you really need a slow but strong Clydesdale or vice versa.
Admittedly, good design can seem expensive initially but, over time, a good design will more than repay your investment in it. A good design will give your business the flexibility it needs to meet its goals, and save you real MONEY because you will need fewer upgrades and, when an upgrade is needed, it will be a far less painful process.

