Software customizado x Software não-customizado
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.
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.
- Como ver o que nunca foi visto
- 2021 e as tecnologias pós-pandemia.
- Como é a rotina de um engenheiro da computação?
- Software customizado x Software não-customizado
- Sobre o desafio dos #100DaysOfCode.
- Sete curiosidades sobre Ada Lovelace.
- Como prever o valor de venda de uma casa?
- Como fazer classificação binária de textos
- Treinando sua primeira rede neural para uma tarefa de classficação simples
- Instalando o Tensorflow no Raspbian
- Instalando o Tensorflow no Windows
- Instalando o Tensorflow no macOs
- Instalando o Tensorflow no Ubuntu
- Instalando o Tensorflow - apresentação
- Bem vindo(a) ao Tensorflow!