Outsourcing

Quando nos deparamos com algum problema que precisa ser resolvido ou ideia de um novo negócio, e vislumbramos envolver o desenvolvimento de um sistema e/ou aplicativo (bem como a sua concepção e design), temos uma decisão importante para tomar: vamos terceirizar o desenvolvimento do software ou vamos internalizar pessoas desenvolvedoras e designers para tocar esse processo?

Esta resposta não é simples, nem direta, muito menos universal!

Por um bom tempo, a opção padrão seguia a linha de internalizar um time inteiro para o desenvolvimento de diferentes atividades, incluindo marketing, negócio, design, tecnologia… Porém, com a internacionalização das comunicações, a terceirização (ou tão falado Outsourcing) começou a ganhar espaço dentro da execução dessas tarefas e vem numa crescente nas últimas décadas, movimentando [só em 2019] $ 92.5 bilhões de dólares (~R$ 518,5 bilhões de reais) de acordo com Statista. Mas isso não significa que essa seja a melhor saída sempre.

A resposta em si depende de algumas variáveis como orçamento, prazo, tipo do projeto, maturidade da empresa, a organização e composição do seu time (talvez ele nem exista), disponibilidade de recursos, entre outras.

Conhecer essas variáveis e como elas se relacionam com o projeto e seus objetivos auxilia (e muito!) a tomada de decisão. Assim, gestores e gestoras passam a enxergar com mais clareza como funciona o processo de terceirização e de contratação de um time interno, bem como vantagens e desvantagens de cada um deles.

Orçamento e Prazo

Orçamento e prazo são variáveis que trazem consigo os maiores desafios de um projeto de desenvolvimento de software (na verdade, para quase todos os tipos de projeto). E, não surpreendentemente, estes aspectos são pontos de partida para decisão de se terceirizar ou internalizar um time.

Para ajudar a entender melhor os impactos dessas duas variáveis nessa decisão, imaginemos o seguinte cenário:

  • Precisa-se lançar um aplicativo para o mercado em abril de 2021 (três meses de execução, a partir da data de publicação deste artigo) e, atualmente, o time interno da organização não consegue se dedicar ao desenvolvimento dessa solução. Nesse caso, é preciso decidir entre contratar novas pessoas desenvolvedoras ou terceirizar esse desenvolvimento com uma empresa .

Numa situação dessas, podemos imaginar que internalizar time inteiro e conseguir cumprir esse prazo seria um desafio (e tanto!). Afinal, realizar um processo seletivo, contratar pessoas, fazer onboarding e conseguir que elas produzam e entreguem o projeto dentro do prazo determinado provavelmente levaria mais de 3 meses (poderíamos até generalizar aqui e dizer que, com certeza, levaria mais que esses 3 meses). Por outro lado, contratar uma empresa terceira poderia agilizar esse processo, tornando mais viável o cumprimento desse prazo. Certamente você conseguiria economizar o tempo do processo seletivo e reduzir o tempo de onboarding (empresas especialistas possuem pessoas desenvolvedoras com experiência para suprir tais demandas).

Portanto, se você tem um prazo curto e seu time interno não consegue atender a demanda no momento, considere fortemente terceirizar o processo de desenvolvimento do software.

Agora, imaginemos uma outra situação:

  • O orçamento para desenvolver uma nova funcionalidade de um sistema web é limitado. Hipoteticamente, vamos considerar o valor de $ 50,000.00 e que este investimento é compatível com o escopo.

Caso a opção seja contratar um time próprio, precisamos ter em mente que o custo médio anual de uma pessoa desenvolvedora é de $ 89,580.00, de acordo com a US News (dados de 2018). E não estamos considerando o custo envolvido no processo de contratação, benefícios e stocks. Ou seja, se a organização não tiver flexibilidade para utilizar o recurso em outras atividades ou oportunidade de aumentar o escopo/orçamento ao decorrer do projeto, firmar compromissos com um time interno pode não ser viável financeiramente.

Nesse caso, terceirizar uma equipe trará mais flexibilidade, permitindo contratar temporariamente e alterar facilmente o tamanho do seu time [para mais ou para menos] de acordo com as demandas do projeto, sem necessariamente firmar vínculos trabalhistas e de longo prazo.

Ou seja, se você possui um orçamento limitado, considere a opção de terceirização como uma boa saída na sua tomada de decisão.

Em resumo, se você tem orçamento limitado e/ou prazo curto, encare a terceirização de um time como uma excelente opção. As empresas contratadas começarão a trabalhar e apresentar resultados em pouco tempo (caso sejam especialistas); você não terá encargos trabalhistas; e, terá flexibilidade para aumentar e diminuir o time com facilidade, controlando melhor o orçamento do projeto. Contudo, quando as variáveis orçamento e prazos não são um fator relevante, escolha sempre a opção que você considera/acredita que trará menos problemas e estresse para o desenvolvimento do projeto.

