software

Recentemente, uma colega de trabalho me procurou para discutir um projeto a fim de criar um repositório digital para o acervo do Museu do Instituto Evandro Chagas. Entramos na discussão de qual estratégia seria melhor: desenvolver um software customizado ou um software não-customizado, ou seja, desenvolver um software do zero ou utilizar uma solução pronta para repositórios digitais. Nesse post, apresento o resultado dessa discussão e dou minha opinião sincera sobre o tema.

Software é tanto o produto quanto a ferramenta para desenvolver o produto. Como um produto, ele entrega todo o poder computacional da máquina local para realizar a tarefa desejada. Como ferramenta para desenvolver o produto, ele controla o sistema operacional, a rede, a criação e o gerenciamento de outros programas envolvidos nessa tarefa. Podemos dividir software em duas grandes categorias: O software customizado e o não customizado. O primeiro é desenvolvido exatamente conforme as necessidades do cliente e respeitando as especificidades de cada processo. O segundo é um sistema configurável à nível de usuário, abrangendo preferências e algumas parametrizações. Softwares não customizados podem ser definidos como aplicações desenvolvidas de maneira uniforme e comercializados em larga escala. A quadro a seguir apresenta as vantagens e desvantagens de cada uma dessas abordagens de forma geral.

software

Vantagens da utilização do Software customizado

  • Flexibilidade — o sistema pode ser alterado conforme as necessidades surgirem.
  • Segurança da Informação — Toda a informação que entra e saí do software é de conhecimento do desenvolvedor.
  • Agilidade nas mudanças — As mudanças são mais rápidas em um software sob medida, pois o desenvolvedor conhece cada detalhe do software.
  • Economia a longo prazo — Se comparado com algum produto pago, o custo na etapa desenvolvimento se pagará com o tempo se for o caso.

Desvantagens da utilização do Software Customizado

  • Custo de desenvolvimento — Levando em conta que haverá custo de desenvolvimento, isso poderá ser uma desvantagem em comparação com algum software livre, por exemplo.
  • Tempo de entrega — Dependendo do processo de construção do software, o tempo de entrega pode demorar mais que o esperado. Mas existem alguns processos que amenizam esse tipo de situação como o processo iterativo baseado em componentes.

Vantagens da utilização do Software Não-customizado

  • Tempo de entrega — a promessa de entrega rápida é atraente, mas ainda em muitos casos isso não se concretiza devido ao tempo que se perde ao tentar fazer uma adaptação.

Desvantagens da utilização do Software Não-customizado

  • Sem flexibilidade — a maioria dos softwares prontos oferecem pouca ou nenhuma flexibilidade.
  • Sem agilidade às mudanças — por não ter o domínio completo do software, a equipe responsável por dar manutenção enfrentará grandes dificuldades para responder às solicitações de mudanças, isso se a alteração for viável.
  • Falha de segurança — O software pronto pode funcionar como uma caixa preta, sem dar explicação de como as informações são armazenadas.
  • Preço — O preço de alguns softwares chega a ser mais caro de que o custo de desenvolver um software customizado.

Conclusão

Portanto, o desenvolvimento do software customizado possui mais vantagens em comparação ao desenvolvimento utilizando um software não customizado. Dependendo da demanda ou das restrições do projeto, às vezes é necessário seguir um outro princípio da engenharia de software: não reinventar a roda. Entretanto, eu prefiro a primeira opção na hora de construir soluções para meus clientes.