Bob ...Thanks for the recent KJR on architecture ("Seven warning signs of bad architecture," 6/5/2006).I’d appreciate a more concrete explanation of why Kludges are bad (as a contingency were I to run into an ugly enterprise architect that chews gum)! I suspect that the reason might be very similar to the “too many interfacesâ€? problem and you didn’t want to repeat it; in any event I need something non-IT Bob …Thanks for the recent KJR on architecture (“Seven warning signs of bad architecture,” 6/5/2006).I’d appreciate a more concrete explanation of why Kludges are bad (as a contingency were I to run into an ugly enterprise architect that chews gum)! I suspect that the reason might be very similar to the “too many interfacesâ€? problem and you didn’t want to repeat it; in any event I need something non-IT executives can sink their teeth into. Thanks!– BlueprinterDear Blueprinter … Let’s start with the nature of a kludge (or “kluge”; there are those who prefer to spell the word as it’s pronounced; others delight that English spelling is, itself, a kludge): It’s a Rube Goldberg-ish piece of work whose sole virtue is that it does work, more or less.Kludges lead to two major problems. The first is that they’re generally fragile, because they have too many moving parts. Change an input, fiddle with the data design of a core application and the kludge breaks.The second problem is that they generally perform poorly, so scaling is a problem. I’ll illustrate the point by making up an example – an interface between two incompatible business applications. What I need to do is to extract data from one, reformat it, and pipe it into the second.The first application only knows how to print reports, not how to output comma-delimited data (it’s an old application). So I tell it to print the relevant report to a file.Next, I open MS Word and record a macro that understands how to recognize and delete the page and column header text, a second macro that knows how to change the spaces that separate columns into commas, and a third that knows how to insert an opening and closing quotation mark around text fields. I also build an autoexecute macro so my data center can launch MS Word with a parameter and have it open the file, run the macros, and close MS Word again. But I’m not done: Some of the data needs to be transformed in ways Word can’t handle as easily as Excel – for example, parsing a name field into first and last names, or matching the first and second system’s vendor numbers using a cross-reference table. So I next set up an Excel spreadsheet that can bring in the file, apply the relevant formulas, convert the formulas to values, and write out a comma delimited file for the second application to read and process.I think you can see just how easy it would be to break this kludge. The slightest change to either of the main systems would do it. And in the meantime, if we’re talking about data in any kind of volume, the length of time required to process the data translation is likely to be far longer than is desirable.Or, use plumbing as a metaphor. If a pipe starts to leak, the first thing to do is to do whatever it takes to stop the leak. Use duct tape, use sheet metal and hose clamps, use whatever … just stop the leak, because it doesn’t take very much water to do serious damage, and small leaks turn into big leaks pretty quickly. That doesn’t mean that once you’ve stopped the leak that you’re done. It means you now have the time to schedule maintenance to replace the section of pipe that leaked. If you don’t, the patch won’t hold. It isn’t supposed to – it’s a patch.– Bob Technology Industry