Quais são as suas obrigações ao cobrar por hora versus cobrar por projeto?
Essencialmente o mesmo. Seja profissional.
Se você concorda em participar de um projeto, faça uma estimativa aproximada de que pode levar 10 dias para você trabalhar e cobrar £ X por hora - você é obrigado a trabalhar de graça depois que esses 10 dias terminarem e você ainda não conseguiu concluir seu projeto devido a problemas imprevistos?
Não - desde que durem aproximadamente 10 dias, você estará bem. Eu definiria aproximadamente 10 dias como algo entre 50 - 120 horas nas extremidades. Qualquer coisa acima de 120 horas (uma superação de 50%) está muito além do óbvio.
Embora "questões imprevistas" deixem muita imprecisão. Profissionais experientes antecipam muito mais problemas do que novos desenvolvedores. No entanto, se o cliente sabe que você é um novo desenvolvedor (e sabe que está obtendo um desconto significativo por causa disso), então há uma margem de manobra aqui.
E se você entregou o projeto, mas foram encontrados erros - você deve corrigi-los gratuitamente se os 10 dias terminarem ou cobrar do cliente?
Insetos? Sim - você deve corrigi-los gratuitamente. Você não está sendo pago por 10 dias para produzir código quebrado.
Agora, novamente, "bug" é um pouco vago. Existem erros de interrupção de exibição (como, o programa não é executado - obviamente, sua culpa) e erros de maiúsculas e minúsculas (o programa trunca o texto no Windows localizado na Turquia com o IME chinês ativado - não é realmente razoável). A maioria cai em algum lugar no meio, mas o ônus da prova está em você.
Há também erros de especificação - estes são os mais difíceis. Você terá que usar seu julgamento para saber se deveria ter razoavelmente antecipado, questionado ou implícito a alteração nas especificações. Mais uma vez, eu colocaria o ônus da prova em você.
Para um projeto de 10 dias (80 horas) com um desenvolvedor ecológico, outras 10 a 15 horas de correções de bugs não seriam demais. Qualquer coisa além disso, tentaria calcular o pagamento - embora provavelmente fizesse mais 5 a 10 horas de graça antes de demitir o cliente.
Além disso, para o projeto acima, qual deve ser o resultado quando você iniciar o projeto, mas após os 10 dias, por qualquer motivo, terá que desistir e informar ao cliente que não pode mais fazê-lo? Sei que isso não ajuda a construir sua reputação e relacionamento com o cliente, mas você é obrigado a devolver o dinheiro pago ou apenas entrega o código-fonte meio / quase concluído e ajuda-os a encontrar outra pessoa para concluí-lo?
Você devolve o dinheiro. Se você não pode terminar o projeto, é provável que não possa julgar pela metade. Se o cliente o contratou, é ainda mais provável que ele não consiga julgar pela metade. Se você puder encontrar alguém para finalizá-lo, poderá subcontratar com eles - a diferença entre o que eles cobram e o que você já fez é o seu lucro (ou perda).
No final, geralmente é melhor curvar-se ao cliente e classificá-lo como uma lição aprendida. Depois de um tempo, você poderá identificar os "clientes problemáticos" e evitá-los (ou aumentar a taxa) no início. Você também aprenderá a estimar um pouco melhor, a acrescentar custos de correção de bugs nos preços, etc.
Como desenvolvedor de estudantes, você tem alguma margem de manobra. É provável que ninguém processe você pela multa que você cobrou por um projeto de 10 dias. Você nunca mais receberá negócios desse cliente (ou de seus amigos) - mas, como eles contrataram um desenvolvedor de estudantes, é provável que eles apenas desejem mão de obra barata e não entendam o que realmente custa contratar um bom desenvolvedor de qualquer maneira. Você não está perdendo muito no futuro, exceto dores de cabeça - embora à custa de uma consciência limpa.
Meu conselho? Basta terminar - você se sentirá melhor, o cliente se sentirá melhor e você será um desenvolvedor e empresário melhor. Não é como se valesse um ano de trabalho - e você tem todos os seus amigos no Stackoverflow e no Stackexchange para ajudar. ;)