Agile is very much built around trust and empowerment. Micromanaging and trying to 'catch out' teams is incompatible with this.
Some of the effects of the current approach include:
- By providing top-down technical solutions you take away ownership from the team doing the work. If things go badly, they may just think 'well it wasn't our idea in the first place'.
- The constant checking-up may result in the team being risk averse. Why take on things that may fail if you will just get hauled over the coals for it?
- The team may even start to hide problems if they feel that the manager does not have the full context and so may misinterpret them.
The best thing to do is to leverage agile principles.
For example, if the team releases frequently (say every 2 weeks) then true progress is clearly visible. If it is not possible to do this production, at least do it to a beta release environment that is viewed by stakeholders.
Also, look to use continuous integration and automation to better integrate the offshore team with the in-house one. For example, you could pull the code from the offshore team in to in-house servers every night or when a check-in occurs. Doing this will start to break down the barriers between the two teams.
Look for ways to build trust. Can the offshore team visit the in-house team, or perhaps some in-house team members can visit the offshore office? Create a safe to fail environment, where the offshore team knows that they will not be punished for making mistakes and so are willing to be open and look for solutions. Have the offshore team ask for help, rather than pushing technical solutions to them. For example, you could have a chat application running that allows the offshore team to bounce questions/ideas off of the in-house team.
Finally, show that you respect the offshore team and that you want to make their work a success. Encourage them, congratulate them on successes and help them to feel that they are wanted and appreciated. This will foster a culture of transparency and collaboration.