Novas tecnologias surgem todos os dias. Junto com elas, a dúvida se estamos fazendo as escolhas certas. Como saber o que é mais correto: “abraçar” o hype e correr o risco de usar uma tecnologia nova e excitante, mas instável, ou se apoiar em técnicas e tecnologias consolidadas, mais seguras, mas também mais próximas da obsolescência?
NOTA: Esse post é inspirado em uma discussão proposta por Jac Abreu, no Twitter.
O fato, é que não é fácil responder a essa pergunta de forma assertiva. Na verdade, entendemos que não há resposta certa para todos os casos.
Com frequência, há mais de uma técnica ou tecnologia no hype para resolver um mesmo problema. Para piorar, a história está cheia de exemplos onde a opção vencedora não era inquestionavelmente superior.
Microsoft Word, para muitos, não era melhor que o WordPerfect. Pentium não era melhor do que o PowerPC. VHS não era melhor do que o Betamax. Só para ficarmos com exemplos com mais de 20 anos.
Fornecedores também não nos ajudam muito. Muitas soluções são descontinuadas ou drasticamente modificadas repentinamente. Silverlight, por exemplo, parecia escolha segura (adotado inclusive pela Netflix), mas foi considerado “pronto” pela Microsoft e colocou milhares de gestores de tecnologia (eu, inclusive) em situação difícil. O código para CQRS Journey, que foi um dos exemplos produzidos pela Microsoft para promover o Azure, nem mesmo compila atualmente.
Há também a “Teenager Sex Syndrom” que assola a área de tecnologia (todos adolescentes falam sobre sexo como especialistas, mas bem poucos praticam). Há eventos e até cursos preparando gente onde quem está falando é, no melhor caso, entusiasta e não especialista naquilo que está apresentando.
Você pode passar uma vida inteira estudando anatomia humana e técnicas cirúrgicas. Entretanto, antes de fazer o primeiro corte e, preferencialmente, ter um paciente que sobreviveu, não seria boa ideia que fosse “mestre” de novos cirurgiões.
[tweet]Na teoria, teoria e prática são iguais. Na prática, elas são diferentes.[/tweet]
De qualquer forma, como fazer escolhas “menos erradas” de tecnologia?
O primeiro passo, entendemos, é tentar determinar o fit entre cada uma das opções que estamos avaliando e o problema que estamos tentando resolver. [tweet]Beira a desonestidade “forçar a barra” na direção de uma determinada opção apenas para satisfazer o ego do time enquanto se entrega menos valor para o negócio.[/tweet]
Eliminadas “opções da vaidade”, é importante determinar bem o nível real de maturidade de cada alternativa que estamos considerando adotar. Há boas análises independentes fornecidas por instituições mais ou menos conservadoras, como Gartner (com seu famoso Hyper cycle), IDC e o radar da ToughtWorks. Também temos as pesquisas de popularidade em sites importantes como o StackOverflow. Sempre é importante se pautar em uma opinião externa na hora de avaliar a maturidade de uma tecnologia.
De forma responsável, a “tolerância ao hype” sempre estará associada ao nível de risco tolerado em cada projeto. Projetos onde o impacto de uma escolha ruim é menor são candidatos naturais para a experimentação do novo.
No último QCON, conversando com Martin Spier, engenheiro no Netflix, descobrimos que a gigante do streaming tem um microsserviço escrito em COBOL em produção. Ele foi escrito em um evento interno, como brincadeira, mas acabou ficando bom e foi colocado em produção.
Sendo um microsserviço, provavelmente pouco modificado, o projeto tem um risco pequeno.
Outro aspecto a considerar é o perfil do time envolvido em cada projeto. Há, em tecnologia, early adopters sempre ansiosos para “experimentar o novo”. Mas, também há aqueles que não se ficam confortáveis com alternativas que não se mostraram eficientes no teste do tempo. [tweet]A opinião mais importante na hora de escolher uma tecnologia é de quem irá manter o produto e não a de quem irá desenvolver.[/tweet]
Finalmente, é importante lembrar que independente da escolha, toda tecnologia, dentro ou fora do “hype”, está condenada a ficar obsoleta em algum momento. Também é importante não esquecer que tecnologias aparentemente “legadas” permanecem em produção por muito mais tempo depois de deixarem de serem apresentadas em palestras ou vendidas em cursos.
Como última recomendação, e talvez a mais importante, jamais tome a decisão sozinho. Nem mesmo deixe a decisão exclusivamente na área de tecnologia. Trabalhe para que os prós e contras de cada alternativa sejam compreensíveis por pessoas da área de negócios.
[tweet]A escolha de tecnologias é atividade estratégica. Logo, deve estar subordinada a uma estratégia.[/tweet]