28 November 2006
Islands of automation
By Andrew Clifford
We use the phrase "islands of automation" to describe systems that are not connected. We all know that islands of automation are a bad thing. Or are they?
I first came across the phrase years ago when people were selling me data warehouses. Our existing systems were islands of automation, we had no coherent view across them, and we needed a new database to bring them together (or so the salesman said). I have heard it used to promote component-based design, that does away with old-fashioned silo thinking. I am sure I have used it to argue for the purchase of middleware. Everybody knows that islands of automation are a bad thing, and anything that overcomes them must be good.
But I think we might have got this wrong. Perhaps islands of automation are exactly what we need.
There are many things about islands that make them a good analogy for effective systems design.
- Identity and clear boundaries. Islands have names. There is no doubt where islands start and end. Islands are clearly separated.
- Clear role. Small islands have well-defined economies - fishing, tourism, possibly farming. It is easy to understand the purpose of the island.
- Clearly defined communication. Movements in and out of the island are very controlled -- air services, sea services, and so on. You can not just wander into an island and borrow stuff without asking.
- Self-sufficiency. Island communities have to cope with periods of being cut off from the mainland. They have to provide for all their basic needs.
- Clear security. It is hard to get to the island except through the defined communication links. On a small island, there is a clear distinction between trusted permanent inhabitants and "outsiders" such as holiday makers. Roles are simple and clear, and intruders are easy to spot.
There is one obvious drawback to islands. They can be isolated, with insufficient communication to the rest of the world. In our system-as-island analogy, we need to tackle this weakness by building a rich set of communications to and from the islands. We need "well-connected islands of automation".
Some of the alternatives to islands of automation have many more drawbacks.
- Shipwreck of automation. To avoid isolation, you can break down system structure, and release functionality into a sea of reusable components. This become unmanageable, with business capabilities scattered unowned all over the place.
- Gridlock of automation. Another approach to avoid isolation is to draw up a grand central plan, showing all the parts and their proper interconnections. But we are not that clever. Our plans do not survive the onslaught of unexpected business change, such as mergers and acquisitions. Our attempts to centralise build high dependencies between systems. We end up in design gridlock, as multiple systems need to be changed to achieve even the simplest of business changes.
We need well-defined, purposeful, self-sufficient systems, with rich and clear connections to others. Given the alternatives, well-connected islands of automation are a good analogy for how we should approach systems design.
Next: Real programmers don't test
To subscribe to the newlsetter, simply send an email to firstname.lastname@example.org.
We use the term "metadata-driven" to describe IT solutions in which functionality is defined in data. Taking this to the extreme can provide unparalleled levels of speed, simplicity and versatility.
Read full newsletter
System governance helps you implement high-quality systems, manage
existing systems proactively, and improve failing systems.
Try it for free!
Find out more