A era das ferramentas em forma de serviço

Qual o motivo por trás do surgimento de tantas ferramentas em forma de serviço? Quais as principais e mais indicadas?

O que me levou a pensar sobre esse assunto

No próximo mês (março de 2017) completo cinco anos desde que comecei a trabalhar profissionalmente com desenvolvimento de software. Antes disso, eu estava na faculdade, porém, ainda não tinha feito nada que me rendesse umas “verdinhas”. Apesar de eu ser novo na área de desenvolvimento se comparado com outros profissionais, o tempo nos leva a refletir sobre projetos desenvolvidos, quais eram as expectativas antes de começar a trabalhar e como elas são hoje, os aspectos que nos dá prazer em trabalhar e quais, com perdão da palavra, enchem o saco.

Nessa minha reflexão sobre esse curto período na área, também tentei lembrar dos principais elementos e ferramentas de uso diário que mudaram nesse tempo. Muitas coisas mudaram, como os serviços de nuvem que mal existiam, os frameworks ficaram mais modernos, novas estratégias para deploy na nuvem, dentre várias outras coisas. Porém, o que mais me chama atenção é a quantidade de serviços que auxiliam no desenvolvimento de software e gerenciamento de equipes e projetos.

Java - Fundamentos de Struts 2
Curso de Java - Fundamentos de Struts 2
CONHEÇA O CURSO

Surgimento das ferramentas em forma de serviço

Lembro que na época que fiz o meu TCC tive que procurar uma série de gems para conseguir extrair métricas do código do projeto. Hoje existem ferramentas online que auxiliam na extração desse tipo informação. O ponto principal é que a maioria dessas ferramentas surgiram com o intuito principal de diminuir a complexidade de arquitetura e de configuração que o desenvolvedor precisa fazer para usar um recurso. Na maioria dos casos, usar um serviço é muito mais prático, economiza horas de configurações e estresse. Além disso, em muitos casos, pode ser até mais vantajoso financeiramente (se avaliar o “todo”).

Algumas ferramentas

Não tenho a intenção de indicar a “melhor ferramenta” ou quais as vantagens e desvantagens de cada uma, nem mostrar todas as disponíveis no mercado, até porque, como o título do artigo diz, estamos na era das ferramentas em forma serviços e devem existir milhares por aí que nem nunca ouvi falar.

Vou citar as que conheço ou que já tive contato:

Ferramentas para análise da qualidade de código:

Ferramentas de integração contínua:

Ferramentas para monitoramento:

Ferramentas para hospedagem de repositórios git:

Ferramentas para envio de email:

Ferramentas de servidores de busca:

Ferramentas de controle de projeto e tempo:

Ferramentas de comunicação mais usadas por equipes de desenvolvimento:

Escolha das ferramentas usadas em um projeto

Além das ferramentas citadas acima, que no geral são mais genéricas e podem ser utilizadas em diferentes tipos de projeto, existem muitas ferramentas de domínio especifico da stack que se está utilizando. A maioria dos desenvolvedores adoram testar novas ferramentas, linguagens, serviços e tudo que é tipo de novidade. Em um projeto “ideal” a maioria nós escolheria no mínimo uma ferramenta de cada tipo acima, com todas as funções liberadas e tudo mais. Mas sabemos que não é essa maravilha toda, pois a maioria dos projetos possuem orçamentos apertados, em outros casos os desenvolvedores são freelancers e o custo dessas ferramentas vão acabar saindo do próprio lucro. E fica ainda mais complicado se pensarmos que a maioria desses serviços são pagos em dólar.

Pensando nesse tipo de situação, melhor do que comprometer o orçamento do seu projeto com o uso de diversas ferramentas, é analisar o escopo dele e tentar entender qual a parte mais critica, onde o uso de uma ferramenta teria maior impacto positivo pensando no problema que se está tentando resolver.

Outro ponto interessante é usar um pouco do “jeitinho brasileiro”, mas não no sentido de fazer gambiarra, mas sim no modo de contornar a situação com pouco recurso. É possível comparar 2 ou 3 ferramentas para ver no escopo do projeto qual teria o menor custo. Se o projeto possui um único desenvolvedor, talvez seja interessante usar uma hospedagem de repositórios Git que não cobre por repositórios privados com um único desenvolvedor. Outra ideia é procurar ferramentas open source que fazem o mesmo trabalho e outras ações nesse sentido. Além dessa questão das ferramentas, isso pode ser uma ótima oportunidade para conhecer novos horizontes e talvez se tornar um profissional menos “intolerante” à novas tecnologias.

Conclusão

Acredito que a era dos “serviços de auxilio ao desenvolvimento” veio para ficar. Por isso, é papel nosso, como desenvolvedores, conhecer as principais e escolher as que mais se aplicam aos nossos projetos e orçamentos. Quais serviços você usa e considera como essenciais? Ou você prefere configurar suas próprias ferramentas e ambientes? Deixe seus comentários.

Até a próxima!

Symfony - Fundamentos
Curso de Symfony - Fundamentos
CONHEÇA O CURSO
Deixe seu comentário

Desenvolvedor, autor e instrutor. Apaixonado por desenvolvimento de software e tudo ligado a área de tecnologia. É autor de cursos em diversos temas, como, desenvolvimento back-end, cloud computing e CMSs. Nas horas vagas adora estudar sobre o mercado financeiro, cozinhar e brincar com pequeno Daniel de 1 ano.