|
|||||
|
|
|||||
|
|
Chapter 2. Why Yet Another Framework?There is a maxim in the software business. Don't build your own framework. Use one that exists. This chapter discusses why, after alot of soul searching, we decided against this conventional wisdom to build yet another framework. 2.1. MOBIEIn 2001, our internal customer management, ecommerce, tracking, mailing list system was getting long in the tooth. As many had during the boom, we believed that accomodating runaway success was more important than flexbility. As such, this old system was a set of shared objects written in C++ and inserted into a custom scripting language core that we had created for speed. It was blazingly fast, but suffered from several key problems:
We hate doing work that cannot be leveraged. All this work building a system that ended up being only for internal use was wasted effort. Because of it's very specific install requirements and because it used an entirely custom development language, we were endlessly re-implementing features in PHP or Perl that we had long since implemented in C++ before. There had to be a better way so that we could develop something once and reuse it many times in many places. We had a vision for a replacement system which we would eventually call MOBIE. Our intent was that this new system would address all the shortcomings of the previous system. If we did it right we would be able to leverage this one codebase for all our work whether internal or external. From a functionality point of view, MOBIE would integrate:
We also envisioned that because each business is different, it would need to support:
It was an ambitious vision. Because we are a huge multi-national corporation of exactly 2 people, we desperately needed something that would let us significantly speed up the development process and reduce the amount of work. Otherwise, we would never get it done. Essentially we wanted to do more, in less time, install it in many places, re-use it everywhere, and manage local changes without too much work all the while having something that would be approachable by our less technically savvy partners. We considered developing MOBIE by hand. We considered using various existing frameworks. Nothing that we found would let us get this amount of work done with the few resources we had at our disposal. |
|