I've been a team lead at my current workplace (an IT department) for a number of years.
There is a recurring problem here:
- Team A decides to start using technology X (e.g. ASP.NET), usually based on no formal selection criteria
- Team B already uses technology Y (e.g. PHP) which does the roughly the same thing as technology Y. They probably also didn't have any formal selection criteria.
- Team A and B would be happy to agree on one technology, X, Y or Z in the given space, if they actually talked to each other about what they were doing before it was too late.
- But instead we end up wasting money, time etc. using both technologies. Sometimes projects get killed after weeks of work because it turns out someone else was working on the same problem.
- To make matters worse Team A may only have one person who is skilled with technology X, and when they leave it may get handed over to Team B, which now has to support both X and Y
There is generally a cooperative culture in the workplace. If you ask someone from another team for help or information they'll usually be happy to provide it. Secretiveness isn't the problem - if you happen to be in a meeting with someone from the relevant team, and happen to get on to a relevant topic you'll find out what they're doing.
I have technology architecture in my job description. I keep raising the technology duplication issue in cross team forums, and have tried to lead by communicating technology directions from my team and seeking feedback. But without much evident sign of progress.
The workplace is fairly non-hierarchical, and any solution is going to have to rely on getting peers on board, rather than getting management to make orders.
Can anyone suggest actions I could take to improve the situation?