Monday, February 25, 2008

TRIZ Theory:Theory of Inventive Problem Solving

I recently came across few articles about TRIZ theory and I found conceptual similarity with the design patterns approach in terms of solving a problem at a higher absrtaction level.

TRIZ is a methodology for innovative thinking using a systematic Process. It provides a set of principles and guidelines which everyone can learn and become part of the innovation process. One of the major advantages of using TRIZ is to find the ideal solutions of the problems while dealing with psychological inertia.

Psychological Inertia is the resistance in thinking a new way because of different kind of biases. TRIZ deals with it by using abstraction as a tool to define the problem in a generic fashion. TRIZ makes the creativity and innovation process predictable, reliable, and repeatable.

TRIZ methodology was founded by a Russian scientist Genrich AltShuller in 1946 after World War II. He examined the German patent databases after WWII and found some patterns in the type of problems people solved by their patents and the solutions proposed. He discovered that these patterns can be classified as generics or abstractions in TRIZ to solve problems.

The design approach is based on simplifying the problem by developing an Ideal Final Result with following charecteristics,
• Eliminates the deficiencies of the original system
• Preserve the advantage of the original system
• Does not make the system more complicated
• Does not introduce new disadvantage

Another intersting approach is the use of contradictions theory which solves problems by identifying contradictions and removing them from a system. A contradiction is a tradeoff in a situation where something good happens but also a bad thing happens consequently.

Overall I liked the concept of a systematic process of problem solving by simplifying the problem first, redefining the problem at a higher abstraction level and then mapping problem against a generic solutions catalog.

Coding Standards

If you have been developing code, I am sure you must have been engaged in discussions around following design and coding standards. These discussions usually go nowhere as everyone has their own opinion about different coding styles. If an agreement is reached, the first draft of the coding standard is usually extensive representing everyone's opinion and at the end hardly followed.
The simple approach that works is to get a good coding standard from the internet and customize it to your needs. There are several standards available like IDesign C#/.Net, WCF standards. I will also recommend the book Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries by Krzysztof Cwalina and Brad Abrams.

Monday, February 18, 2008

IT Risk:Turning Business Threats into Competitive Advantage Book Review

The book was recommended by a friend and was really worth every penny. The authors build the case to treat IT risks as business risks. They introduce a simple framework of 4A's; Availability, Access, Accuracy, and Agility to evaluate the IT risks. The framework is further supported by 3 disciplines as Fixining the Foundation, Risk Management Process, and Risk-Aware culture.

The book is simple to read and full of practical advices.