try another color:
try another fontsize: 60% 70% 80% 90%
tom boone dot com
Excavating the grey area between pop culture and reality...

CMS

Lessons Learned: Hiring an Outside Contractor for Your Library's CMS Implementation

A growing number of libraries, law and otherwise, are migrating their websites to Content Management Systems (CMS). In many cases, due to limited resources, the implementation is performed in-house by librarians, IT staff or even interns. When the money is available, however, many library administrators opt to hire outside contractors to perform the migration. A significant reason for this is the perception that contractors will have better CMS and design skills than in-house staff, thereby widening the technological possibilities for the new website. Having recently worked on a CMS implementation with an outside contractor, I'd like to share the 6 most important lessons learned from that experience.

Lesson 1 - Choose Your CMS First
When selecting a CMS, be certain that it is a system your organization can support. If your contractor is a Joomla! whiz, but no one on your staff has the slightest clue how to use it, your new site will never improve beyond the initial implementation. Similarly, well-funded libraries may be tempted to buy the latest greatest commercial solution and have the vendor itself perform the implementation. But beware: commercial systems often use a proprietary scripting language for extending CMS functionality, meaning the system will be practically unchangeable unless someone on your staff knows how to code with that proprietary language. Unlike PHP or other commonly used languages, the likelihood of finding a qualified librarian who also knows that language is slim at best. Instead, considerable time and resources will have to be spent to bring the new hire up to speed.

This doesn't mean that you're completely limited by your staff's skill level. There are often plenty of options for supporting a CMS. There are even firms out there who offer service contracts for open source systems, meaning you don't have to limit your choices to closed, proprietary systems to ensure the availability of 24/7 technical support. Better still, support contracts for an open-source CMS will likely cost you significantly less than the licensing and service fees associated with a commercial CMS. Further, even if no one on your staff knows an applicable scripting language, there will be significantly more incentive for them to learn a transferable skill like PHP than a specialized proprietary scripting language.

Lesson 2 - Choose Your Contractor Second
Only after you determine the CMS that best fits your needs should you select a contractor, and then be sure to pick a contractor that specializes in the CMS you chose. When you select a contractor first, you run the risk of having them pressure you into selecting the CMS that they are most experienced with, even if its functionality runs contrary to your specific needs. Similarly, if you hire a contractor based on general reputation, but who has little to no experience with your CMS, there's a good chance you'll be their guinea pig for working with a new platform. In the end, you'll receive a flawed implementation that only scratches the surface of the system's potential. Whether you choose Drupal, Community Server or RedDot, you should be able to find reputable contractors specializing in your CMS.

In addition, make sure your contractor understands that a library website isn't just about marketing the physical structure to potential visitors. Web designers usually have a firm grasp on the marketing functions of a website, making sure to include phone numbers, driving directions and lots of pretty pictures. What they don't always grasp are the service aspects of a library website. Patrons arrive at library websites not just for information about the library's building, but instead expect active content: online catalogs, research guides, and links to research databases and full-text articles. A good contractor for a library CMS implementation needs to have a full understanding of both of these purposes.

Lesson 3 - Make Your Contractor Accountable for Delays
In any project involving a contractor, it is imperative to include deadlines in the contract, and include pre-defined financial penalties for any failure to meet them. Otherwise, there is zero incentive for your contractor to complete your project within your desired time-frame. Instead, he will probably take on other projects simultaneously and prioritize those that do define deadlines much higher. This doesn't just mean setting a final deadline for the entire project, but also setting them for earlier milestones, such as design, content migration, and testing. This not only ensures timely progress but also that all necessary steps in an earlier phase of the project are completed before work begins on the next phase. As a result there is a lower danger that your contractor will, say, forget to add several pages worth of content because he was simultaneously designing and testing.

Lesson 4 - Require Detailed Documentation
Not only is there a strong likelihood that many of your content providers will have never used a CMS before, but there's probably a good chance they've never worked on web content at all. Given this likelihood, it's essential that your contractor provide detailed user documentation, both for content providers and system administrators.

Often, contractors will offer only instructional sessions with users. This option is flawed for a number of reasons. First, there is never a guarantee that you will be able to schedule a training session that accommodates all users' schedules. One or more people will likely miss the session. Second, these sessions are completely useless to future hires. If you think your staff will remain intact for the life of your CMS, you're wrong. Someone new will eventually arrive who won't be able to rely on a training session your contractor held two years ago.

