Not all performance improvements are created equal
By Julian Browne on June 28, 2007. Filed Under architecture, gadget
IT is always trying to make business processes run faster. In addition to innovating in new areas, making the things we already do more dynamic than the competition is a mainstay of competitive advantage. One way to look at speeding something up is to divide it into independent parts and run those in parallel. In greenfield IT with good design, this type of approach can work well, but not so much in legacy environments where process steps can meander through multiple heritage applications with widely differing characteristics. This is where Amdahl's Law starts to have an affect.
Amdahl's Law states when you "parallel up" parts of a business process, any step within that process which is sequential (or has a speed-limiting factor) and which takes up a fraction f of the overall process time, will prevent the whole process being speeded up by more than a factor of 1/f.
For example, if you distribute the processing of a 4-step order management process such that it can be performed in parallel for each customer, and each step takes one quarter of the total elapsed process time (i.e. f equals 0.25), but one step involves a legacy system that allows only sequential access, then you can never get more than 1/0.25 or a 4x speed improvement to the order management process, no matter how many processing nodes you add.
Amdahl's Law can help size systems initially (and prevent over sizing), maintain realistic expectations, and highlight areas where connection-pooling, batch processing or asynchronous communications might improve overall throughput. This simple calculator let's you try out scenarios where process steps might be improved, or not, at differing rates.
First, give your business process a name and define how many steps there are (max 20) in the process.