Background: I worked for an organisation that delivered services to a number of public sector clients, geographically dispersed. A series of security-related changes were required to allow one such client to comply with centrally-mandated security policies. Most of these changes were not technically demanding, but the volume was very high.
The senior manager on site was a technical manager who reported into a different leg of the organisation from me. There is no question about his technical skills or knowledge of what had to be done, but he was recognised as being a big personality who had his own agenda and his own views on the importance of this work.
The technical manager knew more about the client than I did, and because he was based on site there, had a strong personal relationship with client staff. I was based elsewhere, and had been parachuted in to create and run a project to deliver the things that this technical manager had failed to deliver in the past. His "reason" for failure to deliver in the past was that he could not be expected to both manage the technology and run the project - hence my involvement.
Situation: I established the project, created the WBS, got the technical manager's agreement to the plans, presented the plans to the client, and started to push out work packages, which the technical manager accepted. He then failed to deliver any of the work within timescales, and, worse than that, started to undermine me in meetings with the client, saying that his estimates had been misinterpreted, and the client expectations were unreasonable. Given his personal relationship with the client, he was able to persuade the client that he was right, and he effectively hung me out to dry . His line manager would not intervene at this stage. I ended up delivering an incomplete project late, and finally got the technical manager's line manager to step in to support me, and we did enough to allow the client to pass the security review - but no-one ended up happy.
Question: What could / should I have done?