Из моего опыта: Никогда не занимайтесь работой с деньгами для членов семьи, с которыми вам приходится проводить отпуск, или с друзьями, которых вы хотите оставить. Одна из вовлеченных сторон всегда будет чувствовать, что другая сторона либо взимает слишком большую плату, либо недостаточно платит, и что она оказала другой стороне услугу. Когда наступает крайний срок, они обычно менее всего понимают, и они обычно являются дырами в заднице во время бета-теста, потому что, если у вас есть ошибка - которую вы будете - они не поймут. Это всегда беспорядок.
Раньше я был идеалистом и думал, что все остальные просто нуждались в улучшении навыков людей, но нет, это просто так. Люди, которые не понимают процесс разработки программного обеспечения, ВСЕГДА будут волноваться, когда что-то не соответствует их ожиданиям в первый раз, когда они это увидят. Это относится как к бизнес-менеджерам, так и к членам семьи. Проблема в том, что вы должны поддерживать отношения с семьей и друзьями, а вещи никогда не являются строго деловыми.
Тем не менее, если проект повысит уровень стресса и вам не нужны деньги, тогда зачем их брать? Особенно, если у вас уже есть работа по разработке программного обеспечения, в которой вы хотите преуспеть, я бы сказал, что вы должны посвятить столько же своей рабочей силы, чтобы быть отличными в своей повседневной работе, потому что именно здесь вы в конечном итоге будете вознаграждены за качественную работу.
Если вам нужны деньги, и вы в порядке с потенциальной потерей друга семьи, то принимайтесь за работу. Худшее, что может случиться - помимо того, что я упомянул ранее - это то, что вы узнаете, что вы есть, и у вас ничего не получается, или вы узнаете, что откусываете больше, чем вы можете пережевывать, что делает проект плохим головная боль из-за вашей неопытности. Я сделал это дважды с моей нынешней работой - к счастью, у меня есть очень понимающие работодатели. Хотя я чувствовал себя мёртвым в воде, это было несчастьем, но я стал намного лучшим программистом с гораздо более широким набором навыков, чем раньше.
Для определения того, какую работу отпустить и оставить, нет исчисления, только опыт и ваша личность. Вам просто нужно решить, что вы цените и преследовать это. Что нужно учитывать:
Это проект, над которым мне понравится работать? Является ли команда командой, с которой мне будет приятно работать?
Какой вид оплаты они будут предлагать? Если нет, то какое профессиональное развитие я получу? Они предлагают какой-либо общий риск (например, опционы на акции, процент прибыли)? Это большой убедитель для меня.
В любом случае, это просто принципы, которые нужно использовать при принятии решений. Все зависит от того, что вы цените. Например, я ценю интеллектуальные проблемы и время со своей семьей, поэтому обычно уделяю большое внимание тому, что представляет собой проект, и навыкам, которые я получу при этом. Тем не менее, я также заранее заявляю, что я работаю только 2 или 3 ночи в неделю, чтобы я мог проводить время с женой и детьми, так как я уже работаю весь день. Я корректирую крайний срок, чтобы удовлетворить это требование. Если им это не нравится, я не берусь за работу.
Что бы вы ни делали, убедитесь, что вы четко заявили, что вы будете и не будете делать, и убедитесь, что они четко изложили свои ожидания, прежде чем приступить к работе. Худшее, что может случиться, - это чтобы у клиента были неутвержденные ожидания, а вы недооценили эти ожидания.
PS Я действительно хотел бы прочитать эту статью ранее в моей карьере. Это относится к моему последнему абзацу. http://www.joelonsoftware.com/articles/fog0000000356.html