2012年8月8日

The 5S Rules in IT System Design



Here 5S Rules means: Simple, Solid, Strong, Safe, Smart.

Simple
Simple means: 1. the logic is easy to understand; 2. the architecture has weak coupling connections.

According to Modular Design methodology, generally during design, we firstly define the Domain of the system, and then define Modules within system, and then define Function Points within Module.

When wo do Top-Down design, it's easy to follow Simple Rule, but sometimes the Function grows slowly, it extends from a Function Point to a whole system, in that case, we need to reconstruct the system design, and that's painful.

Let's take an example of Manufacturing System.

There's a work station in the workshop, which needs a worker to do assemlby and quality check after that. So strictly speaking, this worker combins 2 roles: Operator and Quality-checker. But since it requires low skill level and long cycle time, so these 2 functions have been combined to 1 single person. Accordingly, the IT system writes 1 single Logic for that.

But as it requires shorter cycle time and higher efficiency, new worker has been recruted, so this workstaton has been extended to 2 workstations shared with 2 persions, 1 for assembly, 1 for quality checking. At that point, IT system will also be required to split the funtion into 2 Function Points.

To reduce development time, we might add some IF THEN ELSE judgement into original logic, and then different role executes different logic block. That means, load the whole logic first, then execute its sub-logic-block.

Another solution is, analyze the request following Simple Rule even during original design, to package Assembly & Quality-check logic into different Logic Block, and then combine the Logic Block during deployment. That means, 1 person will be assigned with 2 roles' logic before change, and 2 persons will be assigned with their own roles with their own Logic Blocks after change. The background codes only covers Logic Block, and frontground will display it according to role-logicblock configuration.

Solid
Solid means: The logic need to be solid and complete.

The completeness of business logic could help to reduce system exception, and increse system availability.

An effective method of executing Solid Rule is to run Black-box test, let users to write test cases, let users to do the acceptance test.

Because developing guys focus on nornal work flow mostly, but users notice more exceptional work flow, and the test for exceptional work flow helps to increase the completeness of business logic.

Strong
Strong means the system needs to be strong, can support multiply sessions, lots of users, huge data. The system needs to reduce down time throughout all kinds of methods.

As for hardware, we may use Cluster, Load Balance and other technology to increse system availability.

As for software, we may use Cache, Read-write seperation, User grouping, Redundancy, Archive, Database Partition, and other technology to reduce computing time.

One simple method of keeping strong is to find the Bottle Neck of the problem. For example, the bottle neck of one system is running one specific report, which may cause long time waiting if several persons are running it in the same time. The resolution is to increase hardware performance to reduce query time, or to optimize query SQL and Table struchture, or to dispatch report with user permission, such as running report in advance during free time.

Safe
Safe means to avoid service interruptions by all means.

The Black Swan Inccidents - unpredictable exceptional inccidents - are difficult to avoid, the resolution is to accumulate problem resolving methods, and deal with exceptions by alert, logging, notification, so the system can continue to serve.

It will be good to desing a configurable Exception-handling Module, which could take exceptions quickly without rewriting core codes.

Smart
Smart means to use smart methods.

Now we have a lot of open source codes, modules, methodology, and a lot of internet appplications might be introduced into Enterprise systems.

For example, Map-Reduce is known as Google's methodology, it has been used in lots of web sites, and actually we could use it to simplize logic blocks with a lot of IF THEN ELSE judgement.

没有评论: