[quote=fantomas][quote=kicoloco]Na realidade sua pergunta não seria: “o que é mais negócio: desenvolver software de prateleira ou personalizado?”
No primeiro caso, óbviamente é mais fácil, visto que você só tem uma base de código pra dar manutenção. Por outro lado, financeiramente nem tanto, pois seu software vai ter de ter um preço bem mais baixo para que se torne um diferencial.
Na outra ponta, sinceramente não vejo dificuldade alguma. Se seu cliente quer algo personalizado, cabe a você, como desenvolvedor, fazer um trabalho correto de documentação para evitar que se caia neste tipo de armadilha. Mesmo porque, ao menos pela minha experiência, 99% dos trabalhos são softwares customizados feitos para necessidades muito específicas. Nunca tive problema com isto. Como mencionei, é uma questão de organização.
Mas voltando ao primeiro caso, pode ser que mesmo sendo produzido um software de prateleira, seja necessário fazer uma customização ou outra. Nesta situação, o que rola é o seguinte: seu software de prateleira tem de ser MUITO bem especificado para que seja algo fácil de ser expandido através de plugins ou aberto para comunicação com outros sistemas.
Neste caso, a criação de “plugins” personalizados cairia na segunda opção, software customizado. E novamente, minha opinião: a probabilidade de se transformar em uma GRANDE furada vai ser diretamente proporcional à sua capacidade organizacional. [/quote]
Como é que vc administra as versões dos clientes, você cria uma cópia para cada um e deixa a versão seguir em frente, é isso?
flws
[/quote]
No início eu criava branches no sistema de controle de versão. Porém, posteriormente, comecei a implementar meus sistemas de tal forma que o núcleo seja expansível, ou seja, quando o cliente precisa de alguma coisa muito específica, tudo o que faço consiste em implementar algum módulo separado que se comunique com este kernel via http ou alguma outra forma de comunicação, ou seja, basicamente crio uma API básica que me possibilite a sua expansão através da implementação de clientes posteriormente.
Esta comunicação inicialmente era feita a partir de DLLs (eu trabalhava com Delphi), e posteriormente, conforme fui me aprofundando em plataformas abertas e largando o Delphi, comecei a adotar comunicação via http ou https dentro de uma arquitetura REST.