Here are some recommendations on how you can choose a DITA Component Content Management System (DITA CCMS) that meets your needs.
Use scenarios to define your requirements to the DITA CCMS
The essential part in choosing the DITA CMS that can solve your needs is a proper definition of your requirements. Requirements is not the same as features. Features alone don’t allow you to understand whether a CMS fits your needs. For example, let’s say you are looking for a possibility to manage translations. If you ask different vendors whether they support branching, chances are all of them will say you “yes, we do”. However, it’s not necessarily that the way the DITA CMS manages translations fits your specific needs.
The question that you really need to ask them is how exactly they provide a solution for your need. But you need to clearly understand your problem in the first place and prioritize the needs. A very effective way to do so is to use scenarios.
A scenario is a story written in plain English that describes (preferably, in a step-by-step manner) how your work process looks like. Ideally, you should end up with a set of scenarios with each scenario representing a specific requirement.
Writing scenarios is an iterative process. On each iteration, you ask yourself questions and add more details. For example, let’s say you are looking for a way to manage translations. The first draft of the scenario you wrote looks like this:
“After Joann, the technical writer, finished working on the content, she sends the content to the translation agency. When the translation agency finished the translation, it sends the translated content to Joann. Joann uploads the translated content to the DITA CMS. She wants to see to which languages the content has been already translated and translations in which languages are still missing.“
Then you begin to analyze this scenario and ask yourself a series of questions, like:
Is it possible that Joann would need to keep working on the content while it’s being translated?
If yes, how the translation she will get can be synchronized with the source because by the time she’ll get the translation, her source will be changed?
Is it possible that after the translation is received and uploaded to the DITA CMS, Joann will want to update content in the source language?
When the content is sent to the translation agency, should anyone, like the product manager, be notified?
After you figured out answers on these questions, you rewrite the scenario, and now it looks like this:
“After Joann, the technical writer, finished working on the content, she sends the content to the translation agency. The product manager receives a notification that the content is now being translated. Because it’s very possible that Joann will keep working on the content while it’s being translated, she creates a snapshot of the content before sending it for translation. When the translation agency finished the translation, it sends the translated content to Joann. Joann uploads the translated content to the DITA CMS. She can specify whether this is the translation of the snapshot she created earlier (that is of the content as it was at the moment when it was sent for translation) or of the content as it is now.
If Joann changes content in the source language after uploading the translation, she should receive a special notification about the need to update the relevant translations.
She also wants to see to which languages the content has been already translated and translations in which languages are still missing.“
You will likely have further questions now. After you answered them, you rewrite the scenario again. You do it several times until all the details are covered.
So now you know that managing translations actually includes several requirements:
Sending a notification to relevant people
Creating a snapshot and uploading the translation to a specific snapshot or current version of the content
Generating a notification when content that has translations was changed
Viewing the translation status
Once you are done, you can send these requirements along with scenarios to different vendors and ask them how exactly they support each scenario. We recommend sending the scenarios as well so that the vendor can get the background of the requirement and suggest the most effective way to support it.
You may find that even if a vendor doesn’t have a feature as you called it, their DITA CMS can still perfectly support your scenario using other means. Then you will need to estimate if these means are effective enough for you.
Remember that there is no such thing as an ideal product
In any product, you’ll find that some features work better than the others. In rare cases, you can find a product that will be a 100% perfect match. So you need to prioritize what is a must-have, what you are ready to give up, and when you can agree to a workaround if the system doesn’t support your scenario in a way that you would expect.
When evaluating a CMS, always use your real content
The famous DITA “garage” sample is very good to do a quick test to make sure your DITA OT installation works. But unless you are buying a CMS to manage these garage files, you have to use your real content that reflects your real scenarios – the same scenarios that you sent to vendors. Basically, your scenarios is something that you need to evaluate, and you can do this only by using your real content.
Estimate the overall time required to set up the system
Always check how much time required to fully deploy a system and bring it to the state when you can fully exploit it.
Always calculate the total cost of ownership
Don’t look just at the cost of licenses – it might be just a fraction of the costs that you’ll have to spend in an explicit or implicit way. For example, keep in mind:
Complexity of installation and configuration: do you need a vendor’s assistance here? will they charge you for this? how much time will it take?
Usage of proprietary technologies: are you locked by any mean into the product? what if you decide to migrate to another product?
Recurring fees: are there any fees that you keep paying to the vendor after the purchase? what do they include? what happens if you discontinue paying them?
Product documentation: is the product documented? can you just read a user’s guide or will you have to contact the vendor’s support? if you contact their support, do you have to pay?