MVC - A Personal History
I shared this story with a potential employer a couple weeks ago, who apparently was unimpressed. Notwithstanding, it's all true. Literary criticism might be the next best step.
In 2001, Arthur Andersen Business Consulting went out of business. And I lost the best job I ever had. Clearly Enron was a significant factor, but importantly, AABC ran out of money to fund their war with Andersen Consulting/Accenture. Almost immediately, I was contacted by a friend/colleague, Jeff: He was launching a startup and needed an IT Director. Essentially, my job was to develop the technology his company would resell.
My salary lasted as long as it took to set up a web server. Jeff was an instinctive entrepeneur. After receiving so many inquiries from web developers, he redefined his business model. He bought a nice suit, leased an expensive car, wiggled his way into the right offices, and got contracts to build websites. Then he resold those contracts and pocketed a 80-90% profit. In those days, a web developer was anyone who owned a copy of Dreamweaver. And everyone expected to become a millionaire: Web pages cost $50-$100 apiece. Revisions were similarly priced. Developers expected $25,000 to build out a retail website with 500 products. And revisions usually doubled the quoted contract. After a couple years, the business model was becoming unsustainable.
There were already lots of database backed CMS's, I'd homebrewed one myself. The economy was shit, I had a sick kid, and I managed to convince Jeff to rehire me and put me in charge of production. Afterwards, designers only got paid for designing (crazy huh?) instead of charging $60-$80 per hour for cutting and pasting content. But the resulting collaboration platform had to accomodate quite bit of hostility.
A few years after this startup failed trying to float too many juggling balls, I came accross the term MVC, and it immediately resonated- because I understood the challenge of a collaboration between designers (now called UI specialists), content aggregators, and programmers, each satisfying perfectly arbitrary requirements. Morever, the nature of the web-interface product sets very high expectations for malleability. In practice, a change request should only go to one of the 3 teams without affecting the other two.
I rolled my solution out 8 years ago, and still host a dozen or so legacy implementations.
Now I'm basically out of the website business. But as time allows, I'm applying new technologies to accomodate this fundamental objective that still seems relevant.
Am I the only skeptic? Any solution can be arbitrarily defined in terms of three haphazardly assigned designations- a fact not lost on marketers and hypesters. I'd prefer to convince potential employers that MVC is an objective and philosophy that needs to be applied in practice, not just a bullet point on a spec sheet.
Any other thoughts?