Poor "InvLineItems", intended to be both a tasklist and a list of items for the invoice, was capable of doing neither. The list of priced products wasn't useful in describing actual tasks and so it was appropriated for use as a tasklist, for which it wasn't well designed.
In the first phase, its "diary-like" comments, long (mis)used as the actual dialog between production supervisors and image operators, were replaced with a sub-line-items file and the "products" were replaced with task-oriented, deparment-specific workflow-driven items. But to make the system useful for the financial department, I split JobTicket into a Job part and and Products part. The new Products part consisted of billable items and those in turn contains the workflow tasks. What didn't work in an architecture where the same file was attempting to serve two purposes works far better in the new architecture with separate but hierarchically-related files attending to the two tasks.
Because of the centrality of the JobTicket file, this was one of the most complicated architectural change I ever had to do on a live production system.