Você já tem boas idéias
As idéias que você descreve em sua pergunta são excelentes. É uma grande surpresa que você não esteja encontrando sucesso. Estamos em 2012 e a revolução orientada a objetos já passou do estado da arte para o estado da prática. Parece que, a menos que você tenha uma rotatividade muito baixa e poucas contratações, seria difícil não conseguir várias dezenas ou mesmo cem bons programadores sólidos de orientação a objetos.
Ágil ou Orientado a Objetos?
Você menciona algumas tecnologias Agile como TDD e alguns conceitos mais recentes, portanto, não seja muito duro com as pessoas por não abraçarem algo que ainda é combatido ativamente por algumas equipes de gerenciamento. Alguns afirmam abraçar o Agile, mas quando falam sobre isso, significa o que dizem. A organização não se caracteriza por equipes que tomam decisões e se adaptam, mas pelo forte controle hierárquico no estilo de contrato.
Mas voltando ao objeto orientado. Você não menciona análise ou design orientado a objetos, e não tenho certeza de qual linguagem de programação está dando lugar a qual linguagem de programação orientada a objetos. Eu sei que a UML está tendo problemas de popularidade entre muitos programadores orientados a objetos. Tendo sido completamente treinado em OOAD, acredito que pode ser como aprender a cultura e a história de um país cuja língua natural você deseja aprender. Por exemplo, se eu quisesse aprender grego, poderia aprender o alfabeto, vocabulário e gramática, mas se ignorasse a rica história e cultura, sentiria muita falta. De qualquer forma, se você aprender tudo sobre uma linguagem de programação orientada a objetos, mas nada sobre o OOAD, acho que uma oportunidade importante foi perdida.
Problemas a Superar?
Ponte muito longe? Se você pedir às pessoas que aprendam uma coisa pequena por semana, em um ano, entre as pessoas que participam, haverá muitas mudanças. Se você pedir que eles mudem tudo o que sabem, será bem-vindo por alguns, difícil para muitos e impossível para outros. Algumas alterações, como controle de origem, estão localizadas. Você faz a transição de não fazer isso antes, teve um treinamento que não estava estressando os limites da memória, alguém o acompanhou pela primeira vez e o dia-a-dia foi bem fácil.
Outras mudanças são generalizadas. Por exemplo, despejar C e alternar para Java requer treinamento, configuração e grandes mudanças no dia-a-dia para adotar um novo IDE, novo compilador, nova linguagem, nova API, novo modelo de implantação etc. Esse é o tipo coisa que acontece com mais frequência em conjunto com um programa piloto ou reestruturação corporativa.
Liderando uma revolução? Se as pessoas que estão atualmente fazendo o trabalho têm um histórico de serem recompensadas e a empresa não parece correr o risco de falhar, qual é a motivação delas para mudar? Se você parece um estranho que quer apontar a direção e deixá-los responsáveis pelos resultados que não podem prever, pode parecer que todos os riscos, nenhuma recompensa.
Poder de posição ou liderança de idéias? Muitas organizações operam com base no poder da posição. Se você não tem o apoio visível de gerentes, chefes de seção, diretores e vice-presidentes, você é apenas um líder de idéias. Algumas pessoas estão na posição perigosa de ter uma idéia e não serem capazes de aceitar uma segunda. Se você pode mostrá-los ao invés de contar, isso ajudará bastante a acalmar os céticos e a interessar aliados talentosos.
Base de suporte muito pequena? Faça uma triagem entre essas 250 pessoas e as classifique em três categorias: prontas para abraçar, dispostas a aprender e dispostas a aprender. Você tem bons motivos para ficar frustrado com algumas pessoas que não têm interesse em fazer uma mudança. Você também pode estar empurrando uma corda. Isso é esforço desperdiçado. Se você tem uma idéia de quem apóia a mudança, pode descobrir o que lhes interessa.
Ao contrário de uma triagem médica em que a escolha ética e prática é ajudar o grupo intermediário que pode ajudá-lo, você pode investir sua energia e tempo com base em seu julgamento e preferência. Para o seu sucesso, por que não cultivar o grupo que está pronto para abraçar novas idéias? Eles podem ser poucos no começo, mas, como uma bola de neve, sua visibilidade e credibilidade como defensor crescerão. Em breve, as pessoas perguntarão quando será o próximo treinamento.
Nele para o longo prazo? Até você cultivar um campeão para levar as coisas depois de você, você deve esperar investir tempo construindo relacionamentos. Pode ser necessário permanecer com as equipes que você treina por mais de um mês. Até que a equipe possua práticas aprimoradas para si, você é apenas um policial de tecnologia ou metodologia. A tutoria é um processo que pode levar anos. Há muitas coisas que seus desenvolvedores não querem fazer e que você acha importantes (você mencionou especificamente o teste de unidade, eu acho). Pode demorar um pouco para construir uma visão compartilhada do valor que isso traz. Eu sei disso por experiência, porque uma vez defendi uma ferramenta de cobertura de código em uma empresa da Fortune 500 que tinha uma ótima reputação de qualidade, mas gerentes e colegas estavam cautelosos em se comprometer com ela.
Especialista ou de base? Muito mais rápido que a orientação seria promover o apoio de base que vem de cada membro da equipe. Começando com uma equipe de dez especialistas em software, se eu tivesse minha escolha de ter uma pessoa trabalhando no processo o tempo todo ou dez pessoas trabalhando no processo 10% do tempo, eu escolheria o segundo. O processo de base permite que os advogados sintam o impacto da abordagem e que a abordagem seja adaptada para melhor resolver os problemas da equipe que possui o trabalho.
Você vê a Linha da Liberdade? Parte da introdução das "Melhores Práticas" é levar as pessoas a desistir de alguma liberdade para fazer as coisas de maneira comum. Desistir do critério do programador será mais agradável se você procurar oportunidades para deixar muitas opções para os desenvolvedores. O que eles escolhem é delineado pelo que é mandatado por uma partição que podemos chamar de linha da liberdade. Pode ser necessário divisões semelhantes e bem justificadas sobre práticas organizacionais, regionais / locais, equipes e práticas pessoais.