Aproveitar o software desenvolvido internamente para trazer inovação ao seu mercado ou para criar operações mais eficientes pode ser um forte impulsionador de crescimento. Mas a decisão de comprar versus construir é crítica. Se comprar o software de que você precisa simplesmente não for possível, construí-lo pode fazer sentido. Mas não há como negar que é um caminho difícil, e só vale a pena se o lado positivo for grande. Antes de construir, certifique-se de entender os custos reais para ter sucesso a longo prazo e apenas embarque nos esforços de escrita de código dos quais você tem certeza de que sua empresa é capaz. O autor discute duas empresas de médio porte que “enrolaram seu próprio código” com sucesso e apresenta três competências necessárias para isso.
Toda empresa precisa e usa software, e alguns são um fator importante para o sucesso dos negócios. Mas, à medida que as pequenas empresas crescem para o médio porte, podem surgir lacunas de desempenho de software. Encontrar novas soluções de software pode corrigir problemas e ineficiências e ajudar as equipes a desenvolver produtos e serviços inovadores. Mas os CEOs de empresas de médio porte geralmente enfrentam uma escolha difícil: atualizar por meio de um fornecedor ou desenvolver (também conhecido como “roll”) seu próprio código.
É amplamente entendido que as atualizações de software são sempre caras e muitas vezes disruptivas. Às vezes, eles falham completamente ou não cumprem sua promessa original. Isso significa pouco ou nenhum retorno sobre o dinheiro gasto. Mas, às vezes, simplesmente não há software de prateleira disponível para resolver o problema exclusivo de uma empresa.
Para pequenas empresas, geralmente é mais fácil (e quase sempre mais barato) fazer soluções manuais quando o software operacional não está à altura da tarefa. Mas as empresas de médio porte podem perder muito dinheiro e impedir seu crescimento devido às ineficiências que inevitavelmente surgem de tais soluções alternativas. E esses processos manuais torturantes podem impedir que as empresas aproveitem as oportunidades em tempo hábil. Para essas empresas, a codificação personalizada é uma opção viável. (Grandes empresas com bolsos profundos podem construir equipes de desenvolvimento de software e muitas vezes têm talento a bordo para fazê-lo.)
A maioria das empresas de médio porte tem um “superusuário” que é bom em ajudar a todos com os recursos já incorporados ao software (como redatores de relatórios, painéis etc.). E a maioria dos softwares de planejamento de recursos empresariais (ERP) modernos tem camadas que permitem a personalização – geralmente uma camada em que os revendedores de valor agregado (VARs) podem fazer alterações e uma camada de cliente para personalizações de clientes. Se uma empresa de médio porte puder obter o que precisa com isso, fantástico. Mas e se não puder?
Muitas empresas de médio porte ficam paralisadas tentando decidir se compram um novo software ou tentam escrever seu próprio código, mesmo que isso signifique conectar sistemas diferentes. Outros tentam terceirizar o problema para uma empresa de software. Embora a criação de código de terceirização possa ser parte de uma solução, fazê-lo com sucesso requer um gerenciamento de projeto rigoroso — um recurso que nem todas as empresas de médio porte têm.
Enquanto isso, o relógio está sempre correndo. As eficiências que poderiam ser obtidas com software não são recuperadas, corroendo as margens. As oportunidades de mercado são perdidas para os concorrentes. Como os líderes de empresas de médio porte podem determinar quando faz sentido construir seu próprio software?
Quando rolar seu próprio código
É ineficiente desenvolver programas personalizados para as principais funções de negócios, como contabilidade, folha de pagamento, impostos sobre vendas, estoque e gerenciamento de relacionamento com o cliente (CRM), e tantas opções estão prontamente disponíveis. Mas se não houver software que faça o que você precisa, talvez você não tenha escolha a não ser lançar o seu próprio, especialmente se houver uma oportunidade de alto valor a ser aproveitada ou uma eficiência significativa a ser obtida. (Criar seu próprio código só vale a pena se houver uma grande recompensa; sem um ROI forte, esqueça.)
Por exemplo, em 2007, a BF&S Manufacturing estava ganhando força como fabricante de contrato para componentes complexos e de baixo volume - mas críticos - para verticais aeroespaciais, militares, médicos e industriais. Seus clientes queriam supervisionar o trabalho, mas a BF&S estava sediada no México, e muitos de seus clientes não queriam investir tempo e dinheiro para viajar e ficar lá.
A BF&S dependia de um relacionamento próximo com seus clientes, muitas vezes recorrendo a seus engenheiros para resolver problemas de produção. Mas a distância e a fronteira tornavam isso cada vez mais difícil. Compartilhamento de tela e câmeras por si só não seriam suficientes para seus clientes, e a BF&S temia perdê-los para fabricantes mais próximos, mesmo que essas empresas cobrassem mais. A BF&S precisava ser capaz de transportar dados de produção valiosos de seu sistema ERP principal para um formato que seus clientes pudessem usar.
O CEO da BF&S, Carlos Fernandez, olhou em volta, mas não conseguiu encontrar uma solução para comprar. Em vez disso, ele diz: “Iniciamos um programa de software que forneceria dados em tempo real 24 horas por dia, 7 dias por semana” sobre as compilações de produtos da empresa. Tudo começou com o “cara do computador”, como Fernandez o chama, recém-saído da faculdade, construindo uma ferramenta para rastrear estoques de matérias-primas, trabalho em andamento e produtos acabados e fornecer visibilidade interna e externamente.
Foi concluído e usado pela primeira vez em 2010. Os clientes adoraram. Fernandez começou a aumentar a equipe de desenvolvimento de software no México, apoiando quatro instalações no estado de Sonora com um total de 500 funcionários. Os clientes agora podiam ver vídeos das estações de trabalho, o progresso de seus produtos em cada etapa, os estoques de matérias-primas e quem estava trabalhando em seu trabalho e todas as histórias e especificações do produto.
Essa codificação personalizada exigia um profundo conhecimento dos negócios da empresa e das necessidades de seus clientes. Originalmente chefiada por Fernandez, a equipe de engenheiros e líderes de operações agora planeja e gerencia o suporte e desenvolvimento contínuos da ferramenta.
Hoje, embora Fernandez não afirme que o código construído em casa de sua empresa é um grande diferencial competitivo, ele acredita que dá aos seus clientes o que eles querem e o que ele não poderia fornecer por meio de software de prateleira: transparência e uma medida de controle sobre a produção de seus produtos.
A jornada e os custos
Rolar seu próprio código não é simples nem barato. Os engenheiros de software são muito bem pagos. Nos Estados Unidos, isso significa salários de seis dígitos. Os custos de encontrar e contratar engenheiros geralmente envolvem empresas de busca, que cobram de 15% a 30% do salário do primeiro ano e, nos últimos anos, até elas têm lutado para encontrar bons candidatos. Além dos custos de sourcing, você deve entrevistar e avaliar candidatos quanto a habilidades técnicas, treinar e integrar novas contratações e fornecer um ambiente digital para desenvolvimento e teste.
E então você precisa gerenciar as tarefas de desenvolvimento de código, garantindo que sejam produtivas. À medida que o departamento de desenvolvimento ultrapassa cinco ou seis engenheiros, você precisará de um executivo de DevOps para supervisioná-lo – se os programadores forem subgerenciados, dias e semanas podem ser perdidos enquanto a produtividade despenca.
E você não pode simplesmente contratar desenvolvedores e gerentes e esperar que a mágica aconteça. Os engenheiros fazem o que a empresa manda. Eles prosperam na clareza. Portanto, você precisará dedicar tempo para se dedicar às oportunidades de sua empresa e precisa ser capaz de descrever os recursos, funções e opções que deseja. Esse roteiro de software deve ser concluído antes que seus engenheiros comecem a codificar. Deixe de fazer tudo isso bem e a tempo, e você terá talentos muito caros sentados em suas mãos, provavelmente procurando outros lugares para trabalhar.
Por fim, ao desenvolver código personalizado, você precisa mantê-lo. O software quebra o tempo todo. Os hackers encontram continuamente novos vetores de ataque. Novas necessidades surgem e os usuários exigem modificações. Mesmo as linguagens de programação envelhecem, então a cada cinco a 10 anos, o software pode precisar ser reescrito. Os custos não param de chegar.
No entanto, embora a codificação personalizada seja um desafio, pode ser um fator crucial e vale a pena para algumas empresas que estão inovando soluções para seus clientes.
Corefact (um cliente Mastering Midsize) é um provedor de serviços de marketing de serviço completo para os setores imobiliário e de hipotecas. Em 2005, a empresa teve uma nova ideia. Se um corretor de imóveis pudesse enviar um cartão postal para um cliente em potencial com um URL exclusivo que levasse o cliente a um site com sua própria casa no centro, isso poderia ser extremamente atraente e um possível divisor de águas. Os clientes da Corefact, corretores de imóveis, ficaram empolgados, não apenas com o potencial apelo para seus clientes, mas também com todos os dados que esse tipo de engajamento lhes forneceria.
Corefact couldn’t buy software to do this — it was new. Corefact’s founder and CEO Chris Burnley had always been a technologist. Prior to Corefact, he started several technology-driven companies. Thanks to this technological competency, the company found a way to print variable data — unique URLs — on postcards and then move them on to web servers that would wait for a homeowner to type in the URL, after which a new, unique website would be created instantly. By 2006, the software was launched with a single engineer.
Hoje, a equipe de engenharia cresceu para 10, localizada nos EUA e no exterior. Eles criaram um código personalizado que não é apenas voltado para o cliente, mas que também reúne com eficiência milhares de pedidos diários por meio da entrada de pedidos, gráficos e pré-impressão e automatiza o fluxo eficiente de trabalho nas impressoras e no acabamento.
Burnley diz: “Nosso conceito original nos colocou em uma rampa rápida de crescimento, mas nossa capacidade de inovar com tecnologia continua a nos impulsionar. Claro que o investimento em engenheiros é enorme e contínuo, mas a lista de oportunidades é longa.”
Mas eles não constroem todos os softwares que usam. Quando se trata de atualizar seu ERP, eles escolheram um produto padrão da Netsuite, no qual estão conectando seus sistemas de gerenciamento de pedidos feitos por eles mesmos. Da mesma forma, eles abandonaram recentemente um CRM feito por eles mesmos em favor do Salesforce, mantendo sua equipe de desenvolvimento focada na criação de software que não podem comprar.
As três competências que você precisa para criar as suas próprias
Os exemplos que discuti exigem quantidades diferentes das três competências a seguir, dependendo da complexidade de seus requisitos de código personalizado:
Traduzindo necessidades de negócios em projetos de software.
Identificar as necessidades do negócio — e suas soluções — é um processo necessariamente iterativo, tendo em mente as limitações do software existente, bem como seus recursos e dados disponíveis. Isso não é desenvolvimento de software nem gestão de negócios; é uma forma de engenharia onde uma perna está no negócio e a outra em uma compreensão completa de como seus sistemas de software atuais funcionam.
Essa competência pode ser detida por um executivo de uma empresa de médio porte ou por uma pequena equipe à medida que a organização cresce. O que entra é um problema ou oportunidade, o que sai é uma série de etapas detalhadas para criar e manter o código: exatamente quais dados devem ser usados e qual lógica ou processos devem ser usados para produzir uma solução. Sem todas essas etapas, tentar criar um código personalizado não faz sentido.
Desenvolvimento de código.
Dependendo das circunstâncias, uma empresa de médio porte pode ter um programador ou um departamento de engenharia completo. Por exemplo, na minha empresa anterior, Dave, um jovem funcionário do armazém que codificava como hobby, subia de vez em quando para pequenos projetos de codificação. Para oportunidades maiores, o desenvolvimento de código pode se transformar em uma série de equipes de engenharia com diferentes habilidades e focos de trabalho em um departamento completo de DevOps, liderado por um vice-presidente ou diretor de tecnologia.
Operações de software.
O lado operacional do gerenciamento de aplicativos personalizados é caro — você precisa manter a integridade do código personalizado e garantir que seus processos, pessoas e ferramentas sejam mantidos atualizados. Os elementos das operações incluem suporte ao usuário/help desks, treinamento, gerenciamento de riscos de segurança, correção de bugs, personalização adicional contínua, atributos de tempo de atividade e desempenho e muito mais.
Aproveitar o software desenvolvido internamente para trazer inovação ao seu mercado ou para criar operações mais eficientes pode ser um forte impulsionador de crescimento. Mas a decisão de comprar versus construir é crítica. Se comprar o software de que você precisa simplesmente não for possível, construí-lo pode fazer sentido. Mas não há como negar que é um caminho difícil, e só vale a pena se o lado positivo for grande. Antes de construir, certifique-se de entender os custos reais para ter sucesso a longo prazo e apenas embarque nos esforços de escrita de código dos quais você tem certeza de que sua empresa é capaz.