I'm writing this week about five lessons I've learned while designing and consulting on content workflows. The fourth is the one most often ignored: "Change processes to take advantage of software design, more than the opposite."
I don't think there is a company that can implement a system without some degree of customization. Charts of accounts, customer records and content repositories (among many inputs) have attributes that vary by publisher. They all have to be accomodated in some way.
Software vendors want to sell software, and they typically offer options to customize workflows, interfaces and the like. These alternatives usually don't change the architecture of the system, although they do cost time and some money to sort through and test.
As clients, publishers too often ask software vendors to go beyond the standard options and configure their systems to mimic the workflows that are already in place. This is understandable: the publisher is the customer, so the product should adapt to the existing approach.
But that mindset costs publishers three times:
- It fails to take advantage of "best practices" that the software vendor has built into a system shared across multiple publishers;
- It increases the cost of implementation, often delaying the project to allow for customization; and
- It can "freeze" the software version, delaying or blocking updates that would overwrite the customized version.
When changing or upgrading a system, better practice migrates processes and organizational structures to take advantage of the new tools. This is the thinking behind our "three gears" approach, described in a post earlier this year.
Failing to adapt to new technology leaves publishers with higher-cost systems, legacy processes and sometimes incompatible organizational designs. Ultimately, that leads to errors, rework, delays and greater operating expense. In the evolving competitive environment, all of those things are not good.
Tomorrow, I'll wrap up this series by discussing the opportunity publishers have to create structures that reflect discrete functions, not functions that fit a legacy structure.