Once I was asked to define “legacy”.
I think the person asking — who wanted to advance the removal of the mainframes from their company — wanted an answer like “the mainframe”.
My answer was “anything in production”. That was not said in jest.
Software is designed and configured to model work as it is done. That means the model reflects the way it was done at the time of analysis.
When many people went to ERP packages in the 1990s, they were basically buying work models dating from the 1980s. This was a step closer to the present for most of them, whose existing applications reflected the 1960s or 1970s.
Software design over the past twenty to thirty years, has focused on understanding the process fully. Exception use cases abound. The core path reflects “the best process flow”.
What happens in the real world, of course, is that change keeps occurring. That “best flow” is only the best flow for a short period of time — shorter, that is, than the life of the software (or a business process outsourcing contract).
Ever notice how the best people for customer service are those that know how to break that flow intelligently?
Ever notice how the most difficult interactions are over apparently simple things that the programming didn’t allow for?
No? Go into McDonald’s and order the Quarter-Pounder combo. But you don’t want the standard Quarter-Pounder with Cheese, you want the original Quarter-Pounder hamburger. Ask for a “Quarter Ham Combo” and watch the poor person deal with their computerized cash register.
They know the term “Quarter Ham” — it’s used in the burger assembly line all the time. But there’s no button for it. They’re lost.
To really drive the point home, order “for here, Quarter Ham combo”. Nine will get you ten the clerk, once they’ve figured out how to put the order in, will ask you “for here, or to go?”. McDonald’s programming and process puts “order disposition” at the end. Your putting it at the beginning means they have to hold it in their memory while they set the order up. Complicate that, and it gets lost.
So much simpler if they could just push a button marked “for here” when they heard the words … but that’s not how the “best process flow” works.
(You can play this game at Starbucks, too … their multi-screen cash register means flipping back and forth to key in your order.)
These aren’t cited to say “bad programming”. What they are is inflexible. They sacrifice the customer to the process.
That’s old-school. Especially in today’s business world, you need every drop of business your company can get. That means making it possible to do it in the customer’s order (not the company’s), and do “just enough” (or do you like jumping through hoops because some program won’t let the person serving you move on until you give them the information the screen requires)?
New school business is built out of small modular bits that are configured “on the fly” into barely repeatable processes. Every interaction is unique.
That’s why, if it’s in production, it’s old school. Or, as we used to call it, “legacy”.