Or there's always that manual re-keying option....
Architectural impact: Redundant data drives need for system interface and often creates need for manual re-keying.
Direct business impact: Maintaining data synchronization across multiple databases is difficult, leading to effort wasted in reconciliation activities and getting wrong answers depending on which database is queried.
Too many interfaces
When you have redundant data and you decide to keep it synchronized, you need to build an interface. Even if you don't, you often have to feed one system with results from a different one.
Either way, the more systems and databases you have, the more interfaces you end up building. It's better than not having them, but as they accumulate, your architecture becomes more and more fragile, and you spend more and more time managing the interfaces instead of building new functionality.
Architectural impact: The more interfaces you have, the more fragile your system, and the harder that system is to maintain.
Direct business impact: Building interface after interface drains IT resources away from value-creating activity.
So you decide to solve your interface dilemma with an elegant enterprise application integration system, or a services bus, or some other form of middleware-plus-metadata that keeps everything clean.
And then, your developers figure two things out: (1) what your cool new system does is make solving the easy problems even easier; and (2) it doesn't solve the hard problems at all. So instead of arguing with you, they rebuild the same old spiderweb of interfaces, but hide it inside the EAI system so you don't know about it.
Architectural impact: Faux-elegant integration is just as fragile and difficult to maintain as interface glut.
Direct business impact: Faux-elegant integration still drains IT resources away from value-creating activity - and it's expensive, too.
Kludges and workarounds
Maybe you were competing with an outside developer who lowballed a project. Maybe the business sponsor insisted on too short a deadline. Or maybe building a solution well would have ruined the business case for the project.
Whatever the reason, you wake up one day to discover a lot of your systems are held together with Band-Aids, chewing gum, and duct tape.
If you're lucky, nobody will notice until after you leave or retire.
Architectural impact: Kludges solve immediate problems by creating fragile systems.
Direct business impact: Your cost of maintenance increases with each unnecessary solution, as does downtime, the cost of staff training, and the complexity of every subsequent project.
It's mission-critical! It satisfies the business need perfectly! What do you mean you have to spend money to maintain it?
When you've built something on a version of Visual Basic that Microsoft hasn't supported in a decade, that can't read and write from any version of SQL Server that isn't at least seven years old, and the only versions of Windows they'll run on don't have drivers for any of the printers you have in production - that's what you mean. You have to spend money to maintain it.
Sign up for Computerworld eNewsletters.