Now, this doesn't mean training sessions are a bad idea. They can be very helpful, particularly if multiple sessions are held, allowing users time in between to use the system on their own. By the time that next session rolls around, they may finally "get" your CMS and have a whole new round of questions for the contractor. But even then it is dangerous to rely solely upon such training. By requiring full site documentation, you ensure that there will be training materials specifically designed for your website available long after your contractor (and your staff) have moved onto other jobs.

Lesson 5 - Hound Your Contractor for Updates
There are many good contractors out there who provide timely, detailed progress reports to clients. But there are also many who don't. If you encounter the latter type, then you must be prepared to devote a portion of every day to push for updates. When you arrive at the office each morning, pick up the phone and call. You might get voicemail more often than the contractor himself, but at least you are establishing a pattern of calling every single day. Then your contractor will know he needs to have something to report on a daily basis. If you do get voicemail, follow it up with an email. And in both cases, ask specific questions that require a response. If you ask for vague updates, your contractor can easily ignore your message. When you ask about specific issues related to the site, he'll know he has to respond before you'll be satisfied.

There is often a temptation to use conference calls to facilitate all communication about the project, thus ensuring that all involved parties are present for the conversations. Unfortunately, these can be time consuming to schedule, it's often difficult to find a time that suits most people. This can lead to delays and breaks in the lines of communication. Even if you opt to hold regular conference calls, do not fall into a pattern of holding all issues related to the project until the next call. Instead, pick up the phone immediately. You can still add it to the next conference call's agenda, but add it as a follow up item (i.e., "What progress have you made on the issue I raised three days ago?"). When a conference call is complete, write up all the topics discussed and all the decisions that were made during the call. Then email the summary to the contractor. Never assume he wrote these things down and is already systematically implementing everything you talked about.

Lesson 6 - Make Yourself an Active Participant
When hiring a contractor, it is very easy to let them do all the work. Given the steep price you're probably paying for their services, that's a smart inclination. But that doesn't mean you can't be actively engaged in the technical aspects of the implementation, and given that you will still be the website point person long after the contractor is gone, this is almost mandatory.

As your contractor builds your site, make sure you have access to the backend of the CMS so you can see how your specific needs are being implemented. When you don't understand something, ask questions. When something you specifically requested isn't being implemented the way you envisioned, speak up. You may fear becoming a nuisance to your contractor, and you very well might be, but considering that he is being paid to work for you, you're probably entitled to be a little annoying.

This level of involvement isn't just about holding your contractor accountable. It's about holding yourself accountable. You have a responsibility to understand your library's CMS site because your entire staff will look to you for leadership on the project long after your contractor is gone. If you don't know how the site works, that probably means no one in your organization does. Also, don't assume that just because you understand the selected CMS that you will automatically understand the site your contractor built. Every contractor has unique preferences and methods, and there might be ten different ways to accomplish the same task in the same CMS. You need to understand how your site accomplishes it.

When Dreamweaver is a better option than CMS, it's probably time to call it a day

A few minutes ago, while trying to help a colleague create a web page in a proprietary Content Management System, I finally had to advise her to compose her complicated page of tabular data in Dreamweaver and then paste the resulting HTML code into the CMS text editor. And I feel very, very dirty.

So why would I make such a bizarre recommendation? Well, for starters, unless you add a border or background color to a table's cells, the CMS text editor doesn't outline the cells at all. So trying to insert your cursor into the row and column you want to edit is a bit like trying to pick a door on "Let's Make a Deal."

Truth be told, the way such complex pages should work in a CMS-driven site is that there should be a template in place so that all a user had to do is enter her data into a form containing only plain text fields. Upon hitting the "Submit" button, the data record she just entered should automatically be displayed, along with all other records of the same type, in a table based on the template we already created. The content provider never has to worry about formatting the table once it's been defined in the template.

Hmmm... that sounds a lot like CCK, Views and Themes in Drupal.

Is the proprietary CMS capable of doing the same thing? Probably. Does anybody have a clue how to do it? Nope. Do I already know how to do it in Drupal? You bet.

By the way, have I mentioned that tom boone dot com is powered with Drupal? Ah, home sweet home.

Syndicate content