For a recent presentation I gave reasons why you should use a CMS for an information publishing system rather than creating your own from scratch.
What are the forces that affect the decision on how you will present information to users?
How long are you prepared to wait between deciding that an article should be published and the user actually seeing it? e.g when publishing a newspaper there is today's news which cannot be delayed, but also feature articles that could appear any time within the next few weeks.
Does the content need to be approved by an editorial team, or are individuals empowered to say anything they like? On an intranet it would be a lot freer than a corporate web site.
A system should allow for easy templating and reuse of component layouts so that (and here's one of my set-in-stone rules) any screen that can be viewed by an end user must be styled and laid out by a graphic designer. It is not a techies job to manage the presentation, but it is a techies job to make sure that the power is in the hands of the designers, e.g. by creating a tagging system that enables designers to control html contents
If you are creating an easy to use publishing system make sure that you aren't just creating an easy to spam system. Consider security concerns early.
Any information publishing system (package or home made) will only solve 80% of the requirements. Success will guarantee that the system needs to be extended and enhanced. Choosing or making an extensible system will future-proof it and also can enable more people to provide enhancements.
In the end, a system is only as good as the people who operate it. Just how many people do you have, what are there skills, where are the bottlenecks? If you create your own system, then there will be a heavy reliance on technical staff. Do you have enough to cope with demand for changes?
An information publishing system consists of these components in some form or another. The end product is a combination of them all and different systems will put more emphasis on the importance of different components.
Balance human resources by putting the components into the right hands
*Content & Site Structure = Community *Timeliness. Words matter, they must not be delayed by technical concerns. *Digital Assets & Page Layout = Design *Presentation. Any output seen by an end user must be created by a Graphic Designer. *Code = Web Development *Accuracy, Security, Extensibility
The components of a publishing system should be able to be owned by the appropriate group of people. I believe that in creating a system you should be empowering people and1 not restricting them. You don't know what they are going to do with the system yet so should make sure that you are providing tools that are of appropriate power to the right people. There will often be a trade-off with complexity e.g. content editors want to be able to enter raw text quickly and easily whereas designers want full control over what goes where and are prepared to learn tag-based coding systems if it gives them that power.
There are many ways to solve the problem. All have pros and cons. Static html, file includes, database driven site, multilanguage CMS, separate CMSs, web framework, CMS engine.
Using an available CMS can give flexibility, structure, and security for less effort
However, there are 100's to choose from and you could get tied in to the wrong metaphor, programming language or templating engine
Nail the provision of standard written information and you can extend into the clever stuff
Just mention "re-inventing the wheel" to any manager and they will start to reconsider creating their own system from scratch. A CMS system will have solved a lot of the problems you are trying to solve, plus a lot more that you haven't encountered yet. However, any CMS that you select will have it's own quirks and foibles so you will be trading one type of pain for another.