Em abril deste ano, uma renomada instituição de ensino superior, presente em todos os estados brasileiros, se viu às voltas com um problema que provocava o cancelamento de contratos de estudantes prospectados para cursos de graduação e pós-graduação.
O ERP (Enterprise Resourcing Planning) utilizado pela instituição não era tão dinâmico quanto poderia ser, o que abria espaço para que alguns alunos desistissem dos cursos em meio à burocracia durante a assinatura do contrato. Para piorar, muitos acabavam sendo prospectados por outras entidades.
O que a instituição de ensino precisava era modernizar seu ERP educacional, desenvolvido por uma software house, para que o processo de contratação se tornasse mais ágil. A saída foi acionar uma fábrica de software, que desenvolveu uma solução que possibilitava a assinatura do contrato via certificado digital e a acoplou ao sistema de gestão empresarial utilizado pela instituição. Isso reduziu a papelada, o tempo gasto para consolidar as negociações e, logicamente, a fuga de alunos para a concorrência.
Pode apostar que houve muito estresse e muito tempo perdido em especulações e apostas inúteis, até que a instituição de ensino encontrasse a fábrica de software que apresentou a melhor saída para um crise que poderia se agravar ainda mais.
Mas, afinal, o que é essa tal fábrica de software, procurada por empresas dos mais variados nichos e portes, afoitas por modernizar seus negócios sem grandes custos? Como ela funciona e quais são suas vantagens e desvantagens? Continue focado, pois responderemos essas e outras perguntas sobre o tema nas próximas linhas.
Uma espiadinha no passado para entender o presente
Vamos voltar um pouquinho no tempo. Segundo Gunther Lenz, arquiteto de informação da Microsoft, a expressão “software factory” foi utilizada pela primeira vez no final da década de 1960 por RW Bremer, da multinacional General Electric e por MD McIlroy, da AT&T, a companhia americana de telecomunicações. Enquanto Bremer destacou o uso de ferramentas e controles padronizados, McIlroy focou na reutilização sistemática de código ao criar novos sistemas de software. Mais tarde, em 1969, a Hitachi, hoje um conglomerado multinacional sediado no Japão, utilizou o termo “kojo” (que, em japonês, significa “fábrica”), para nomear uma instalação de desenvolvimento de software. Vale lembrar que, naquela época, a mão de obra qualificada para este setor era bem escassa.
O que tanto Bremer quanto Mcllroy queriam era encaixar o desenvolvimento de software nos moldes de uma linha de produção industrial, fabricando componentes e padronizando processos. Eles perceberam que por mais que no final das contas os programas fossem diferentes, alguns recursos eram comuns a vários projetos. Isso poderia baratear e agilizar a produção, que passaria a ocorrer em escala, como acontece com veículos e outras máquinas. O que Henry Ford fez pela indústria de automóveis em 1914 poderia ser feito pela indústria de tecnologia décadas depois.
O que é uma fábrica de software?
Uma fábrica de software é uma empresa de tecnologia que fornece softwares e aplicativos, organizando-se para isso como indústrias que produzem através de linhas de montagem. Recursos, processos e metodologias são padronizados e reutilizados em diferentes projetos, gerando economia de tempo, dinheiro e aumentando o nível de qualidade. É uma forma de utilizar o conhecimento oculto dentro de um software fora do escopo original.
Uma visão sobre o mercado de software
Para nos aprofundarmos no assunto, temos que considerar um crucial aspecto do mercado: desenvolver software não é algo barato ou rápido. Por trás de um ERP como o citado no início deste artigo, há mão-de-obra especializada, investimento em tecnologia, infraestrutura de hardware e software e outras particularidades que devem ser levadas em conta pelas empresas interessadas. Os custos podem pesar ainda mais quando pensamos em pequenos e médios empreendedores.
Foi justamente a tentativa de encontrar uma saída para aliviar a pressão imposta por pequenos prazos e altos custos que fez com que empreendedores da área de tecnologia buscassem o modelo de fábrica de software para manter a competitividade.
Antes que o modelo fosse desenvolvido, algumas perguntas começaram a pipocar na cabeça de algumas pessoas envolvidas com o mercado de tecnologia.
- Por que todos os softwares precisam ser desenvolvidos do zero, em um processo praticamente artesanal, independentemente da tecnologia utilizada, sendo que diversos recursos são comuns?
- Por que não reutilizar ou reaproveitar os recursos comuns a vários softwares e aplicativos para ganhar agilidade e segurança no processo, tendo em vista que os mesmos já foram testados em outros projetos?
- E por que não montar um estoque com os componentes que se repetem em projetos semelhantes, evitando gastos extras com um novo desenvolvimento a partir do zero?
Esses questionamentos foram lenha na fogueira do mercado de tecnologia, que logo percebeu que era possível industrializar o desenvolvimento de software, gerando economia a partir da criação de vários sistemas semelhantes, mas que gerassem produtos finais únicos e exclusivos.
Mas o que poderia ser reutilizado e o que seria criado artesanalmente?
O trabalho vai além da reutilização do código-fonte
Os desenvolvedores de uma fábrica de software têm uma tarefa crucial que é analisar o que pode e o que não pode ser reutilizado sistematicamente. Em outras palavras, a cada nova entrega, os profissionais devem identificar quais partes são comuns a outros projetos e quais são variáveis. Isso permite ampliar o “estoque” da fábrica, além da oferta de serviços.
Mas o que seriam essas “partes”, quais poderiam ser reaproveitadas e quais seriam exclusivas em um projeto como a criação de um aplicativo móvel ou um software?
Para exemplificar, temos o design como o elemento mais fácil de identificar como exclusivo em um projeto. Reutilizar o design de um sistema de monitoramento ou de gestão, para citar alguns exemplos, seria pedir para arrumar encrenca e se queimar no mercado. Além do design, também podemos elencar a forma de implantação e a execução como elementos exclusivos. Já no grupo de aspectos que podem ser reutilizados, temos trechos de códigos-fonte, scripts e configurações.
Como uma fábrica de software funciona?
Basicamente, uma fábrica de software recebe a demanda, considera os objetos que possui em “estoque”, os processos que já utiliza, metodologias que domina, elabora um projeto e apresenta ao cliente, prevendo custos e prazos. Quanto maior o “estoque” da fábrica, menor será o custo e menor será o tempo de entrega.
Pense numa linha de montagem automotiva capaz de produzir cinco veículos diferentes. No entanto, chassi, carroceria e outras partes são comuns a todos. Colocando dessa forma, fica fácil perceber que não se trata apenas de replicar a mesma solução exaustivamente, como um parafuso ou uma caneca. Há customizações, peculiaridades e personalizações que tornam alguns projetos únicos.
Este exemplo é muito usado para explicar o que acontece numa fábrica de software que utiliza conceitos da economia de escopo (e não apenas de escala) para conseguir, com sucesso, reutilizar componentes e objetos.
Entenda que um determinado produto da “linha de montagem” da fábrica contém todos os recursos comuns, alguns variáveis e outros exclusivos ou personalizados.
Tudo isso não quer dizer, no entanto, que uma fábrica de software seja capaz de absorver recursos para produzir todos os tipos de programas, aplicativos e sistemas possíveis. O escopo deve ser limitado, para que os padrões que sustentam a estrutura arquitetônica sejam sólidos e confiáveis, mantendo-a eficiente e de alto nível. E para funcionar, o trabalho precisa ser organizado em etapas interdependentes e estrategicamente planejadas no processo.
Se a essa altura, cenas do clássico “Tempos Modernos” estiverem desfilando na sua mente, não se assuste. Qualquer semelhança não é mera coincidência.
Etapas do trabalho
Vamos tomar como base a organização da ITSS Tecnologia, que possui uma fábrica de software muito bem consolidada, capaz de atender clientes de diferentes portes e setores. A ITSS Tecnologia estruturou a produção de softwares em etapas que vão desde a análise minuciosa dos negócios do cliente até a avaliação do resultado final, tendo como meta a satisfação integral dos usuários da solução desenvolvida. As etapas são:
Análise de negócios
Consultores dedicam-se a conhecer profundamente a empresa e seus processos. Essa é a única maneira de desenhar uma solução adequada para as necessidades do cliente.
Coleta de informações
Nesta fase, os analistas recolhem as informações com um olhar crítico para o problema indicado pelo cliente. O objetivo é ter dados que possam fundamentar uma solução definitiva para os problemas.
Arquitetura e desenvolvimento de sistemas na fábrica de software
Arquitetos de sistemas atualizados nas principais plataformas e ferramentas de desenvolvimento se debruçam sobre os resultados das análises anteriores para planejar e estruturar um novo sistema da forma mais eficiente e profissional. Trabalhando com designers e desenvolvedores, eles podem criar uma plataforma capaz de agregar maior valor ao negócio.
Testes, homologação e lançamento
Os “testers” da ITSS Tecnologia são dedicados a validar cada etapa dos softwares criados. No momento da homologação, o trabalho é ainda mais detalhado para um lançamento impecável da solução.
Suporte e customer success
O trabalho da fábrica não termina quando o software é entregue. Suporte, orientação, manutenção e otimização dos sistemas são fundamentais e determinantes na escolha de um prestador de serviço. O monitoramento dos resultados é fundamental para garantir a satisfação do cliente.
Vantagens de se contratar uma fábrica de software
Entre as vantagens e benefícios inerentes à terceirização de software, podemos destacar:
Garantia e qualidade
Componentes e objetos utilizados pelas fábricas de software nos mais diferentes projetos são testados à exaustão. As fábricas também investem constantemente em treinamento para o seu pessoal e em tecnologias atualizadas para garantir o sucesso dos projetos, algo que pode ser cobrado após a entrega, sem custos adicionais.
Doses de inovação
As fábricas de software possuem profissionais capacitados para criar soluções inovadoras, de acordo com necessidades específicas e em um curto espaço de tempo.
Redução de custos
Assim como acontece na tradicional linha de montagem industrial desenvolvida por Ford, a produção em escala reduz o custo. Além disso, a empresa que opta por terceirizar a fabricação de softwares não tem custos com infraestrutura, treinamento de mão-de-obra interna exclusiva para o novo projeto e não precisa contratar vários fornecedores.
Ganho de produtividade
Como as fábricas de software já possuem componentes e objetos prontos para serem aplicados nos projetos demandados pelos clientes, as soluções são rapidamente desenvolvidas e colocadas em prática, resultando em ganho de produtividade para as empresas que resolvem terceirizar novos aplicativos, fazer adaptações ou implantar melhorias.
LEIA MAIS: Saiba como implantar a metodologia Scrum na equipe de TI da sua empresa.
Entregas mais rápidas
Fábricas de software geralmente utilizam metodologias como Scrum e Kanban na gestão dos projetos, o que, além de garantir a qualidade, evita surpresas indesejadas, dinamizam o trabalho e evitam atrasos.
Maior aproveitamento dos softwares
As empresas costumam desenvolver aplicativos que consomem muitas horas, a alto custo e que, depois de finalizados, apresentam complicações para serem atualizados, integrados e modificados até mesmo por outras equipes das mesmas empresas que os criaram. Fábricas de software produzem aplicativos pensando em cenários futuros, possíveis integrações, adaptações, modernizações e criações de funcionalidades, o que facilita adaptações posteriores.
Atendimento de qualidade
As empresas de software possuem certificações em tecnologia, o que legitima a qualidade dos seus serviços.
LEIA MAIS: Descubra como uma fábrica de software pode trazer benefícios para sua empresa
Quando procurar uma fábrica de software
As fábricas são procuradas por organizações que não possuem equipes de TI ou que consideram que será economicamente mais viável alocar recursos internos para lançar ou atualizar produtos de tecnologia.
Uma fábrica de software deve ser acionada quando o gestor ou empreendedor precisa de soluções de TI rápidas, de alta qualidade e de baixo custo, se comparadas aos projetos que seriam desenvolvidos por equipes internas. Ainda assim, vale destacar algumas situações pontuais:
- Necessidade de atualizar ou adaptar um software existente
- Necessidade de adicionar funcionalidades a um software
- Demanda por um novo software para atender às necessidades de negócios
- Promover a integração entre softwares existentes
- Garantir a segurança na migração de arquivos e bancos de dados para um novo software
- Incorporação de novas tecnologias
- Conversão de aplicativos para ambiente web
Perguntas que devem ser feitas na hora de escolher uma empresa para desenvolver o software
Depois que você tiver feito uma avaliação interna e optado por escolher uma empresa para assumir o projeto do seu software ou aplicativo, algumas perguntas poderão te ajudar a encontrar aquela que mais se adequa ao seu caso.
- O desenvolvedor entendeu, detalhadamente, qual é o produto final e como ele será utilizado?
- A equipe possui todas as habilidades necessárias para criar e implantar o software ou aplicativo? Ela é capaz de mapear essas habilidades em cada etapa do processo?
- A fábrica de software é capaz de desenvolver soluções utilizando códigos modernos?
- O que faz com que o preço cobrado por ela seja diferente das demais, independentemente de ser menor ou maior?
- Quais são as condições para o suporte após a conclusão do projeto?
- Como o produto poderá ser atualizado caso você decida contratar, futuramente, outra fábrica ou resolver a situação internamente?
Armadilhas escondidas em algumas fábricas de software
Muitos empreendedores ficam admirados quando descobrem uma factory software. Eles imaginam instalações modernas com robôs operando, quase sem a presença de humanos, onde a inteligência artificial é soberana. O problema começa aí.
Mesmo que uma fábrica de software seja grande ou desenvolvida, o fator humano ainda está por trás de todos os processos. Antes da contratação, é fundamental investigar se os profissionais que trabalharão no projeto são capacitados, se são especialistas e se já participaram de projetos semelhantes. O mesmo vale para as metodologias adotadas.
Há um outro fator estratégico na hora de escolher entre uma fábrica de software: a garantia do sigilo e o respeito à exclusividade do projeto. Caso a empresa de TI não possa garantir isso, seu investimento pode acabar indo por água abaixo.
Proteja seu diferencial
O cenário é o seguinte: você e sua equipe chegam à conclusão de que sua empresa de transporte de cargas pode produzir mais se todos os colaboradores tiverem um software móvel de comunicação e check in nos pontos de entrega. Os custos para desenvolver um novo programa internamente são altos, pois incluiria o investimento em novas tecnologias, infraestrutura, treinamento e mão-de-obra. Então, alguém sugere a contratação de uma software house e a ideia é abraçada por todos.
Software house escolhida, escopo definido, o projeto passa a ser trabalhado. Semanas depois é entregue dentro do prazo, após ser testado por você e alguns colaboradores da sua empresa. O novo software se mostra um sucesso, alavanca a produtividade e reduz custos, mas… a história não acaba por aqui.
Meses depois, um colaborador recém-admitido, vindo de uma transportadora concorrente, revela que a antiga contratante havia aperfeiçoado um sistema que era utilizado pela equipe, com muitas funcionalidades desenvolvidas pelo software com o qual agora teria que trabalhar. O que aconteceu, então? Coincidência? Infelizmente, não.
Após ter desenvolvido o software e ter percebido o potencial lucrativo do projeto, a software house contratada (que também poderia ser uma fábrica de software ou outra empresa de TI) decidiu replicar alguns componentes e objetos e vender as novas funcionalidades que ajudou a criar para transportadoras de todo o país. Mas ela foi além. Vendeu também diferenciais estratégicos desenvolvidos pela sua empresa e, o que era uma grande vantagem competitiva, tornou-se um mero facilitador do trabalho diário de qualquer um concorrente do setor.
Entenda que estamos falando de diferenciais estratégicos que acabam sendo compartilhados com desenvolvedores, arquitetos, gestores e outros profissionais externos, inclusive, possíveis concorrentes. Se você não puder confiar, se não conseguir uma forma de blindar seus dados, ele virarão dinheiro nas mãos dos outros.
Quer saber se contratar uma fábrica de software é a melhor solução para você?
Como vimos no decorrer deste artigo, uma boa fábrica de software pode garantir, ao mesmo tempo, economia, agilidade, segurança e personalização para as soluções que você precisa.
Se quiser saber se este é o melhor caminho para direcionar as demandas da sua empresa, converse com um dos consultores da ITSS Tecnologia. Nos dedicamos a entender as necessidades do cliente e o cenário em que se encontra, para traçar um plano de ação dentro da realidade do mercado.
As soluções fornecidas pela fábrica de software da ITSS Tecnologia possuem alto nível de personalização, o que agrega valor e contribui para que os clientes apresentem outro diferencial competitivo no setor em que atuam.
Você já contratou uma fábrica de software? Tem alguma dúvida ou experiência para compartilhar? Deixe seu comentário!