Em conversa recente com amigos, levantamos a dificuldade de se introduzir novas tecnologias, como um novo ambiente ou uma nova linguagem de programacao em uma organizacao. A questao nao se resume a problemas tecnicos, mas a problemas pessoais, barreiras psicologicas, etc.Por exemplo, se uma pessoa se considera em uma zona de conforto (por exemplo, se ela domina bastante uma linguagem de programacao popular) pode haver uma certa resistencia em coloca-la para aprender uma nova tecnologia (como outra linguagem de programacao).Para resolver problemas como estes, ha diversos tipos de abordagens, envolvendo, inclusive, tira-la da zona de conforto. No entanto, o proposito deste post e discutir questoes organizacionais e levantar 5 pontos interessantes para definir uma estrategia para a introducao de novas tecnologias, mais especificamente, de uma nova linguagem de programacao, na esperanca de que alguns destes pontos possam ser uteis inclusive em outros contextos.Existem varios motivadores para que uma organizacao resolva adotar uma nova tecnologia. Entre eles, a exigencia de um projeto especifico ou de um cliente importante ou ate uma meta organizacional. Estes cenarios tem suas peculiaridades e devem ser exploradas de forma diferenciada.Se um projeto especifico deve ser feito com uma tecnologia diferente da que a equipe esta acostumada a trabalhar, pode ser conveniente, para reduzir os riscos do projeto, investir em treinamentos, contratar gente especializada ou encontrar algum colaborador que detenha conhecimento suficiente e possa dedicar atencao suficiente a equipe do projeto. Apos a conclusao do projeto e seu periodo de manutencao, a mesma demanda por aquela tecnologia pode nao ser mais necessaria e evolucoes podem ser feitas por membros da equipe que adquiriram conhecimento atraves do primeiro projeto.Diferentemente deste cenario, a de exigencia de um cliente importante ou uma meta estrategica da organizacao sao questoes mais duradouras e mais impactantes na organizacao pois outros futuros projetos serao garantidamente construidos sobre a nova base tecnologica.O inicio de todo projeto ja traz suas proprias complicacoes. Todos os envolvidos estao se familiarizando com os objetivos do cliente, com os padroes do projeto, sua arquitetura, suas funcionalidades e restricoes. Alem da propria curva de aprendizado do projeto, trazer uma nova linguagem de programacao traz as curvas de aprendizado do ambiente de desenvolvimento e da linguagem em si, alem de bibliotecas e frameworks de terceiros, sem as quais se torna muito custoso desenvolver softwares profissionalmente.Assim, iniciar com uma equipe inexperiente um projeto com tantas novidades pode ser bastante caotico. Enquanto uma organizacao pode achar que um projeto pequeno pode ser utilizado, vale lembrar que um atraso de 1 semana em um projeto de 1 mes e muito pior que um atraso de 2 semanas em um projeto de 6 meses. Por outro lado, passar 2 meses na construcao de um projeto para descobrir que e inviavel na tecnologia escolhida pode inviabilizar o projeto completamente.Entao, quais acoes poderiam ser adotadas para minimizar o impacto da introducao de uma nova tecnologia, como uma linguagem de programacao?Minha primeira sugestao e simples:Quando se trata de atingir um objetivo/meta organizacional, o custo deve ser organizacional e o treinamento da equipe deve ser encarado da mesma forma: como um investimento