Joel Spolsky has an excellent piece on Leaky Abstractions, if you haven't read it, go read it now.
First, one of the great things about agile methods is the focus on early deployment of real user capabilities. If anything will surface the leaky abstractions in the toolset, early and often testing is key.
My favorite bits:
Abstractions fail. Sometimes a little, sometimes a lot. There's leakage. Things go wrong. It happens all over the place when you have abstractions.
All products/frameworks/tools make assumptions and those assumptions get driven up into the abstractions upon which the products/frameworks/tools are based. We cannot predict the system failures that will occur from any arbitrary assembly of software parts, because it is nearly impossible to understand how the abstractions will leak, particularly between the piece parts.
Why do leaky abstractions matter in web services land? Remember that standards and tools can only shield you a bit from the harsh unabstracted world. And remember that a good deal of the glue-ware in existence is specifically designed to be the bandage for leaky abstractions that are bleeding all over the place:).
9:21:03 AM
|