Executando verificação de segurança...
1

Bom dia engineer, suas perguntas são muito pertinentes mas a resposta para todas, como tudo em computação, é que depende!

Vou compartilhar um pouco sobre o projeto que desenvolvo há uns dois/três anos mas ele não será nenhuma regra, tudo dependerá do contexto, tanto do profissional que presta o serviço quanto do profissional/empresa que precisa do sistema.

Você não perguntou diretamente, mas acho válido comentar que o desenvolver de forma freelance acontece com você, ou indo atrás de prestar o serviço ou alguém que precisa do serviço indo atrás de você, no meu caso, por exemplo, um funcionário da empresa que trabalhava tinha uma ideia, eu era o desenvolvedor, ele me chamou, acertamos alguns documentos simples e começamos o projeto. Nesse caso não precisei de portfólio nem nada do gênero, só o networking do meu trabalho foi suficiente, porém, se você fosse atrás de um trabalho em alguma plataforma de freela, por exemplo, teria de considerar algumas coisas para se destacar frente aos outros prestadores.

Sobre tamanho, imagino que isso seja um problema de software no geral, por mais que defina-se um escopo, se prenda a ele e tudo mais, o software sempre tende a crescer, mais ainda se ele tem um "sucesso", seja por boa aderência do cliente e seus respectivos clientes, seja por poucas ocorrências de bugs, enfim.. Acredito que por mais que se feche um escopo, devemos sempre estar preparados para que ele aumente, a minha experiência diz isso, quando iniciei esse projeto comentado acima, havia definido um escopo de entrega, por exemplo, banco de dados, um dashboard administrativo e uma api com webhooks de gateways de pagamento e bot no Telegram, depois de alguns meses entregue, foi pedido uma integração para o Discord, e depois de anos, foi pedido uma sincronização do banco com o Notion. Em cada uma dessas etapas foi refeito o escopo, alinhado preços e prazos, porém a lição que ficou é que o escopo inicial já não é mais o vigente hoje.

Sobre os tipos de softwares, dependerá sempre da sua experiência/disposição, exemplo, o meu projeto é sobre cripto e bots, aceitei pois já tinha experiência nesse escopo e saberia que, para onde ele crescesse, já teria uma base de como lidar, isso já não aconteceria caso fosse um PDV, nunca trabalhei com um, e é claro que eu poderia aceitar e tentar, mas com um risco grande em troca, pois estaria pisando em terrenos que não conheço previamente. O ponto é, o dev normalmente tende a fazer projetos que já tenha uma experiência, mas nada impede de se aventurar por novos campos, só terá um risco maior atrelado a entrega.

O tipo também dependerá do contexto, escopo e necessidade, no meu caso fiz um full infra, do banco ao back ao front, importei os dados do usuário e tratamos a minha estrutura como fonte de verdade, mas não seria o caso se o cliente já tivesse um banco de dados e não precisasse do meu, integraria com o dele, ou um frontend já feito e que você só precise extender ele para novas funcionalidades, enfim, contexto diz tudo.

Sobre usar uma aplicação já pronta ou contratar uma nova a partir de um desenvolvedor/emrpesa, dependerá da necessidade mas também do perfil do cliente. No meu caso, por mais que houvesse N sistemas similares ao meu, nenhum atendia a 100% dos requisitos, outro ponto é que o cliente queria não somente um sistema, mas sim também uma consultoria técnica sobre softwares terceiros, queria também a possibilidade de extensão ao gosto (lembra do escopo definido e as alterações posteriores, nada disso seria possível caso fosse um SaaS genérico onde se paga uma assinatura e só). Basicamente, o diferencial de um usuário escolher um SaaS frente a um projeto freelancing é dado a fatores como, Time to Market, funcionalidades existentes, a possibilidade de extender as funcionalidades que já existem ao gosto e necessidade, suporte e atendimento exclusivo, enfim, escolher entre um SaaS e um projeto exclusivo, não é só pensar no produto técnico, mas também no como ele se adapta a tua realidade.

Um ponto importante que sempre é falado, o seu cliente não se importa com a entrega. Se eu tenho uma API que é um "wrapper" da OpenAI, o cliente não precisa e nem saberá disso, não cabe a ele, cabe a ele saber que ele vai mandar mensagem nesse campo e vai ter uma resposta de uma IA ao clicar em enviar. Com isso em mente, diferentemente do SaaS que a meta é entregar um produto, quem busca um software exclusivo não busca somente o produto, ele busca um produto personalizado, por isso não me impressionaria que um projeto exclusivo utilize outros já existente do mercado, não precisamos reinventar a roda toda vez.

E o fato de existir tanto software PDV ou de qualquer outro tipo, eu vejo, por experiência pessoal, que é fácil fazer SaaS, mais ainda depois do advento da IA, a questão não é fazer o software, mas sim fazer com que eles atendam a certas necessidades, dentre os PDVs que você comentou, com certeza todos vão ter funcionalidades que todo PDV vai ter, mas cada um deles tem de ter uma funcionalidade específica que resolva uma dor específica, que o diferencie no mercado e que vai convencer o usuário a escolher X ao invés do Y, caso não tenha nenhuma opção no mercado, e isso é esperado, ai entra em vigor mais ainda a questão de projetos freelacing, outsourcing, nearshore, etc...

Dentre as 3 opções, eu falaria que pode estar subestimando o problema de usar algo não especializado, temos que sempre pensar frente ao custo, qual o custo da implementação genérica ou especializada? A especializada será mais caro e devagar, a genérica barata e rápida, devemos sempre ir de genérica por isso? A genérica escala como você precisa? Vale a pena sacrificar algumas necessidades frente ao custo? E se você precisar trocar caso a genérica escolhida não te atenda mais? Eu vejo que no final é uma questão de responsabilidade, quando você (como empreendedor) escolhe assumir a decisão ou delega ela para alguém especializado.
Novamente, não tem bala de prata, é contexto (e budget) do cliente que dirá isso.

E para fechar, acredito que as últimas perguntas, modelo de cobrança e dono do software, isso é mais contextual ainda, de exemplo, no meu caso tive uma taxa inicial de implementação para cobrir a minha prioridade no projeto frente ao Time to Market pro cliente, depois que foi ao ar, uma taxa mensal para manter a infra rodando com uma boa taxa de uptime, e por fim, para alterações de escopo, uma taxa baseada no novo escopo, mas isso pode e vai ser diferente de caso a caso, terão casos que se desenvolve o produto e deixa na infra do usuário, no final, tem que pensar qual a responsabilidade que você quer, só desenvolver ou manter? E qual a que teu cliente precisa?

Depois de falar tanto e não dizer nada, minha recomendação para, caso queira entender melhor esse mundo, é de pesquisar sobre os conceitos de domínio e subdomínio, principal, genérico e de suporte, que são conceitos apresentados no DDD (parte teórica) que da uma boa luz para entender o papel dos N softwares que estão dentro de uma empresa, é com esse entendimento que você poderá ter mais propriedade ao olhar para um software e entender se ele requer uma atenção tal qual um contexto principal requere ou ele é genérico o suficiente que a empresa pode escolher um do mercado e facilmente trocar, se precisar.

Espero que tenha ajudado de alguma forma, abraços e boa sorte!

Carregando publicação patrocinada...