O desenvolvimento de software para startups, tem um papel fundamental neste tipo de negócio, uma vez que a maioria utiliza alta tecnologia no seu produto ou serviço. No entanto, o desenvolvimento precisa ser rápido, eficiente e caber no bolso do empreendedor, uma equação que parece impossível de fechar. Por isso, surgem muitas dúvidas sobre se internalizar ou terceirizar o time de desenvolvimento é o melhor para a Startup.
Como todo assunto complexo, não existe fórmula pronta (e desconfie caso alguém diga o contrário, provavelmente ele ou ela vai tentar te vender algo em seguida), o que existe é a decisão mais aderente ao contexto do seu negócio. Por isso, vamos ver as vantagens e as desvantagens de ambas as estratégias para você melhor embasar a sua escolha.
Equipe interna: quais as vantagens
Possuir um time de desenvolvimento dentro da empresa tem muitas vantagens. A principal delas é o grau de comprometimento, disponibilidade e integração da equipe. Uma Startup que tenha um CTO (Chief Technology Officer) normalmente tem alguém para pensar no desenvolvimento de software da empresa desde o momento que acorda até a hora de dormir, mesmo que efetivamente não dedique 100% do seu tempo no trabalho de desenvolvimento, especialmente no início em que a Startup ainda não fatura e os sócios precisam pagar as suas contas. Estar nessa posição envolve um enorme envolvimento técnico e emocional com o novo negócio.
A equipe interna normalmente é composta pelo CTO e os desenvolvedores sob o seu comando, e ambos devem estar fortemente integrados com as demais áreas da empresa, principalmente as áreas de vendas e relacionamento com o cliente, que tem um maior contato com o mercado e assim conseguem repassar diretamente os retornos recebidos. Dessa forma, a comunicação acontece sem entraves e os desenvolvedores conseguem alterar o seu roteiro de produto, focando nas demandas reais dos seus clientes, ajustando falhas no sistema, priorizando determinados recursos em detrimento de outros, entre outras ações. Portanto, uma das principais vantagens é essa flexibilidade em fazer alterações no desenvolvimento do produto de maneira muito ágil e guiada por informações coletadas no mercado, o que faz com que a solução esteja cada vez mais aderente ao público-alvo. O ciclo “construir – medir – aprender”, presente na metodologia Lean Startup de Eric Ries, exemplifica muito bem esse processo de aprendizado e agilidade constantes:
Por último, mas não menos importante, temos a questão da segurança. Em tempos em que o valor dos dados é cada vez mais maior e as notícias de vazamentos de informações mais frequentes, precisamos estar muito atentos para não entrarmos nas estatísticas. Quando o desenvolvimento de software acontece internamente, a Startup consegue proteger melhor os seus dados e evita que informações confidenciais caiam na mão de terceiros. Além disso, desenvolvendo a especialidade do produto em casa, a Startup tem maior controle sobre os processos e consegue gerenciar a propriedade do conhecimento.
Quem já desenvolveu assim?
- Amazon
- Paypal
- Salesforce
Ok, quero um time de desenvolvimento de software para minha startup! Espera, calma aí…
Embora o desenvolvimento de software em casa seja a maioria dos casos quando falamos de Startups, esse modelo de negócios apresenta algumas dificuldades que precisam ser avaliadas antes.
Uma das maiores dificuldades é a de encontrar bons profissionais disponíveis no mercado. Atualmente existe uma alta demanda por profissionais que saibam desenvolver software, o que torna a busca cada vez mais difícil. Podemos fazer uma analogia com o ato de pescar, o recrutador de talentos, assim como o pescador, precisa estar onde o peixe está e torcer para que não tenham muitos pescadores seu redor… Por isso, cuidado para não perder tempo excessivo que poderia estar sendo empregado melhorando a solução na busca por profissionais de tecnologia. Nesses casos, avalie seriamente a sua rede de contatos e o tempo estimado que teria que despender para encontrar um bom profissional. Depois, avalie o quanto o desenvolvimento é fundamental no seu produto ou serviço e verifique se a busca é válida. Se ele for o coração do negócio, talvez valha a pena gastar mais tempo procurando um excelente profissional para fazer parte do negócio, mas se o desenvolvimento for acessório, repense se o tamanho da busca faz sentido.
Além disso, precisamos considerar que desenvolvedores são profissionais caros, o que significa investir parte considerável dos recursos da Startup na área. O termo de vesting pode ser uma ótima solução no começo, mas não se pode escalar o time ampliando o quadro societário, portanto, caso opte pelo desenvolvimento interno de software, pesquise os salários de desenvolvedores e avalie se vale a pena financeiramente. Por último, também tenha em mente que contratos formais de trabalho têm menos flexibilidade e mais entraves burocráticos e financeiros em casos de rescisões e novas contratações.
Equipe terceirizada: as vantagens
As principais vantagens da terceirização são justamente a flexibilização e a redução de custos. Ao optar por essa escolha, não há obrigatoriedade de pagamento de encargos trabalhistas, como férias, rescisões, entre outros e, portanto, existe uma maior previsibilidade de custos. Caso o desenvolvimento de software não seja o coração do seu negócio, mas um fator a agregar, provavelmente a terceirização seja um bom caminho.
No entanto, não se deixe levar apenas pelo preço, pois a qualidade da entrega também é fundamental. Um dos maiores erros é o empreendedor contratar profissionais por baixo custo e depois ter em mãos uma solução muito aquém do imaginado. Ao contratar desenvolvedores tenha em mente sempre: velocidade – custo – qualidade. Na maioria das vezes, os terceirizados conseguem oferecer um bom custo benefício.
Exija transparência no processo de desenvolvimento de software. Ferramentas como Jira, Freedcamp ou Tracker permitem que você acompanhe o trabalho dos desenvolvedores, quanto tempo eles dedicam a uma tarefa, quanto tempo estimam para fazer uma nova funcionalidade, relatórios diários, etc. Elas também possibilitam que você tenha maior envolvimento no processo, uma vez que a terceirização por natureza o deixa mais alheio do andamento do desenvolvimento. Dessa forma, embora o empreendedor ou a empreendedora ainda não tenha o mesmo controle de uma equipe interna, ele ou ela aumenta a sua capacidade de gerenciar e propor mudanças.
Além disso, os prestadores de serviços de desenvolvimento de software já tem experiência na área, o que facilita nos casos em que o empreendedor tem nenhum ou muito pouco conhecimento de TI. Dessa forma, uma das suas preocupações principais não precisa ser delegar as funções e organizar o time. Por isso, de novo: tudo depende de qual é a sua estratégia! Qual é o seu produto ou serviço e a importância do software? Reflita! Se for de extrema importância, o empreendedor deve se preocupar e estar em cima do time de desenvolvimento. Se for mais secundário, faz sentido terceirizar e se focar mais no que é realmente essencial ao negócio.
Quem já desenvolveu assim?
- Alibaba
- Skype
- GitHub
Desvantagens de terceirizar
A desvantagem da terceirização é a falta de controle e internalização dos processos. O gerenciamento das atividades é externo à própria empresa, por isso o acompanhamento e a cobrança ficam sob a responsabilidade de terceiros. Como dito anteriormente, as informações são menos compartilhadas e, se por um lado isso deixa a organização mais livre para se dedicar às outras atividades do negócio, isso impede que a Startup absorva aquele conhecimento/habilidade e continue dependente dos serviços terceirizados. Por isso, como dito anteriormente, deve-se levar em conta se o desenvolvimento é uma atividade prioritária ou não. Se sim, terceirizar a atividade para dar prioridade a outras atividades não parece ser a melhor estratégia.
Além disso, existe maior dificuldade em propor mudanças no roteiro de desenvolvimento, pois existe um acordo prévio de entrega entre o prestador de serviços e o contratante. O empreendedor deve procurar incluir possíveis alterações no roteiro previamente. Essa falta de flexibilidade é especialmente prejudicial às Startups, que estão no momento inicial de busca por um modelo de negócios escalável e fazendo testagens no produto, porque não conseguem incorporar rapidamente os aprendizados no seu produto.
Desenvolvimento de software para startups: o resumo
A imagem acima é uma adaptação feita a partir da publicação de Dasha D. no RubyGarage
Conclusão
Podemos concluir que não existe nenhuma “receita de bolo” quando estamos falamos de desenvolvimento de software de novos negócios, mas sim a estratégia mais adequada dada as especificidades do produto ou serviço que estamos tentando oferecer. Em primeiro lugar, deve-se refletir se o desenvolvimento é ou não parte essencial do negócio. Isto é, o desenvolvimento está diretamente ligado à proposta de valor do negócio? Sem o desenvolvimento, não conseguimos entregar o que estamos propondo? Sem ele o produto ou serviço seriam inviabilizados? Ou o desenvolvimento é acessório e está ali para melhorar o que já existe ou pode existir sem ele? Essas questões são as primeiras que se deve ter em mente ao optar por terceirizar o desenvolvimento ou fazê-lo em casa.
No casos em que já se tem uma equipe contratada, é preciso analisar o quão alocada com projetos e entregas correntes ela está. Caso não esteja totalmente alocada, faça o desenvolvimento em casa. Caso esteja, verifique com o setor financeiro se seria possível incluir novos funcionários na folha de pagamentos. Caso a resposta seja positiva, contrate novos talentos e faça o desenvolvimento em casa! Mas se não houver recursos para incluir novos funcionários na folha de pagamentos, terceirize! A questão financeira também vale para quem ainda não tem uma equipe formada, verifique se a empresa pode arcar com os custos de recrutamento e salários de desenvolvedores. Se sim, contrate. Caso seja inviável, terceirize.
*Este conteúdo foi produzido por Catharina Becker