Da minha experiência: nunca trabalhe com dinheiro para familiares com quem você precisa passar férias ou amigos que deseja manter. Uma das partes envolvidas sempre sentirá que a outra parte está cobrando muito ou não está pagando o suficiente e que fez um favor à outra parte. Quando o prazo chega, eles geralmente são menos compreensivos e geralmente são idiotas durante o teste beta, porque se você tiver um bug - o que você deseja - eles não entenderão. É sempre uma bagunça.
Eu costumava ser idealista e pensar que todo mundo só precisava de melhores habilidades com as pessoas, mas não, é assim que as coisas são. Pessoas que não entendem o processo de desenvolvimento de software SEMPRE surtarão quando algo não atender às suas expectativas no primeiro momento em que o virem. Isso ocorre tanto nos negócios com gerentes de projeto quanto nos membros da família. O problema é que você precisa manter um relacionamento com a família e os amigos, e as coisas nunca são estritamente comerciais.
Dito isto, se o projeto vai aumentar seus níveis de estresse e você não precisa do dinheiro, por que aceitá-lo? Especialmente se você já tem um trabalho de desenvolvimento de software no qual deseja se destacar, eu diria que você deve dedicar tanto do seu esforço para ser excelente em seu trabalho diário, porque é aí que você será recompensado por um trabalho de qualidade.
Se você precisa do dinheiro e está de acordo com a possível perda de um amigo da família, aceite o trabalho. A pior coisa que poderia acontecer - além das coisas que mencionei antes - é que você aprende o que é e não é bom, ou aprende que você morde mais do que pode mastigar, fazendo com que o projeto seja ruim. dor de cabeça devido à sua inexperiência. Fiz isso duas vezes com o meu trabalho atual - felizmente tenho empregadores muito compreensivos. Embora fosse uma miséria enquanto eu estava me sentindo morto na água, eu emergi um programador muito melhor com um conjunto de habilidades muito mais amplo do que antes.
Não há cálculo para determinar quais empregos deixar e manter, apenas a experiência e a sua personalidade. Você só precisa decidir o que valoriza e persegui-lo. Coisas a considerar:
É um projeto em que gostarei de trabalhar? A equipe é uma equipe com a qual gostarei de trabalhar?
Que tipo de pagamento eles estarão oferecendo? Se não houver, que desenvolvimento profissional estarei recebendo? Eles oferecem algum tipo de risco compartilhado (por exemplo, opções de ações, porcentagem de lucros)? Este é um grande persuasor para mim.
De qualquer forma, esses são apenas princípios a serem usados na sua tomada de decisão. Tudo depende do que você valoriza. Por exemplo, eu valorizo os desafios intelectuais e o tempo com minha família, por isso geralmente coloco uma alta prioridade no que é o projeto e nas habilidades que aprenderei ao fazê-lo. No entanto, também certifico-me de que estou trabalhando apenas 2 ou 3 noites por semana para poder passar um tempo com minha esposa e filhos, pois já trabalho o dia todo. Eu ajusto o prazo para atender a essa demanda. Se eles não gostam disso, então eu não aceito o emprego.
Faça o que fizer, certifique-se de indicar claramente o que você fará ou não, e certifique-se de que elas expressem claramente suas expectativas antes de você aceitar o trabalho. A pior coisa que pode acontecer é que o cliente tenha expectativas não declaradas e que você subestimou essas expectativas.
PS: Eu realmente gostaria de ter lido este artigo no início da minha carreira. Isso se aplica ao meu último parágrafo. http://www.joelonsoftware.com/articles/fog0000000356.html