D'après mon expérience: Ne faites jamais de travail impliquant de l'argent pour des membres de votre famille avec lesquels vous devez passer des vacances ou des amis que vous souhaitez conserver. L'une des parties impliquées aura toujours l'impression que l'autre partie facture trop ou ne paie pas assez et qu'elle a rendu service à l'autre partie. Lorsque la date limite arrive, ils sont généralement les moins compréhensifs, et ce sont généralement des trous de cul pendant le test bêta parce que si vous avez un bug - que vous allez - ils ne comprendront pas. C'est toujours un gâchis.
J'étais idéaliste et je pensais que tout le monde avait juste besoin de meilleures compétences interpersonnelles, mais non, c'est comme ça. Les personnes qui ne comprennent pas le processus de développement logiciel paniquent TOUJOURS lorsque quelque chose ne répond pas à leurs attentes dès le premier moment où elles le voient. Cela est vrai dans les affaires avec les chefs de projet autant qu'avec les membres de la famille. Le problème est que vous devez maintenir une relation avec votre famille et vos amis, et les choses ne sont jamais strictement commerciales.
Cela dit, si le projet va augmenter votre niveau de stress et que vous n'avez pas besoin d'argent, alors pourquoi le prendre? Surtout si vous avez déjà un travail de développement logiciel dans lequel vous souhaitez exceller, je dirais que vous devriez consacrer autant d'efforts à être excellent dans votre travail de jour car c'est là que vous serez finalement récompensé pour un travail de qualité.
Si vous avez besoin d'argent et que vous êtes d'accord avec la perte potentielle d'un ami de la famille, prenez le travail. La pire chose qui puisse arriver - à part les choses que j'ai mentionnées auparavant - est que vous apprenez ce que vous êtes et n'êtes pas bon, ou vous apprenez que vous mordez plus que vous ne pouvez mâcher, ce qui fait que le projet est mauvais maux de tête dus à votre inexpérience. Je l'ai fait deux fois avec mon emploi actuel - heureusement, j'ai des employeurs très compréhensifs. Bien que ce fut la misère alors que je me sentais mort dans l'eau, j'ai émergé un bien meilleur programmeur avec un ensemble de compétences beaucoup plus large qu'auparavant.
Il n'y a pas de calcul pour déterminer quels emplois abandonner et garder, seulement l'expérience et votre personnalité. Vous avez juste besoin de décider ce que vous appréciez et de le poursuivre. Choses à considérer:
Est-ce un projet sur lequel j'aimerais travailler? L'équipe est-elle une équipe avec laquelle j'aime travailler?
Quel type de paiement offriront-ils? Sinon, quel perfectionnement professionnel vais-je recevoir? Offrent-ils une sorte de risque partagé (c.-à-d. Options d'achat d'actions, pourcentage des bénéfices)? C'est un grand persuasif pour moi.
Quoi qu'il en soit, ce ne sont que des principes à utiliser dans votre prise de décision. Tout dépend de ce que vous appréciez. Par exemple, j'apprécie les défis intellectuels et le temps passé avec ma famille, donc j'accorde généralement une grande priorité à ce qu'est le projet et aux compétences que j'apprendrai à le faire. Cependant, je m'assure également de déclarer à l'avance que je ne travaille que 2 ou 3 nuits par semaine afin de pouvoir passer du temps avec ma femme et mes enfants car je travaille déjà toute la journée. J'ajuste le délai pour répondre à cette demande. S'ils n'aiment pas ça, alors je ne prends pas le travail.
Quoi que vous fassiez, assurez-vous d'indiquer clairement ce que vous ferez et ne ferez pas, et assurez-vous qu'ils énoncent clairement leurs attentes avant de prendre le poste. La pire chose qui puisse arriver est que le client ait des attentes non exprimées et que vous sous-estimiez ces attentes.
PS J'aimerais vraiment avoir lu cet article plus tôt dans ma carrière. Cela s'applique à mon dernier paragraphe. http://www.joelonsoftware.com/articles/fog0000000356.html