Tipo do projeto

Outro ponto a se considerar para tomada de decisão entre terceirizar ou contratar um time próprio para o trabalho é o tipo do projeto que será realizado.

Mais uma vez vamos exercitar nossa imaginação para nos ajudar a materializar essa tomada de decisão:

  • Um empresa precisa desenvolver um MVP (Mínimo Produto Viável) ou POC (Prova de Conceito) para um novo contexto e verificar a viabilidade de incorporar essa(s) nova(s) funcionalidade(s) ao negócio.

Nesse tipo de situação, na qual estamos lidando com um ambiente de incertezas e validações, o ideal é evitarmos comprometimentos de longo prazo. Afinal, estamos partindo de hipóteses! Portanto, terceirizar esse processo de concepção e desenvolvimento de software, provavelmente trará melhores resultados para o negócio. Claro, partindo do pressuposto que a empresa não possui um time interno, ou que o time interno está alocado no escopo natural do produto (que precisa evoluir constantemente e estar sempre funcional para os usuários). Se houver time interno e alocação disponível, a melhor ideia certamente é seguir com ele (pelo menos inicialmente).

Organização do seu time

Esse talvez seja um dos pontos mais subestimados ao avaliar se o melhor caminho é internalizar ou terceirizar um time e, certamente, não deveria. Principalmente por conta dos fatores habilidade e experiência.

Estas características diferenciam bastante as pessoas desenvolvedoras nas situações mais complexas. Portanto, caso você tenha no seu roadmap/backlog atividades que seu time possui pouca (ou nenhuma) experiência, considere terceirizar esta demanda com uma empresa que possua as credenciais necessárias para resolvê-la. Manter a demanda com o time próprio pode custar bastante tempo (e, consequentemente, dinheiro), por envolver a execução de uma atividade que não se enquadra nas especialidades dessa equipe no momento.

Outro fator importante sobre a organização do time envolve a stack/tecnologia selecionada. Imagine o seguinte:

  • É preciso construir uma funcionalidade em Python para determinada situação do negócio e o time interno atual é especialista em Java.

Provavelmente, terceirizar esta atividade seja a decisão mais acertada. Não que seja inviável para o time atual cumprir o objetivo, mas haverá uma curva de aprendizado que exigirá um investimento (de tempo e dinheiro novamente). E, a menos que esteja nos planos da empresa adquirir experiência com Python ou outra tecnologia, é melhor deixar essa tarefa com uma empresa especializada.

Ou seja, se você quer ter acesso a desenvolvedores mais experientes e/ou com especialidades diferentes das quais seu time atual trabalha, desenvolver essa demanda com uma empresa terceirizada pode ser o melhor para o negócio.

Terceirizar ou Contratar?

Levando em consideração todos os elementos que discutimos anteriormente, podemos considerar de maneira mais pragmática que:

Terceirizar será uma boa escolha quando:

  • Você possui um orçamento limitado;
  • Você precisa iniciar o projeto com mais velocidade;
  • Você quer acelerar o time-to-market;
  • Quer reduzir encargos administrativos e trabalhistas;
  • Você precisa ter acesso a habilidades/experiências que você não possui no time atualmente.

Contratar um time próprio cairá bem quando:

  • Seu projeto ou negócio exige cooperação e discussão presencial constante;
  • Você possui tempo para rodar um processo seletivo adequado;
  • Você possui capacidade no seu time de avaliar o desempenho e habilidades das pessoas desenvolvedoras;
  • Você possui um orçamento mais livre e flexível para realizar os investimentos necessários.

Importante ressaltar que são vários os fatores que influenciam a decisão entre terceirizar e montar um time interno. Considere os fatores que introduzimos por aqui, sendo dois deles pontos chaves dessa decisão: tempo e orçamento. Além deles, conheça os prós e contras de ambas as práticas e anote os porquês da decisão que você está tomando, isso te trará mais confiança para o processo decisório.

A melhor escolha? Ela sempre vai depender do contexto em que você está no momento. Evite se crucificar ou imaginar como o projeto teria acontecido diferente caso você tivesse terceirizado ou caso você tivesse contratado pessoas para o seu time interno.

Na maioria das situações, inclusive, o sucesso final do projeto não é determinado pelo fato de se terceirizar ou contratar novos membros para o seu time. Existem diversos outros fatores relacionados ao sucesso do projeto e, se tudo for bem e dentro do planejamento, contratar um time ou terceirizar sempre trará bons frutos.

E, caso ainda tenha alguma dúvida sobre o processo ou precise de alguma ajuda, entre em contato conosco! Na Capyba, construímos relacionamentos de longo prazo com nossos clientes sempre buscando o melhor para seus negócios em todo o seu ciclo de vida. Nosso time está pronto para te ajudar! Conheça nosso trabalho e nossos serviços!