YCombinator’s Hacker News recently linked to an interesting post entitled “What every computer science major should know”.
I think it’s a pretty good list, but like others I have seen, it has a hole around the knowledge domain of Content Management, Content Modeling, and Information Architecture.
There are some core tools that every software engineer needs in their toolbox: a programming language, a scripting language, a database, source control, build management, bug tracking, project management skills, and more. If you aren’t already aware of the tools that exist to solve these common problems, you will end up re-inventing the wheel. All too often, software engineers and systems architects reinvent the wheel around content management.
I recognize that I am biased. When I started working for Alfresco two years ago, I thought content management was used for building web sites. It took me a while to realize that every time I built a file store with a flat-file index, every time I stuck collaborative content in Subversion and then struggled with how to get my teammates to update it, and every time I tried to grep Word Documents, I was dealing with content management. These aren’t web-based problems necessarily, and they certainly aren’t easily solved with a database. Like most engineers, I muddled through. I accepted my poor solutions as “how things are done”, and moved on to more (at the time) interesting problems.
Thank goodness for content management. Someone finds these problems interesting enough to worry about them night and day. These people have built some great solutions that are both easy to deploy and free. While working at Alfresco, I have come to enjoy solving content management problems. I think every engineer’s life will be easier if they are considering a good content management tool at least as often as they consider setting up a database.
I recently changed my role at Alfresco. Instead of being a “Solutions Engineer” (our title for Sales Engineers), I am now more involved with helping our Community interact and grow (I never thought I would be joining a Marketing Department, but here I am). As part of that role, I am helping to build awareness of Alfresco and content management in general.
Since this is my blog, I can shamelessly plug the Alfresco QuickTake video I did about “5 Tools that Alfresco Provides Developers”. When I watch the video, I only see my mistakes in presentation style. But my goal with that video was to describe some of the ways Alfresco can assist developers with generic content management problems, and thereby save people from re-inventing that particular wheel. Hopefully it helps you understand why a good content management tool will help you wax strong in all three virtues of a programmer.
As part of my new role, I also have been able to participate in planning our annual Developer’s Conference. I highly recommend you consider attending. either this year or at some point in the future; you will be surprised how many problems that confront you can be solved with an open source tool like Alfresco.
If you are on the fence, (or even if you aren’t), you should check out this decision matrix. Really—check it out; you will thank me later.
So put this tool in your toolbox. It’s free, it’s effective, and then you can get back to solving new problems.