David Heinemeier Hansson on abstraction:
The greater the versatility, the higher the abstraction, the less useful for the specifics.
That's an important metaphysical principle in general, and it's exactly the point I made at work on Friday regarding the system we're working on. Can't go "too meta" or you start not saying anything.
Incidentally, this is why I question whether these really expensive "enterprise" CRM systems or CMSs are actually a win for the organization. Whenever a company buys one of these systems, they're not really saving themselves from having to write such a system, they're buying an environment within which to program what they need. So, it's really not a case of "build vs buy", but rather "build vs buy and build".
Ultimately with these systems you wind up with something that's far more complex than your business needs alone dictate, and you have to work within the worldview of the company selling you the software rather than the worldview dictated by your business. Because that's the case, vendors make their systems as general as possible, but that necessarily brings added complexity. So, rather than building a simple system that grows as your business needs dictate, you continually require highly paid consultants (or if you're big enough, full time experts) to program around the system you just paid hundreds of thousands for. I question whether this is a net win.
Feel free to post a comment below. Please see my comment policy.
Formatting Rules (No HTML):