Según mi experiencia: nunca trabaje con dinero para miembros de la familia con los que tenga que pasar vacaciones o amigos que desee conservar. Una de las partes involucradas siempre sentirá que la otra parte está cobrando demasiado o no está pagando lo suficiente y que le hicieron un favor a la otra parte. Cuando se acerca la fecha límite, generalmente son los menos comprensivos y, por lo general, son muy malos durante la prueba beta porque si tienes un error, que lo harás, no lo entenderán. Siempre es un desastre.
Solía ser idealista y pensar que todos los demás solo necesitaban mejores habilidades con las personas, pero no, así es como es. Las personas que no entienden el proceso de desarrollo de software SIEMPRE se asustarán cuando algo no cumpla con sus expectativas en el primer momento en que lo vean. Esto es cierto en los negocios con los gerentes de proyectos tanto como con los miembros de la familia. El problema es que debes mantener una relación con familiares y amigos, y las cosas nunca son estrictamente comerciales.
Dicho esto, si el proyecto va a aumentar sus niveles de estrés y no necesita el dinero, ¿por qué tomarlo? Especialmente si ya tiene un trabajo de desarrollo de software en el que desea sobresalir, diría que debe dedicar la mayor parte de su esfuerzo de trabajo a ser excelente en su trabajo diario porque allí es donde finalmente será recompensado por un trabajo de calidad.
Si necesita el dinero y está de acuerdo con la posible pérdida de un amigo de la familia, entonces tome el trabajo. Lo peor que podría pasar, además de las cosas que mencioné antes, es que aprendes lo que eres y no eres bueno, o aprendes que muerdes más de lo que puedes masticar, lo que hace que el proyecto sea malo dolor de cabeza debido a su inexperiencia. Lo he hecho dos veces con mi trabajo actual, afortunadamente tengo muy buenos empleadores. Aunque fue una miseria mientras me sentía muerto en el agua, emergí como un programador mucho mejor con un conjunto de habilidades mucho más amplio que antes.
No hay cálculo para determinar qué trabajos dejar y mantener, solo la experiencia y su personalidad. Solo necesita decidir lo que valora y perseguirlo. Cosas para considerar:
¿Es este un proyecto en el que disfrutaré trabajando? ¿Es el equipo un equipo con el que disfrutaré trabajando?
¿Qué tipo de pago ofrecerán? Si no hay ninguno, ¿qué desarrollo profesional recibiré? ¿Ofrecen algún tipo de riesgo compartido (es decir, opciones sobre acciones, porcentaje de ganancias)? Este es un gran persuasor para mí.
De todos modos, estos son solo principios para usar en la toma de decisiones. Todo depende de lo que valores. Por ejemplo, valoro los desafíos intelectuales y el tiempo con mi familia, por lo que generalmente le doy una alta prioridad a lo que es el proyecto y las habilidades que aprenderé al hacerlo. Sin embargo, también me aseguro de decir por adelantado que solo estoy trabajando 2 o 3 noches a la semana para poder pasar tiempo con mi esposa e hijos, ya que ya trabajo todo el día. Ajuste el plazo para cumplir con esta demanda. Si no les gusta eso, entonces no acepto el trabajo.
Hagas lo que hagas, asegúrate de indicar claramente lo que harás y lo que no harás, y asegúrate de que expresen claramente sus expectativas antes de que tomes el trabajo. Lo peor que puede pasar es que el cliente tenga expectativas no expresadas y que usted haya subestimado esas expectativas.
PD: Realmente desearía haber leído este artículo anteriormente en mi carrera. Se aplica a mi último párrafo. http://www.joelonsoftware.com/articles/fog0000000356.html