Por que um ambiente “Full-Javascript” vai aumentar a produtividade da sua Startup

 In Javascript, Startups

Eu confesso para vocês que uma das minhas atividades preferidas é tomar decisões tecnológicas. Dois anos à frente da área de tecnologia de uma pequena startup com pouquíssimos recursos me deram uma bagagem muito interessante para tomar partido sobre certos assuntos.

Acredito piamente que a maioria dos aprendizados que vou compartilhar aqui são aplicáveis para a vasta maioria das startups de tecnologia. No entanto, é preciso deixar claro que existem alguns casos onde as decisões tecnológicas são muito específicas e exigem outros aspectos que este pequeno texto não abordará.

Feito o disclaimer inicial, eu gostaria de propor o que eu considero o estado da arte em termos de produtividade e qualidade de software para pequenos negócios. Um ambiente onde mesmo startups com apenas um ou poucos programadores podem ter alta produtividade e ao mesmo tempo serem capazes de criar um produto de qualidade.

Passei 2 anos desenvolvendo apps Android e iOS nativos (Java e Swift, respectivamente), uma API (em Ruby) e um Website (em HTML + CSS + Javascript). Todo aquele trabalho me deixava com a sensação de que aquela estrutura não estava fazendo sentido.

 

Não entrava na minha cabeça que tudo que eu fazia em Java (Android) eu tinha que replicar em Swift (iOS).

 

Como quase toda startup brasileira, nós não tínhamos recursos, não tínhamos como contratar uma legião de programadores pra cuidar de todas as plataformas. E quando contratávamos, era impossível achar alguém que poderia trabalhar com Javascript, Java, Swift e Ruby. Já que seria útil que este programador pudesse trabalhar em qualquer uma das frentes caso fosse necessário.

Se precisássemos que este novo programador consertasse um bug em uma linguagem/plataforma que ele não estava familiarizado, ele precisaria de um tempo de treinamento para entender o funcionamento daquela plataforma para ser capaz de resolver problemas. E isso se repetiria para todas as outras plataformas que ele não conhecesse, gastando um tempo e recurso que não tínhamos.

Acredito que este cenário seja comum em muitas startups. Ainda mais quando você precisa manter um site, um aplicativo iOS, um aplicativo Android e um backend rodando. Idealmente você precisaria de, no mínimo, um desenvolvedor por plataforma. E caso você não tenha os recursos necessários para isso, seu produto inevitavelmente perderá qualidade.

A luz no fim do túnel

Estes problemas me consumiram durante meses. Eu sabia que não poderia optar, por exemplo, por web apps. Que oferecem uma experiência horrorosa (desculpa Ionic, não tem como gostar de você). E todas as minhas experiências com ambientes híbridos tinham sido desastrosas.

Foi em meio a este desespero que algo apareceu no meu caminho, algo que mudou radicalmente tudo que eu pensava sobre desenvolvimento de aplicativos mobile.

React Native. Quando eu fiz o meu primeiro app para entender como a plataforma funcionava, minha mente explodiu. Não só porque eu tinha acabado de construir um app NATIVO que funcionava em iOS e Android escrevendo apenas um código Javascript, mas pela velocidade de desenvolvimento que a plataforma me proporcionava. E o mais interessante é que é uma plataforma criada pelo Facebook e já é usada em seus aplicativos em produção!

Não vou explicar aqui em detalhes como a plataforma funciona, se não o texto vai ficar mais gigante do que já está. Dá uma Googleada aí!

E não, eu não fui o único a ficar impressionado. A Airbnb parece ter tido exatamente a mesma visão, migrando todos seus aplicativos para React Native.

O curioso dessa história é que eu só fui conhecer o React.js depois de ter conhecido o React Native. E acabei ficando ainda mais impressionado: Eu poderia compartilhar partes do meu código dos apps (iOS e Android) em meu site!!!

Este cenário já é perfeito por si só. Eu já poderia contratar um programador que soubesse Javascript e caso ele não conheça React, posso treiná-lo e ele poderá trabalhar no site e nos apps. Impossível ficar melhor que isso, não é?

Ahhh, pode sim.

Nesse momento eu lembrei de Node.js. Que vem pra completar essa família. Eu já tinha visto testes de benchmarks surpreendentes dele no passado, mas poder construir o Backend também em Javascript fecha um ciclo virtuoso de produtividade. Formando, no que eu chamo de, um ambiente “Full-Javascript”.

Este me parece o cenário perfeito para uma pequena empresa de tecnologia que quer construir um produto de alta qualidade com um time pequeno. Uma vez que um ambiente React (Web) + React Native (Android e iOS) + Node.js (Backend) não só facilita na integração de novos desenvolvedores na sua equipe, mas faz seu time trabalhar unido, podendo trocar informações entre si.

Até porque, chega desse papo de ter um time Web, um time Android e outro time iOS que não conversam entre si. Temos que usar melhor nossos recursos. 😉

Para dúvidas, elogios e críticas, comente!

Leave a Comment

Entre em Contato

Deixe sua mensagem! Responderemos em breve! :)