Sunday, January 28, 2007

Digging deeper into CMS requirements (#2: Management Requirements)

This is the second post about digging deeper into content management requirements. See also

I meant to write some more and original stuff that's floating around inside my head these days, but the weekend was spent in a winter resort with work (we tried kiting, snow rafting, ruled the after-ski and had a great time otherwise).

I'm a bit worn out at the moment, so here's a quick paste from what I've written on CMS requirements earlier, detailing out the parts I've put in the category management requirements.

Management Requirements

The person or persons who will be spending the most time on the web-site are no doubt the ones responsible for managing the online content, be it a company clerk, a webmaster or a chief information/content/knowledge officer. If this user does not find the CMS practical and usable, the content will quickly stagnate, and site traffic drop.

Creation

For the authors, the most important functionality of the CMS is the composition of articles. This is where content is assembled. Advanced composition features a WYSIWIG-editor, spell checking, insertion of images and hyperlinks and the ability to create tables, all this in an efficient and user-friendly fashion (not like the way Blogger's editor is agitating me right now with its crappy undo-functionality).

Publishing

Publishing is the process of taking the content from the author and making it available online. It should also be possible to later edit published pages, as well as taking them off line, hiding them from public view without deleting them. The last point is actually part of the workflow requirement presented below.

Workflow

This is a feature of WCMS featuring several authors and perhaps an editorial staff. A web-page or document has status which perhaps only certain individuals are authorized to change, for example the editor accepting an article for publishing. Time-limits are also part of the workflow. One page can be scheduled to go on- or off line at a given point in time.

Administration

When web-site structure grows complex, there appears a need to administer the larger amounts of content, and which users are privileged to do which actions. User, role or group access rights must be managed. The administration is generally what the content manager is doing besides creating content.


I also considered including access control, as many content administrators are obsessed with micro-managing who gets to see what (more typical situation on an intranet), but I'll blog more on what I think about that another day.

Wednesday, January 24, 2007

Content Management in Finnish

I don't know much Finnish, but appearantly I'm being referred to from Finnish Wikipedia. I'm guessing it has something to do with Content Management Saunas (they're linking to this post).

Monday, January 22, 2007

Blogging against Commons's Logging

I had Commons Logging pretty far up my ass last year, giving us problems with classloading in WebSphere and Axis. And now I'm in another project where I have to deal with it. It hasn't given me much fuss in this project that I know of (yet), but I don't need more excuses before lending my support to Johannes' Commons Logging notice.

Sunday, January 21, 2007

Digging deeper into CMS requirements (#1: Technical Requirements)

I recently posted about the fabled CMS requirements, providing my own categorization without any further elaboration on what the different req's imply.

Today I'm gonna fill in the holes on the first category, Technical Requirements:

Technical requirements are the obligatory basic needs of the environment, hardware and software hosting and maintaining the WCMS.

The successful deployment of a WCMS depends on many information infrastructural circumstances and politics like management priority, user acceptance and technical feasibility. As will be declared in a later post, the main requirement of a WCMS is extensibility, and the one who has to make use of this requirement is indeed the developer responsible for deploying and running the WCMS in-house of the intended organization or corporation.

The hardware requirements and costs have not been a main issue in my experiences with maintaining CMS. I therefore disregarded the still very crucial requirements of scalability, availability and security. When professionally auditing WCMS solutions these requirements must be considered.

The WCMS may rise or fall by the outcome of these developer tasks.

Deployment

Developers are responsible for installing the WCMS, not only the first time, but they are also the ones performing redeployment when upgrades are necessary or patches are released from the vendor. If the process is cumbersome, this will happen with a low frequency and lead to a compromised and outdated WCMS. If it is not easy to migrate old content from the old installation to a newer one, the developer will quickly tire of the process and opt to management for choice of a different WCMS,

Integration

Infrastructural services such as e-mail, user directories and existing services should often be interconnected into the WCMS, and this will perhaps be the largest task the WCMS developer is responsible for, depending on requirements and existing information systems within the organization. Larger ECM solutions often benefit from utilizing strategies of service-oriented architecture (SOA), making it easier to integrate new functionality as web-services into the system.

Templates

Default templates and skins are bound for change after acquiring the system. Company logo and themes must be applied, and the CSS-styles applied by the WCMS may not be of the same patterns as the company's graphical profile.

This is not as much a feature as it is a necessity. A company is often judged by the outlook and consistency of its web-site. While the web designers no longer need to author the content of web-sites, they still need full control of the design. Templates allow designing once, and then applying the same design to whole parts of the site in one action.

Older web design tools have created an inclination towards not using mesh templates, where the template is separated into header, footer, left panel, main column, right column, and so on. More modern web design tools have support for working on such composite page design.

Backup

A WCMS is a complex system, and since this type of software is a fairly modern family of information systems, it is prone to experience bugs and crashes where data loss is a risk. Many technicians would argue that the responsibility of making information backup lies outside the WCMS, but there is still a requirement for the content repository to be backup-able in an automated fashion. A home grown file system or smaller database repository may lack support for such tasks.

Monitoring

Monitoring consists of automatically computing statistics and numbers on server usage and display them to the developer in a readable format. For a web-site this includes keeping track of incoming requests from visitors. If site traffic is not monitored it becomes harder to evaluate the returns of the WCMS, and it will quickly loose its favor from the management which weighs the cost of sustaining against these returns.

Logging

Logs are the server's output on relevant activities and processes. If logging is not done properly, it becomes hard to trace the source of errors and crashes.

Most web-servers have tools for monitoring the number of visitors. Traffic can be measured in number of “visits” or “hits”, although number of hits can give a very misleading understanding of how much traffic the web-site is experiencing. Number of visits and average visit length is the correct way to report traffic.



So there you have'em. My next post under this tag will explain the next category: The functionality that provides the management parts of the system, like content creation, publishing, workflow and administration. Stay tuned!

Friday, January 19, 2007

CMS on Ruby on Rails!

I've managed to get involved with the local Oslo Interactive Ruby-community (IRB) (citycita group here). I've been to a good handful of Ruby-presentations the last year (JavaZone, XP-meetup, as well as IRB and JavaBin), and I still haven't gotten around to really fiddle with Ruby *shame*.

Anyhow, yesterday I was at another Ruby meetup, and as these meetups are getting increasingly more popular, I told Marius I'd ask around to see if we could use our office for the next meetup.

As you can see, the theme for the next meetup will be hacking on IRB's "CMS". It is currently running on a Wordpress-like engine called Mephisto, which is written in Ruby of course.

I've always been a big proponent of using blog-engines as your CMS since you probably don't need much else than what today's blog can deliver, so this will be an interesting opportunity to prove that point. It will also be interesting to see whether I'll have any idea about what the guys are actually coding, which should be possible given Ruby's rumoured learnability (otherwise I'll just sit there reading up on the basics).

Did you perhaps hear about the kid who learned Ruby and developed a fully-fledged CMS in two weeks? Can't find the url right now, but cleary RoR has potential.

Anyhow, sign up and RSVP on the citycita thingie. We've initially got room for 17 people, which should be enough as there were 12 people at the previous meetup.

Sunday, January 14, 2007

New Year's resolution: Blog more! (the boss says so)

As I wrote in my previous post I've been through my yearly evaluation at work. In short it was a 4-hour talk with my team-leader where we went through different aspects of my performance, such as development abilities, people skills, and so on.

Now such an evaluation might sound like a bit of a harsh Americanized performance indicator that decides my pay-check, but I appreciated getting honest feedback and ideas on areas where I can improve. Note that one important prerequisite for doing this sort of evaluation is having a team-leader you trust, not being the same person as the one who finally decides your pay-check ;)

