But I can't stress enough that it must be nearly child's play to do these things. Don't hand me a compiler or scripting language and say "Yes, you can do it." Instead, in the five minutes I give you, show me how it is done, right in front of my eyes. That's a capability. That's what you need to support corporate culture and process.
Yes, there are other things: role definition, dashboard generation, custom forms and dialogs, dynamic schema definitions, state-flow definitions, with roles guarding transitions and a decent, configurable "portal" or main screen that has my to-do lists, quick links, frequent reports, etc. Give me these things, and I can customize the tool to do what our project wants.
Let me do it in hours instead of days, weeks, or months, and you've got a winner. Look for this technology if this requirement is important to you. You'll find it.
8. Global Operation: If you are currently a multiple site organization, or see your organization growing into one, recognize that from the start. Don't pick up a technology that's not going to let you deal with multiple sites. And don't yield to the temptation that says, "We'll wait until the need arises."
Do you really want to cause major upheaval of your development shop just as you're moving to a multiple site solution? Wouldn't you rather see a solution that looks the same for multiple sites as for a single site? We have long passed the point where technology and bandwidth allow such an operation.
Global operation solutions need to take into account the fact that there may be extended network outages between sites or intermittent outages as the world changes. They need to acknowledge that you may want all your assets available at all sites or that you may want to restrict some assets from some sites because, for example, the government is not stable.
Some people are of the mind that global operation is a license for hiring additional administrators. I ask, why should you need additional administrators? Doesn't the technology do all the work? Is it not reliable? I want global operation to reduce my administration! After all, with multiple sites, I should have an automatic disaster recovery capability. And, I should be able to reduce my "backups" because I have live sites that are live backups of one another.
9. Low Training Costs: Too many organizations forget this as a strategic requirement. It's no good paying only a few hundred dollars per user for licenses, when I have to pay a couple of thousand for training! Do you want a training package that is two-weeks long or one that is two-days long? You'll pay more for two weeks, and the product’s complexity will be significantly more. But that does not mean the functionality will be greater.
Look at developer training. Yes, it might be fun to be on a week-long training course, but you've just consumed 2 percent of your developer resources for the current year. And for that privilege, you've probably had to pay 2 percent additional salary. When's the last time you sent your developer on a course to learn how to use a text editor or spreadsheet? Why not? Because they are easy to use.
If your solution means you have to teach developers a whole new set of commands, what their options are, and how they all fit together, maybe your solution is not as modern as you thought. It's one thing to teach concepts and perhaps a bit of tool-specific terminology. But developers know most of the process. They should be able to sit down with the tool after a couple hours of training and run with it.
If you're addressing the full lifecycle, you'll have fewer technical users, too. The tools have to be even easier to use, but not just to do the same old task. The ease-of-use for new functionality is critical. That's where dashboard customization is critical. That's where concepts like active workspace displays, custom in-tool process guidance, handy links and to-do lists, and intuitive queries and traceability navigation become important. Don't make me learn a dozen commands. Don't make me search through pull-down menus. Let me point-and-click. Put the information up that I'll need. Fill in the default values based on my context and on what I'm doing. Minimize my training.
10. Mature CM: Some organizations like to force exclusive checkouts; others want only parallel checkouts. Some use agile methods; others use traditional methods. Some want fixes automatically propagated from one development stream (i.e., release trunk) to another; others never want that done automatically. Some want to allow a workspace to be used for multiple concurrent changes; others want a separate workspace per change. Some want all files in the workspace R/W; others want only checked out files to be R/W. Some want files to be checked out before they’re modified; others want to make changes to the workspace and then let the tool figure out what was done.