[Dúvia] Criar uma plataforma de aulas com aparência semelhante ao netflix.
Salve pessoal, tudo bem? Tenho uma caminhada um pouco curta na área ainda, trabalho com programação a pouco mais de 1 ano, sendo basicamente com React + Java.
Nos últimos tempos estava querendo desenvolver algo que não fosse na empresa que trabalho e aconteceu de um conhecido me solicitar um orçamento. O projeto(inicialmente) é desenvolver uma plataforma para poder hospedar aulas. A aparência seria parecida com a netflix porém customizada para o nicho dele. Fazer integração com pagamento. Possivelmente algum tipo de IA e reconhecimento de comandos por voz.
Mas agora quando fui precificar, vi que não fazia ideia de quanto cobrar. Estimar tempo para entregas. Alguém consegue me dar um norte, tanto na questão de valor quanto no nível de dificuldade(tranquilo de fazer?)
Tudo bem?
As maiores dificuldades que pode enfrentar são integração de pagamentos, segurança de dados e segurança contra a cópia do conteúdo (praticamente impossível) e por ultimo mas não menos importante um algoritmo para diminuir a qualidade do vídeo no caso de conexões de clientes lentas.
Tudo vai depender de como o seu cliente deseja a integração dos pagamentos, vai usar um gateway que facilita a integração? Ou vai criar uma integração direta via API PIX de algum banco etc.
Eu acredito que a complexidade desse projeto entre baixa, media, alta e muito complexo, ele está na faixa alta.
Precificar um projeto e estimar o tempo de entrega pode ser desafiador, especialmente quando é a primeira vez que você está desenvolvendo algo fora do ambiente da empresa, lembre-se sempre do mantra, quando seu cliente pede algo igual a algo que já existe, diga a ele, claro é perfeitamente possível, se você pagar o mesmo que a empresa que criou pagou. Aqui estão algumas orientações que podem ajudá-lo:
-
Analise os requisitos do projeto: Certifique-se de entender completamente os requisitos do projeto, incluindo todas as funcionalidades, integrações e personalizações que são solicitadas. Quanto mais claro você tiver os requisitos, mais fácil será estabelecer um preço justo.
-
Divide o projeto em etapas: É útil dividir o projeto em etapas menores e estimar o tempo necessário para completar cada uma. Isso ajudará você a ter uma visão mais precisa do tempo total necessário para a conclusão. Por exemplo, você pode dividir o desenvolvimento do projeto em etapas como design da interface, desenvolvimento do front-end, desenvolvimento do back-end, integração de pagamento e IA.
-
Pesquise os preços do mercado: Faça uma pesquisa sobre quanto outros desenvolvedores estão cobrando por projetos semelhantes na sua região. Isso lhe dará uma ideia do preço médio e permitirá que você estabeleça um valor competitivo, mas o mais importante é ter uma ideia do seu custo hora.
-
Considere sua experiência: Leve em consideração o seu nível de experiência e habilidades em relação ao projeto específico. Se você está começando e considera que a tarefa será um desafio, pode cobrar um preço mais baixo para refletir isso. À medida que ganha mais experiência, pode aumentar seus preços.
-
Calcule os custos adicionais: Considere outros custos além do tempo de desenvolvimento, como custos de hospedagem e domínio, integração de APIs de pagamento ou serviços de IA, além de suporte e manutenção contínuos após a conclusão do projeto. Um projeto só termina quando a empresa fecha.
-
Seja transparente com o cliente: Informe ao seu cliente quanto tempo você acha que levará para concluir o projeto e explique como você chegou a esse número. Discuta sua estimativa de preço com ele de forma transparente e esteja aberto a negociar se necessário, e deixe claro que é tudo estimativa, não há como prever corretamente.
Opa, @fredericoufsj! Vou dar meus 10 cents de contribuição aqui porque, há pouco mais de 1 ano atrás, peguei um projeto exatamente igual ao que você descreveu (uma plataforma, estilo netflix, para hospedar aulas). O cliente queria liberar aulas semanais com o mesmo conteúdo em formatos diferentes (vídeo, podcast, blog post e pdf) e alguns adicionais para quem assinasse o plano "premium". Tudo isso em cerca de 45 dias e com pouquíssima experiência em projetos grandes. Vou separar em etapas a partir daqui para descrever toda minha jornada.
Stack Escolhida
Inicialmente imaginei que seria um MVP para uma turma pequena, algo como uns 10 a 15 alunos, então fui confiante em tecnologias que eu já conhecia para poder entregar.
Para o backend, escolhi o Strapi CMS, um headless cms muito bom que já me entregava boa parte do que eu precisava: um painel para cadastrar os conteúdos, gerenciar usuários e autenticação, api rest e graphql. Tudo em um único lugar, sem precisar quebrar a cabeça, afinal, não tinha tempo e era um MVP. Integrei com AWS S3 para hospedar os assets e fiz deploy na Heroku.
Para o frontend escolhi o Next.JS por conta do Next Auth, que me facilitou muito a parte de autenticação dos usuários, e porque seria uma boa utilizar o Incremental Static Regeneration que o Next disponibilizava. Claro, fiz deploy na Vercel.
Para os pagamentos, escolhi a Stripe que, ao meu ver, é uma das melhores plataformas de pagamento que existem hoje. Tem uma API e SDK muito boas e taxas razoáveis quando comparado com os outros player que temos aqui nas terras tupiniquins.
Regra de negócios
A princípio, o cliente queria algo como a Netflix mesmo. O usuário escolhe entre dois planos e paga uma mensalidade para ter acesso aos conteúdos, podendo cancelar quando quiser. Isso foi um fator crucial para a escolha da plataforma de pagamentos que citei acima, pois ela atendia muito bem ao modelo de negócios que o cliente queria.
Agora vamos à saga...
Houston, we have a problem
Lembra que eu disse que imaginava que seria um MVP para umas 15 pessoas? Então...
O cliente fez uma live de lançamento e disponibilizou o link do checkout. Cerca de 100 pessoas assinaram.
Por sorte utilizei a Vercel para o front e a Stripe como plataforma de pagamentos (digo sorte porque na época eu não entendia absolutamente nada de como servir aplicações para múltiplos acessos simultâneos. Só havia trabalhado com sites que recebiam, no máximo, alguns milhares de acesso no mês todo).
Do ponto de vista do Marketing, foi um sucesso.
Mas os dias foram passando e os problemas foram aparecendo, principalmente em performance. A Vercel segurou bem o front, mas eu não havia disponibilizado os assets via CDN, principalmente os vídeos.
E falando em vídeos, por ser um MVP, estávamos disponibilizando vídeos em formato .mp4 mesmo, sem transcoding, DRM ou coisas assim que são triviais nesse modelo de negócios mas eu não fazia a mínima ideia que existia.
Há cerca de 3 meses atrás (quase 1 ano depois do lançamento) o cliente quis mudar a regra de negócios. Agora não era mais modelo de assinatura e sim pagamento anual com possibilidade de parcelamento em até 12x. Muito bom, mas a Stripe não aceita pagamentos parcelados.
E como ficam os usuários que estão no modelo atual? Por falar neles, já são mais de 1.000 assinantes na aplicação que era pra ser apenas um MVP (claro que já corrigi inúmeros dos problemas que apareceram no caminho pra continuar com a aplicação de pé).
Então lá vamos nós ter que mudar toda a estrutura da aplicação e a plataforma de pagamentos para poder atender ao cliente...
Vou parar por aqui porque acho que já me alonguei demais e creio já ter passado a ideia.
Quanto cobrei nesse projeto?
R$ 8.000,00 (sim, apenas 8 mil reais). Me arrependo toda noite quando coloco a cabeça no travesseiro. Perdi noites e finais de semana corrigindo bugs, falhas de sincronia entre pagamentos e liberação de acesso entre outros problemas. Mas foi esse projeto que me me fez adquirir cerca de 80% do conhecimento que tenho hoje (e considero muito pouco ainda).
Enfim, não há como precificar nem estimar tempo logo de cara. Não dá pra saber com exatidão quanto tempo você levará e quanto precisará investir em conhecimento para chegar no resultado "final" (entre aspas porque em desenvolvimento não tem final, se o projeto der certo sempre haverá alguma coisa pra se fazer).
Descubra quanto custa a sua hora de trabalho e coloque cerca de 30% a mais no preço final. Combine entregas e pagamentos semanais.
Em relação ao nível de dificuldade, numa escala de 0 a 10, diria que está próximo de 8. Mas com as dicas que tu pegar da galera aqui, pode reduzir pra 6.
Bom, é isso. Se eu lembrar de mais coisas volto a compartilhar aqui.
espero que ajude: https://youtu.be/Y2WfzFozf8M?si=OI4QFwZ90ALJkN4I
2 milhões de reais da pra começar esse projeto e eu falo isso com todo otimismo.
tu vai usar algum sistema pronto pra entrega do conteudo? ou é real que ele quer criar uma plataforma de streaming?
Minha sugestão: se tu não sabe o escopo do projeto e nunca precificou antes algo nesse estilo, cobra um valor por hora fazendo a cobrança semanalmente.
Concordo com o Lucas Montano. O escopo desse tipo de projeto é infinitamente maior do que parece, e cobrar por hora, com recorrência, é o mais indicado. Coincidentemente, ontem o "Filho da Nuvem" publicou um vídeo falando dos maiores desafios que ele enfrentou ao fazer a plataforma de ensino dele, a DevGym (que em essência é próximo da ideia que tu apresentou aqui). Recomendo assistir ao vídeo pra ter uma noção geral dos desafios.
Vou propor um contraponto a galera: não pegue projetos que vão além do seu escopo de conhecimento. Em alguns momentos precisamos ter maturidade para entender que é demais para nós.
Um projeto como esse é simples de dizer, complexo de produzir. Por mais que você cobre por hora, programe entregas. Tem muita coisa para fazer, muita mesmo. E se você tem dúvidas sobre isso, está além da sua experiência no momento.
É importante aceitar desafios na vidas, mas quando é demais precisamos entender que o processo se tornará frustrante. Além dos desafios técnicos, você vai ter que estudar muito mais coisas ao mesmo tempo, o que fará com que o tempo de desenvolvimento aumente exponencialmente.
Entendo que as vezes precisamos e não podemos perder oportunidades, mas nesse caso maneje as expectativas do contratante. Mostre-o alternativas de simplificar o projeto e converta para pequenas entregas. Assim as coisas podem ser adicionadas pouco a pouco para se tornar uma plataforma robusta daqui alguns meses. Até lá, pequenas soluções devem resolver as dores principais.
Acho que o problema é já colocar a expectativa de uma Netflix de cursos. Isso já trás problemas na construção inicial. Hoje existem ferramentas prontas que podem ajudar em um MVP como LearnDash ou similares. Antes de pensar em quanto irá cobrar, analise o quanto pode entregar.
Olá @fredericoufsj, tudo joia?
Além de todos os comentários ditos aqui, vale a pena ter um tempo planejado para cada etapa do projeto, talvez dividir por milestones ou releases e priorizar as funcionalidades que mais importam para estas entregas.
Uma forma de começar é entender tudo que você sabe e procurar Clones da NetFlix, pode te dar uma bagagem de como continuar a implementação.
O que é necessário tomar cuidado é com o planejamento funcional do projeto e também com a arquitetura, para você não ir crescendo este projeto de maneira desenfreada e chegando até a ter overenginering por não ter tido um bom planejamento inicial.
Listando de uma maneira conservadora o que é necessário para seu planejamento:
- Entenda bem os requisitos
- Priorize cada funcionalidade
- Planeje prazos para cada entrega
- Escolha as tecnologias utilizadas
- Planeje a arquitetura do projeto
- Organize as pessoas que irão trabalhar no projeto
- Deixe claro todos os riscos
- Por último, mas mão menos importante, PRECIFIQUE CADA INTERVENÇÃO SUA QUE LHE CUSTARÁ TEMPO.
Próxima etapa é a viabilidade do projeto:
- Tenha protótipos do projeto que foram aprovados pelo cliente para não ter surpresas mais pra frente (já pensou você passa dias - se não meses - desenvolvendo para o cliente e ele diz que não é o que precisa?
- Faça MVPs das funcionalidades antes de cada entrega oficial
Depois disso é a fase de implementação e aí os outros comentários já deixaram claro os desafios que você irá encontrar com este tipo de implementação. Realmente não é um projeto simples, tem dificuldade alta e normalmente é um projeto que envolve diversas pessoas com expectativa de meses, se não anos de entrega. Mas, não quer dizer não tem esperança de ser um projeto simples, como uma casca da NetFlix 🔥 Clone do NETFLIX em REACTJS para Iniciantes no Youtube de Bokieky Lacerda e 🔴 How to Build a NETFLIX Clone with REACT JS for Beginners (in 3 Hours!), com as funcionalidades de uma plataforma de aulas já ouviu falar do Moodle? e aí as funcionalidades extras são implementações específicas.
Espero ter contribuído mais um pouco!