Publicado em 11 de outubro de 2019
Publicado em 11 de outubro de 2019
Esse texto é para buscar respostas à uma situação que ouvi e que me deixou intrigado.
Recentemente ouvi um caso de desenvolvimento de software de uma empresa que esta passando de: status de startup para empresa do tipo: "madura" e que me chamou bastante atenção por conta da crítica que foi feita sobre a qualidade do código fonte do seu produto no momento de crescimento da empresa.
A situação é a seguinte: a empresa tem um produto de software (App) que foi desenvolvido por uma equipe interna que tinha a missão de "levantar" a operação o mais rápido possível. Nesse momento, o que menos importava era: o método de desenvolvimento, a documentação, a qualidade do código fonte, se todos os testes foram feitos, se o sistema estava escalável e com capacidade de processamento suficiente, etc... O que precisava ser feito era colocar o APP e a operação "rodando". E assim foi feito. Vale tudo nesse momento! A empresa esta no "ar"! Software lançado, operação "rodando", cliente comprando, etc... Tudo em perfeito estado de "time to market"!
Após um período de funcionamento e validação da sua proposta de valor, essa empresa sentiu a necessidade de melhorar e estruturar seu aplicativo, adicionando, além de novas funcionalidades, questões como usabilidade, arquitetura do software mais robusta, redimensionar sua capacidade de processamento, aumentar a escalabilidade para comportar mais clientes simultâneos, etc, e para que tudo isso pudesse ser feito de forma organizada e estruturada, lançou mão de sua equipe interna e buscou uma grande empresa de desenvolvimento de software para dar esse suporte. Afinal de contas, agora é necessário preservar o que já foi conquistado.
O software teve que passar pelo processo de "refatoração" para ajustes dos pontos mais críticos e agora o tempo de desenvolvimento de novas features não é mais o mesmo de antigamente, e aí nasceu a "crise".
O cliente, anteriormente falava com o seu time para colocar mais uma funcionalidade ("é só botar um if aí", "em meia hora você faz isso aí, né?") e o time assim o fazia, mas agora, com a nova empresa, isso não acontece mais. Agora existe um processo e um método. O cliente esta muito bravo dizendo que sua capacidade de entrega caiu bastante e que negócios estão sendo perdidos.
Aí surgiram as minhas dúvidas:
Qual é o momento de uma startup, que possui um software como seu produto principal, deixar de ser um bando de "gente" desenvolvendo de forma desorganizada para ser uma área de desenvolvimento estruturada?
Precisamos ter software bem feito em contrapartida ao tempo de resposta do mercado?
Qual é o limite do desenvolvimento do código a qualquer custo?
Qual é o momento de transformar o seu produto "caseiro" em um produto de software organizado, com método, com processo, com arquitetura, etc?
Quando uma empresa considerada "startup" deixa de ser uma "startup"? Quando descemos para o "play"?
Qual é o momento de adicionar ao seu código estrutura de uma grande empresa?
Vale a pena ser uma empresa grande?
Já ouvi vários debates sobre o impacto que um software causa por conta de algum problema técnico nas vendas da empresa. Discussões calorosas são travadas sobre como melhorar o código, como diminuir as mudanças em produção, em como controlar, em como melhorar as alterações no produto, etc...Discussão sem fim! Não se pode brincar mais com o faturamento conquistado!