After the evaluation of last year's achievements, we set out to decide this year's goals. We arrived at me reading quite a few books, doing some internal as well as external presentations, delivering some projects and participating on a couple of courses. All these goals were formalized with concrete objectives, and will be easy to measure throughout the year.

Now the final and (to this blog atleast) most interesting goal was to increase the readership of this blog. Quadruple it, to be exact. The indicator we are using is visits per week, as measured by Google Analytics. Based on statistics since August last year, my weekly visit count has been averaging on 30. By the end of the year this should have increased to 200! (for some reason we thought the weekly visit count was 50)

I have written about how to use the blog for online research before, and even if I'm not doing research anymore, the same rules still apply. Here's how I intend to increase my readership:

Blog about stuff that people want to read
I've blogged on various themes the last years like CMS, Portals, Blogging, Java, Knowledge Management and other stuff (will get better at using tags, promise). The subject of open-source content management systems seems to be the subject that attracts the largest crowd of readers, so I'll keep writing about that. As my work seems to have gone back into that direction in my newest project, it will be easier to collect experiences on the field again.

Produce trackbacks
Read blogs, leave comments. My main problem here is that my CMS blogroll swells with new posts faster than a Gartner hype gives your manager twitches in his forehead. So I'm gonna have to streamline it a bit and focus more on those blogs rather than reading all the Java-related ones.

Blog regularly
Every sunday, I tell you!

So go ahead and hit that subscribe-button now! It might result in me getting a (bigger) raise next year :)

Tuesday, January 09, 2007

How productive am I?

Many months ago I enjoyed reading Matt Raible's Tips for Productivity and Happiness at Work. I re-stumbled over it now reading his 2006 review. Tomorrow I'm doing my first yearly evaluation (even though I've only worked there for 6 months). Sorta wish I had been better at noting/blogging what I've been doing for the last year, but it can quickly be summed up in

  • finishing thesis
  • enjoying the summer
  • started new job

Doesn't look to impressive, but I can't be bothered with the details right now. Now what I wanna do is a cross-checking of how I do on Matt's tips:

Write stuff down
Roger that! Writing as much on the internal wiki as ever!

Quit reading e-mail and blogs.
Ermm.. I quit reading blogs, so I'm halfway there. I don't too much mail anyway.

Work on open source late at night, with a beer on your desk.
Errhhmm.. Have really been falling behind on my open-source efforts..

Work disconnected.
Nope.

Listen to music while you work.
I always do.

Work long hours on Monday and Tuesday.
And on Wednesday. And on Thursday. And on Friday. Plus sometimes on Sunday.

Avoid meetings at all costs.
Done pretty well here. Can't remember more than 5-10 major meetings through the autumn.

Sleep.
Right. During weekends.

Work on something you're passionate about.
I wouldn't wanna work with anything else.

If you're not happy at work, quit.
We'll see how the evaluation goes :)

Always try to be a contractor before a full-time employee.
That's what I'm doing.

Don't work at a company with a two-week vacation policy.
I don't. We have a three-week vacation policy.

Don't travel if you have kids.
I do neither.

Ask for more responsibility.
Well, just got personal responsibility for a smaller project, so that's going well.

Most things can be learned by reading.
Sure. I started reading three different pieces of techie litterature.

That lands me at score of.. about 12/15.

Looking forward to Appfuse 2.0, by the way!