Is your organization looking to implement a web content management system (WCM)?
Implementing any WCM requires solid project management, a clear understanding of goals, and the appropriate allocation of resources. So where do you start? From a development standpoint, you start by building a team of developers who are equipped and ready to embrace the system and put it to work effectively and efficiently. But what skills do you need? What if you don’t have the right resources in-house? How can you keep the project on track?
Having worked on many WCM implementations and seeing what works and what doesn’t, here are my tips for preparing your development team, avoiding common implementation pitfalls, and following a few best practices that will set you on the path to success. Note that I will focus this analysis on mid- to large-scale WCM implementations, as those are the ones with which I’m most familiar, but many of the fundamentals apply to small deployments as well.
1) Ensure a Multi-Disciplinary Team of Developers
To ensure a successful WCM implementation, you’ll typically need to assemble a core team of developers with different skill sets, helmed by a lead developer. Essentially, you’ll need to structure a tiered team, with members who are dedicated to the project from start to finish. Here’s how that tiered hierarchy looks:
- Front-End or Display Tier: These are the folks with front-end development skills like HTML, CSS, JavaScript, etc. Plan to assign one or two front-end developers for the duration of the development phase, and possibly to assist during the design phase.
- Business Logic and Functionality Tier: This team is responsible for creating template building blocks (the programmatic action needed to ensure templates display properly). You’ll need one or two developers with these skills during the development phase. Of course, the specific skills will vary depending on both the content management platform as well as the delivery tier platform, but typically include C#, .NET assemblies, Java servlets, and/or JSP tag libraries, among others.
- Integration and Advanced Tier: This is where we get into the realms of advanced programming with tasks such as event system development, core web services development, and deployer extensions. Not all deployments will require this skill set. For example, a marketing website rarely demands this level of complexity in its WCM; however, sites with intricate sub-systems or legacy systems do. Plan on allocating one senior-level developer to this task, if necessary.
2) Secure the Right Skill Sets
If you’re planning to develop in-house, it’s not uncommon to encounter a skills gap between the developers you have on-staff and the development skills you’ll need for more advanced WCM implementations. There are several ways you can handle this, each approach has pros and cons:
- You can hire developers with specialized WCM skills. If you have the resources and the recruiting wherewithal, it can sometimes be ideal to bring in new development talent. The benefits are that you’ll have dedicated project resources assigned exclusively to your initiative. Risks include the potential that you will find talent hard to come by, especially for the most popular WCM platforms. It’s important to understand that by taking on the project yourself, you bear the entire risk—schedule, scope, and quality included.
- Another option is to outsource development to a vendor. Ideal for firms with limited or non-existent in-house WCM development talent, outsourcing development can be highly effective. Assuming you complete the requisite due diligence to select a solid partner, outsourcing development can help you mitigate and/or transfer significant project risk, while minimizing your long-term personnel costs. However, no matter the strength of the vendor’s development expertise, be wary of partners without proven track records of success in project management. In our experience, project management can be poorly handled by development-centric firms if they haven’t invested in building out a mature project management practice with the requisite tools.
- A third option is a hybrid approach, integrating a senior developer on your team with a vendor team. Think of it as a train-the-trainer model. It’s a process that we use often at Siteworx and it works well, with experiences being shared by osmosis and passed on to the in-house development team rapidly.
3) Be Realistic about Expectations
Working with stakeholders to understand their requirements will minimize complexity and ensure a good match with the organization’s actual needs. Set realistic expectations for the development phase and the resources that will support it. Factors to consider up-front include:
- What are the required features and functionalities and how should they be prioritized from a development perspective?
- What usability features will content authors, web managers, marketers, and business users require?
- What’s the development budget and drop-dead launch date?
4) Avoid Over-Planning and Put your Team to Work
Too much planning and not enough action can jeopardize the development team’s ability to deliver on time, driving costs higher, and often resulting in a WCM that simply fails to meet business needs. One way to tackle this problem is to put your development team to work with a phased approach to the WCM deployment. For example, when building a web site, start from the homepage and build out the site as if you’re navigating from there. So your phased approach might look like this:
Home > Navigation > Landing Pages > Main Supporting Pages > Supporting Pages (“About” page, etc.)
Following this path makes it easier for the development team to show progress and also builds excitement throughout the lifecycle of the project, as activity unfolds and the website takes shape. This is also a useful project flow for generating action, shifting attention to the importance of moving through the implementation rather than getting bogged down in a planning exercise.
From a resources standpoint, this approach requires a collaborative effort, so be prepared to act as a team. There’s no handing off to the next person on the development path—prototyping, front-end development, and system integration are all happening concurrently.
5) Get your Arms around Critical Tasks
Lastly, here are a few unwelcome surprises you should look out for that can significantly increase the level of effort required for a WCM project and negatively impact the quality of the end result:
- Content Audit and Migration Planning. I can’t over-emphasize the importance of IT and marketing teams working together closely on a proper content audit and migration plan. Content migration is one of the most important phases of a website redesign launch. Depending on the size of the existing site, the process of auditing, prioritizing, and developing content for your new site could take hundreds of man-hours. If done incorrectly or started too late, this phase can bring a project to a screeching halt. While information architecture, design, and development are important and required parts of a Web redesign project, an improperly planned content migration schedule could render your investments in previous phases useless.
- Personalization. It’s important to get a firm understanding of the personalization requirements. Are you planning to integrate third-party data or CRM to display different content based on the visitor’s IP address or past purchase history? Are you planning to capture browsing behaviors to build rich customer profiles? Business rules and goals will need to be analyzed, tested, and implemented—if personalization requirements are not determined early on, the level of effort will quickly escalate.
- Generating HTML. It may be tempting, but stay clear of using template building blocks to generate HTML. Presentation layer code should not exist in the business logic tier of the application. This is an ill-advised practice that makes maintenance of the system exceedingly difficult in the long run, as even small UI changes can potentially require rebuilding and re-deploying the application. Keep the markup, styles, and interaction model code separate from the core functional code.
- Release Management. Manage this process thoughtfully to avoid site outages. Specifically, make use of continuous integration and build automation tools such as Bamboo, Hudson, Cruise Control, Jenkins, or similar systems to mitigate the risks associated with code commits introducing conflicts with the baseline in the source repository. At Siteworx, we use the Atlassian suite of tools, including JIRA, which is central to our release management practices. Using an issue tracking tool like JIRA allows you to manage the scope of what is included in each build, and provides visibility a very granular level, along with providing a handy way to automate the creation of release notes.
Follow these five tips, and your team’s next WCM imlementation should be a little closer to pain-free—and your users will reap the rewards.
Buddha hand image courtesy of Shutterstock