13/09/2018 Dialison Veroneze

Software parametrizável ou personalizável, qual a melhor estratégia para desenvolvimento?

É muito comum que empresas sofram as consequências de um legado de decisões tomadas sem considerar os impactos. Para qualquer empresa que desenvolva software, decidir quando e como deve-se modificar o sistema é um trabalho que exige responsabilidade, pois muitas vezes os reveses de ter que sustentar tal código custam mais do que escrevê-lo. 

São diversas as estratégias que podem ser adotadas para desenvolver soluções sistêmicas. Por exemplo: desenvolver de forma unitária e escalável “software de caixinha”; com componentes acopláveis; parametrizável, com opções de ligar ou desligar rotinas; personalizável, que permita codificar soluções em cima de um core base; etc. Vale lembrar que cada uma delas tem suas vantagens e desvantagens, pois tudo depende do problema que se pretende resolver. 

Escolhendo a melhor estratégia de desenvolvimento para cada perfil de empresa 

A estratégia adotada na concepção de uma solução sistêmica pode mudar muito dependendo de qual objetivo se pretende alcançar. Um fator importante é: para quem está sendo desenvolvido? Ou seja, qual o perfil do seu público-alvo? 

Para ser mais específico, tomaremos como base uma solução ERP (sistema integrado de gestão). Assim podemos imaginar situações práticas e definir cenários hipotéticos para cada perfil de empresa. 

Dependendo do movimento operacional,  estratégia e capacidade financeira, as empresas podem: querer melhorar seus processos, apenas sistematizar processos que já estão bem definidos, estar focadas em melhorar seus resultados, dentre muitos outros objetivos. Vamos entender três perfis de empresas e que tipo de solução pode ser mais adequada.  

Imagine uma micro e pequena empresa que está crescendo. Ela precisa informatizar, definir processos básicos e tem uma geração de caixa limitada e investida em estoque. Normalmente esse perfil de empresa buscará um “software de caixinha”, isto é, que não permite nenhum tipo de ajuste, para atender a demanda de faturamento e controles financeiros e operacionais básicos, pois tem um custo baixo e pode ajudar a definir processos.

Uma pequena e média empresa, que cresceu rápido e agora precisa organizar-se para se tornar mais sustentável e competitiva precisa colocar toda sua informação em uma única base para que sua alta gestão tenha condições de tomar decisões acertadas. Uma forma de atender as expectativas desse perfil de empresa é utilizar um software mais robusto, que permita acoplar soluções e/ou desenvolver personalizações que atendam regras específicas para não deixar controles fora do sistema.

As grandes empresas, com processos bem definidos e com uma boa saúde financeira, não têm restrições que as impeçam de criar uma equipe ou contratar uma empresa para desenvolver uma solução sob medida para atender de forma muito peculiar todos os seus processos.

Com base nos perfis de empresas que foram apresentados, os “softwares de caixinhas” e as soluções desenvolvidas sob medida possivelmente têm pouca ou nenhuma adaptação, diminuindo as intenções de serem configuráveis. Diferente desses sistemas e focado em atender empresas que precisam de maior adequação de softwares geram muito mais complexidade durante o desenvolvimento de um sistema. Todavia, para que se possa atender o perfil das empresas que precisam de uma solução específica e com um baixo custo de aquisição é quase que inevitável que seu sistema seja configurável.

Qual a melhor forma de deixar sistemas configuráveis?

Sistemas configuráveis fazem com que a empresa não tenha que trocá-los por não atender determinadas regras de negócio particulares. Façamos algumas perguntas antes de decidirmos deixar um software personalizável: será mais viável ter um sistema com muitas regras de negócio parametrizáveis, ou um core central robusto que permita personalizar as necessidades do cliente? Outra questão importantíssima é o custo. Será necessário avaliar quanto custa manter, evoluir, homologar e analisar impactos de cada funcionalidade do seu sistema. Você já pensou nisso?

Criar parâmetros para ligar e desligar processos específicos no software não seria um problema se com o passar do tempo as combinações de parametrizações não aumentassem a complexidade, chegando ao ponto de deixar o software humanamente intestável. Uma vez que um único parâmetro pode deixar de percorrer uma grande parte do código, imagine a combinação de inúmeros parâmetros ao mesmo tempo.

Por outro lado, quando se cria uma base estruturada de processos não parametrizáveis, mas que permita incluir personalizações particulares para atender cada cliente, pode ser uma opção que ajude a especializar o atendimento das demandas dos clientes “privatizando” o código dos seus processos específicos e permitindo que seus clientes tenham autonomia para ajustar o sistema, criando telas, campos, relatórios, validações, procedimentos e etc.

Tecnicamente, no que tange atender as necessidades específicas de clientes, ter um software personalizável com código aberto pode ser mais sustentável para a prestadora de serviço e satisfazer mais os clientes que fazem uso dele. Contudo, vale lembrar que as parametrizações ainda passarão a fazer parte desse software usando configurações de informações para definir um padrão em processos que são automatizados e bem definidos.

Sendo assim, pode se dizer que uma forma muito interessante de desenvolver soluções configuráveis é por meio de uma inclusão de ferramentas que possibilitem aos seus clientes desenvolver ajustes de forma independente, garantindo que seus processos estão sendo assistidos pelo sistema e podendo ser readequados quando a empresa achar que deve, melhorando a qualidade das linhas de código da base do sistema, por permitir maior profundidade de testes e aumentando a satisfação e as possibilidades das empresas atenderem seus processos específicos, sem que para isso elas tenham que mudar de sistema sempre que uma parte do sistema não atender suas necessidades informacionais.

Este conteúdo foi útil para você? Compartilhe para que mais pessoas tenham acesso às dicas e possam decidir com assertividade. Não deixe de comentar sua experiência em escolher o tipo ideal de software para sua empresa!

 

 

 

Comentários

comentários

Sobre o autor

Dialison Veroneze Diálison Veroneze é Diretor Operacional da Unidade de Gestão Empresarial da DB1 Global Software. Bacharel em Contabilidade, Especialista em Controladoria e Contabilidade e Técnico em desenvolvimento de Software. Atuou como Gerente de Implantação, Gerente de Projetos e Implantador dos sistemas de Gestão Empresarial. Trabalhou com projetos em segmentos como: Distribuidoras, E-commerces, Indústrias, Construtoras, Órgãos sem fins lucrativos e Prestadoras de Serviços. Maior % de horas faturadas da área de implantação do Paraná em 2016.