27 March, 2013

Be Industrial

If you want to make large things (systems) you have to start from small things (parts). A part is a simple process that takes in some input, do some work on that input and produces some output.

A part is like a mathematical function, a machine, a worker etc. The work can be transformation, selection, observation, consumption etc.

Some parts take input directly from environment, others from other parts of the system.

Parts can be of different types. Parts of each type can have to be made, run, repaired and replaced in a different way requiring different skills.

Parts are the doers like the action-words the verbs in a sentence.

A system is nothing but interacting parts. The interaction is simply outputs of some parts becoming inputs of other parts.

Feed back loops make systems complicated. A feed back loop is when outputs of higher level parts become inputs of lower level parts. Higher level parts are those whose input is output of lower level parts. So if a normal flow is A -> B then a feed back loop would be B -> A. Feed back loops do exist in nature such as in some chemical reactions, in climate etc.

When you make a system, try to avoid feedback loops. That is to say avoid multiple flows.

Also reduce central parts. These are the parts that combine outputs of other parts and send its own output forward. Its like a sentry on the gate, materials have to pass through it. Its ok to have several small central units but having one large system-wide central unit is complicated, though cannot be avoided in some systems such as an aircraft in which the central unit is the engine. However the single-point of failure can still be avoided by making multiple units acting together to make the central unit. In case of engine these are the individual cylinders. If one cylinder fails the others can still be operational. In politics this is the central committee (national assembly, central advisory committee etc). In business it can be the board of directors. In CPUs it can be the individual ALUs. Parallelism is needed for this to work properly. A tree-like structure such as file system is not appropriate for achieving parallelism, a forest-like system such as having multiple drive is appropriate for this purpose because of having multiple roots.

Case in point: Wings in an air plane. Both wings are single-point of failure because if any one of them is damaged, the entire plane is doomed. A better engineering solution is to have multiple wings at each side so the plane as a whole has multiple pairs of wings.

Case in point: Wheels in an automobile. No single-point of failure. Loss of any of the wheels do not stop the car.

Case in point: Single point of exit from a room. Single-point of failure. If the door is not functioning due to lock, rubble etc then the people trapped inside could suffocate and very easily die. Solution is to have some back door or back windows which could be opened. Fire exits in buildings and cinemas are examples of avoiding single-point of failures.

Case in point: A webpage without javascript. Such webpages requires available internet connection and web server for every task because nothing happens at client side. Solution is to use javascript so that some of the work for example validating user input, sorting columns, calculating totals etc could be done at client side.

Case in point: Farming without raising animals.

 Have as little interactions between parts as there can be. Less interaction, less complexity, less cost, more scalability.

Combining parts into components into systems is less complicated and requires less effort than making parts. More than half the effort should be used in making parts. Improvements come often at start and one should not be afraid of implementing those improvements by upgrading parts but a few words of caution: do not upgrade when already in war unless you have a large number of parts to spare or victory is highly unlikely using current parts. Frequent upgrades of parts during war time disturbs the whole system and can easily lose an almost won war. War or peace, whenever upgrade is done, keep the old parts while moving in streams of new parts, replace the old parts only when the load is sufficiently carried by the new parts.

No comments:

Post a Comment