The business of invention is odd. For doctors, mechanics and accountants the cost of most procedures is quantifiable and easily determined because there little if any invention required (at least you'd hope for that). Costs are based on standard procedures and established market prices. Invention - not so much.
When hiring a software developer to produce something new for the market, ordinary business rules fly off the rails. Risk get tossed between clients and vendors like a hot potato. Typically the client wins when the project is billed hourly. The developer wins when the project is a fixed quote. The irony is that neither party wants this. The client wants the developer to take all the risk (fixed quote), and the developer wants the client to take all the risk (billed hourly).
What is all boils down to is that clients have to be willing to pay for something they may or may not benefit from. They can't offset all the risks to the vendor. The vendor has to be confident enough to say NO to unreasonable requests. That is the only way a project can really work from start to finish. Invention is a business like no other but when somebody wants somebody else to invent something, best to treat it like a business, not a game in the school playground.
Rolling Your Own CMS
January 12, 2011
Spending countless unpaid days fixing websites built on open source CMS systems wiped out by system updates results in one of 2 outcomes - surrender or rebellion. I guess that is why every second web company I come across has rolled their own CMS.
Building your own CMS is an big adventure and learning experience, but beyond academia it is getting difficult to justify because free and almost free (<$1000) CMS systems are everywhere. They are getting better and starting to standardize.
Many new open source CMS systems are built on top of MVC frameworks. These MVC frameworks make code highly portable allowing code recycling from one system into another.
As someone who walked away from a 5 year investment in a CMS system that was not based on MVC I am now focused on the use of standard design patterns and HMVC (hierarchical model view controller) systems that give the flexibility needed to tailor client sites and applications to meet their needs without offering half-solutions.