Variation & Abstraction

One of the focus areas of Six-Sigma, is the reduction of variation. Variation is the slightly different ways that people go about implementing a process. Reduction of variation ensures a consistent process deliverable, which then can be kept consistent while it is improved.
In Object-Oriented Design this is accomplished with Abstraction. An abstract bit of code will solve various problems in the same way.

The typical Data-Driven approach is to ...


add features by copy-and-change. They take a working piece of code and copy it to a new place. Then change small parts of it to provide the new features. In the short term, copy-and-change looks very productive.

Copy-and-change is often rewarded by naïve managers who are glad to see the new features appear quickly. In reality it leads to an explosion of variation.

Code review will reveal multiple ways to validate data, multiple ways of translating types, multiple ways of updating the Database, etc. To eliminate defects, each of these multiple ways need to be debugged. So the program is not likely to be defect free.

With Abstraction, we boil down various problems to their common core ingredients. And solve - one time - for that core. This provides easier extensibility and far fewer defects.

That's the power of Objects.

-- Mark Windholtz

Read more at our BLOG.