Hacking Models — The Dark Side
January 24, 2007 § Leave a comment
Humans have a penchance for abuse and misuse, perhaps more so than any other creature on this planet (when was the last time we saw tamarins misuse trees… okay I admit I don’t watch the Nature Channel that much!). With every technology and tooling at our disposal, the urge to abuse it becomes much more greater.
Code hacking is an all too familiar syndrome plaguing the software development industry. We muck around in a heap of code that doesn’t perform as required and apply source-level hot-wiring to meet immediate needs. What’s obviously required here is a second inspection, stepping back to re-evaluate the underlying design. What’s obviously the norm is coding in a tiny tweak (with the Twilight Zone theme playing in the background), recompiling, and observing behavior. If the system doesn’t blow up in our faces, that’s one more plus for this obviously unhealthy kamikaze behavior. That’s a lot of “obvious” statements!
Flash-forward to the future. We are now dealing with a higher level of abstraction when working with model compilers. With great power comes great responsiblity and blah blah blah. If Bjarne Stroustroup referred to C++ as dangerously powerful, MDD is obviously one of those glowing devices with hideously devastating potential.
Devastating — if misused, that is.
Wow! Modeling is great. If I just drag this class here, and this relationship there, and this domain there…and compile and execute…hmm… this behavior is not what I had in mind… so let’s try it again.
This is not “Magpie Motel” (that was fun, let’s do it again)! Advances in modeling tooling can never replace the drudge work that is Analysis. Incomplete and inadequate attention to the non-modeling tasks will always result in poorly understood requirements, and hence nightmarish models.
Remember. With great power comes… and yes, we don’t need to be bit by an arachnid to realize that in MDD!
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.5 License.