7 May

A Look Back: CMS Requirements

May 7th, 2007 — 6:46 pm Dave

One of our AVPs will be out at our office on Wednesday to do a photoshoot in our office. Unfortunately it’s not about us and slate. They actually want to take some photos of our very photogenic whiteboard .

Of course my desk has been a pig sty and I’d be embarrassed to have all these people in here and think, you know, “Ewww, he’s a pig.” So this evening I’ve spent some time cleaning it up. Yup, an item knocked off my Basecamp to-do list!

One item that I found again is a white paper written by someone here at the University regarding a CMS. Also in the stack is the original “Preliminary Requirements List” we were given. That was when the project was still WebAdmin 2 and before it grew into slate. So lets review some of the 115 “requirements”:

  • Must have ColdFusion compatibility, should have PHP compatibility
  • Supports inheritance (???)
  • System independence (???)
  • Must have: malleable workflow support, support for multi-level workflow, workflow designer
  • Content archive scheduler
  • Automated PDF support
  • Standards compliant metadata binding
  • XML authoring support, a must have
  • Supports W3C XSL standards, a must have
  • Integrated template design tool

Yes, I’m cherry picking the weird requirements or those we’ll never implement. That being said, I’m surprised by a few things:

  • Even though I have a lot of minuses next to options (basically saying we couldn’t do an option) I’m shocked by just how naive I was. Workflow manager? Sure! Dublin Core support? What the heck!
  • The scope of the document is amazingly large. A large set of the requirements seem reasonable. Now I’m sure that the document was used to compare commercial products but, man, if anyone could deliver on it… I would have to believe their product would be terribly clunky and overly complicated.
  • I was also terribly naive on how long it would take to do anything. We got this doc in 2004 and it’s now 2007? I’ve definitely learned my lesson. I’m not perfect yet on predicting timetables but I’ve gotten a lot better. If someone says two weeks they mean four. And if they say a year? They mean a year in one language, a rewrite in a different language and a pre-1.0 framework and another year for seasoning.
  • On the positive side, over the last year we’ve actually hit on a lot of the requirements we put pluses next to. A couple I never thought we’d have in slate (e.g. WYSYWIG support). Out of 97 ‘pluses’ we have about 50. Workflow, serious role management and a number of things that I would consider server only (e.g. load balancing) are the areas where we don’t and, in the case of workflow, will never have pluses.

It’s always good to look back and see what you’ve learned. There are the general ideas like, “Simple is better,” or “Design for 80%.” We’ve picked up better programming practices like using Subversion and unit testing. I’ve learned to like programming again and, better yet, that while I can’t do everything myself there are a lot of talented people out there. You just have to find ‘em. Thanks, Chris!

But most importantly is the fact that we can create kick-ass products here in edu-land and we’re not somehow “inferior” to business. And if people think the current release of slate looks interesting wait until they see v0.4.0. It’s going to be really freaking good.

#1: Paul said on May 8 at 6:45 pm

Sorry for the OT comment… Is anyone from the Slate team going to RailsConf? If so, I’d like to get together and do some brain picking.

#2: Dave said on May 9 at 7:07 pm

Unfortunately we don’t have the budget to send folks off to RailsConf. I will be in Chicago at Stamats at the end of July though. Doubt you’ll be there but just in case ;)

Add comment

You are adding a new comment