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 cloud computing que mal existiam, os frameworks ficaram mais moder, 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.
Curso C# - Estrutura de dados e Collections
Conhecer o cursoSurgimento 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 específico 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 de nós escolheriamos 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 crítica, 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 como o Github e Gitlab, 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 auxílio 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!