A Rewrite too Far
An interesting Magento question that shows some of the problems with a super flexible OO system. In summation, a client developer tried to add a simple rewrite which added a
product collection filter. However, in a second
part of the system, a core team client developer used the filters on the product collection to build a
query into another table. This other table didn’t have a
column, so there was an error for the first client developer.
Here’s what’s really tricky about this — who was right? Two client developers were working with interacting systems code in incompatible ways — on a level playing field I’d say the first client developer is “the right” one, since they created a simple rewrite and there’s an expectation it should work — the second client developer’s code is overly complex, and doesn’t do what it’s supposed to.
However, because that second client developer is a core team member, their code is, essentially, systems levels code, and needs to be treated as such. When scenarios like these arrise, it’s what drives some developers away from Magento. There’s no way someone without a few years of experience with Magento would be able to track these problems down themselves in a reasonable amount of time.
Of course, that’s where open source code and systems like Stack Exchange come in. If a developer is willing to learn, willing to stretch themselves a little bit, and can ask a concise questions, they can usually get their problem solved by someone on another continent.