Tech lead and leadership
Roy has a good posting and essay on misjudging development approaches. My thanks to Roy for the posting and "divulging the soul" on the matter. Chalk it up on experience and we all have gone through that before. I wouldn't blame Roy's approach on his 'directory services' project and I personally, do not view it as a technical (WMI, AD, etc) issue but one of LEADERSHIP. Ultimately, it's the tech lead's responsibility to seeing the project done. But tech leads can go astray. In this case, the development was done "behind the back" and that was certainly not the right way and that approach in itself, demoralizes the entire development team. I'd say that's poor leadership on the tech lead's part.
Recently, I had encountered a project fiasco with a tech lead who insisted (more like demanded), the use of a XML tree as a relational database. It doesn't work that way (see 'Effective XML & Why not to use XML as a relational database'). Sure enough, that project was an exercise in futility and unneccesarily complex but as a developer/contractor you are obliged to point it out why it won't work. Do it twice but no more and then proceed with his doomed path, since he's paying you for it. Several weeks later, after the doomed project was shelved, I realized why - just about all he knew in the MS development world was XML/XSL/CSS. He didn't like working with MS products and in fact, had daily MS-bashing bouts & criticisms which were very demoralizing to the development team. Developers are craftsmen who take pride in their work and thus, the platform they make their living on.
Being a tech lead and developer on numerous projects myself, I can say it takes time (experience) and it's not easy. Leadership counts everywhere - be it in trenches fighting battles or developing software.