Как вы решаете, стоит ли вам брать проект?

11

Я довольно новый разработчик. Профессионально я прошел обучение на C # в течение двух лет в качестве стажера и 6 месяцев в качестве младшего разработчика. Друг моей семьи нуждается в помощи с проектом, который написан на VB.net. Я никогда не пользовался VB.net, поэтому немного волнуюсь там.

Но реальный вопрос заключается в том, что, просматривая документы по проекту, я чувствую, что ничего хорошего из этого не выйдет. У меня такое ощущение, что это вызовет больше стресса, чем хотелось бы сейчас в моей жизни.

Как опытные разработчики принимают решение, брать ли проект или просто позволить ему уйти? Какие метрики помогут вам принять решение?

редактировать

Это на самом деле кажется очень большой ERP, над которой он хотел бы, чтобы я работал, и я не верю, что он что-то знает о программировании, поэтому я не думаю, что тот факт, что я очень младший, даже приходил ему в голову.

Дж. Лундберг
источник
10
Это трудное решение? Тебе не нравятся спецификации и ты не веришь в них. Почему вы хотите взять этот проект?
Витор Пи
2
Это реальный пример, который у меня есть сейчас, но я чувствовал, что в целом было бы полезно открыть дискуссию о том, как вы выбираете проекты, потому что нет подобных вопросов.
Дж. Лундберг
@J Лундберг: я обновил свой ответ в ответ на ваше обновление.
FrustratedWithFormsDesigner
3
Если он не знает программирования, то почему он настаивает на VB.NET? Он, очевидно, не будет работать над проектом с вами. Нет причин использовать его над C # в .NET. Вы можете скомпилировать существующий VB.NET и использовать его в качестве библиотеки в своем коде на C # или наоборот.
Джонатан Хенсон
«нужна помощь» - это платная или неоплачиваемая?

Ответы:

11

Из моего опыта: Никогда не занимайтесь работой с деньгами для членов семьи, с которыми вам приходится проводить отпуск, или с друзьями, которых вы хотите оставить. Одна из вовлеченных сторон всегда будет чувствовать, что другая сторона либо взимает слишком большую плату, либо недостаточно платит, и что она оказала другой стороне услугу. Когда наступает крайний срок, они обычно менее всего понимают, и они обычно являются дырами в заднице во время бета-теста, потому что, если у вас есть ошибка - которую вы будете - они не поймут. Это всегда беспорядок.

Раньше я был идеалистом и думал, что все остальные просто нуждались в улучшении навыков людей, но нет, это просто так. Люди, которые не понимают процесс разработки программного обеспечения, ВСЕГДА будут волноваться, когда что-то не соответствует их ожиданиям в первый раз, когда они это увидят. Это относится как к бизнес-менеджерам, так и к членам семьи. Проблема в том, что вы должны поддерживать отношения с семьей и друзьями, а вещи никогда не являются строго деловыми.

Тем не менее, если проект повысит уровень стресса и вам не нужны деньги, тогда зачем их брать? Особенно, если у вас уже есть работа по разработке программного обеспечения, в которой вы хотите преуспеть, я бы сказал, что вы должны посвятить столько же своей рабочей силы, чтобы быть отличными в своей повседневной работе, потому что именно здесь вы в конечном итоге будете вознаграждены за качественную работу.

Если вам нужны деньги, и вы в порядке с потенциальной потерей друга семьи, то принимайтесь за работу. Худшее, что может случиться - помимо того, что я упомянул ранее - это то, что вы узнаете, что вы есть, и у вас ничего не получается, или вы узнаете, что откусываете больше, чем вы можете пережевывать, что делает проект плохим головная боль из-за вашей неопытности. Я сделал это дважды с моей нынешней работой - к счастью, у меня есть очень понимающие работодатели. Хотя я чувствовал себя мёртвым в воде, это было несчастьем, но я стал намного лучшим программистом с гораздо более широким набором навыков, чем раньше.

Для определения того, какую работу отпустить и оставить, нет исчисления, только опыт и ваша личность. Вам просто нужно решить, что вы цените и преследовать это. Что нужно учитывать:

Это проект, над которым мне понравится работать? Является ли команда командой, с которой мне будет приятно работать?

Какой вид оплаты они будут предлагать? Если нет, то какое профессиональное развитие я получу? Они предлагают какой-либо общий риск (например, опционы на акции, процент прибыли)? Это большой убедитель для меня.

В любом случае, это просто принципы, которые нужно использовать при принятии решений. Все зависит от того, что вы цените. Например, я ценю интеллектуальные проблемы и время со своей семьей, поэтому обычно уделяю большое внимание тому, что представляет собой проект, и навыкам, которые я получу при этом. Тем не менее, я также заранее заявляю, что я работаю только 2 или 3 ночи в неделю, чтобы я мог проводить время с женой и детьми, так как я уже работаю весь день. Я корректирую крайний срок, чтобы удовлетворить это требование. Если им это не нравится, я не берусь за работу.

Что бы вы ни делали, убедитесь, что вы четко заявили, что вы будете и не будете делать, и убедитесь, что они четко изложили свои ожидания, прежде чем приступить к работе. Худшее, что может случиться, - это чтобы у клиента были неутвержденные ожидания, а вы недооценили эти ожидания.

PS Я действительно хотел бы прочитать эту статью ранее в моей карьере. Это относится к моему последнему абзацу. http://www.joelonsoftware.com/articles/fog0000000356.html

Джонатан Хенсон
источник
5
+1 за "никогда не работай для семьи". Нет, если ни одна из сторон не вложит в это слишком много средств и не посчитает это чистым развлечением, и даже в этом случае следует быть осторожным.
Этель Эванс
11

Как опытные разработчики принимают решение, брать ли проект или просто позволить ему уйти?

Нужна ли мне работа? Если это так, я «беру» проект.

Какие метрики помогут вам принять решение?

Сколько у меня есть вариантов? Более 1? Я могу выбирать между альтернативами.

Только 1? Что ж. Вот и все.

Вопрос "стресс в моей жизни" спорен; отказ принять проект означает отказ сохранить работу; что имеет катастрофические последствия.

Если у вас есть такая финансовая свобода, где решающим фактором является стресс, это действительно здорово.

С. Лотт
источник
3
+1: можно подумать, что в этом есть что-то большее, но это почти то, к чему оно сводится каждый раз.
Райан Хейс
@ S.Lott- Я уверен, что у вас часто есть возможность работать над несколькими проектами. Кажется маловероятным, что вы очень часто находитесь в ситуациях типа «делай или умри». Я мог бы предположить, что слишком много, но это, кажется, немного соломенный человек, так как кто-то с вашим опытом наверняка решил отклонить проект здесь и там, а также, вероятно, принимал проекты раньше, когда вам не нужно было в смысл "привязанный к деньгам"
Морган Херлокер
1
@ironcode: «Я могу предположить, что слишком много». Правда. У меня никогда не было возможности отказаться от проекта из-за стресса.
С.Лотт
@ S.Lott Я имею в виду стресс в том смысле, что у меня уже есть работа, и что-то в этом роде может просто оставить мне время для моей семьи.
J Lundberg
@J Лундберг: Пожалуйста, обновите свой вопрос, чтобы включить все факты.
С. Лотт
5

Что вы получите от этого проекта? Деньги? Опыт? Что-то другое?

  • Деньги: это от члена семьи (я стараюсь не заниматься бизнесом с семьей, но это совсем другое обсуждение), оно маленькое (так, чтобы оно звучало), вы довольно младше, так что не ожидайте много деньги из него (на основании моих опытов).

  • Опыт работы: вы можете изучать новый язык! Это может быть полезным в будущем, может дать вам небольшое преимущество перед разработчиками .NET, которые знают только C #.

Но ваш внутренний инстинкт подсказывает вам, что этот проект будет плохим . Почему это? Похоже, вы могли бы по крайней мере получить некоторый опыт от этого.

Большинство подрядчиков начнут с рассмотрения того, сколько денег они получат, чтобы решить взять на себя проект. В идеале, более сложные проекты ведут к большим деньгам. Если это трудно, она должна хорошо платить, но я не знаю , сведение , чтобы знать , если вы на самом деле будете получать деньги хорошо ...


В ответ на детали вашего обновления: Скажите ему, что это выходит за рамки возможностей одного младшего программиста. Вы могли бы провести несколько минут исследования и посмотреть, существует ли существующий продукт, который может делать то, что он хочет, и посмотреть, говорит ли страница «Функции» о настройке / плагинах / расширяемости. Он может также захотеть поговорить с магазином программного обеспечения на заказ, если там нет ни одного существующего продукта или требуется проделать большую работу по программированию плагинов. Нет ничего плохого в том, чтобы признать, что проект слишком велик для вас - это гораздо лучше, чем брать его на себя и терпеть неудачу полностью (особенно если это член семьи - функции семьи могут быть неловкими и напряженными в течение многих лет).

FrustratedWithFormsDesigner
источник
3
A friend of my family

Лично если эта фраза замешана, я не беру проект.


источник
2

Как фрилансер, я принимаю только те проекты, в которых я уверен, что смогу выполнить их вовремя, в рамках бюджета и в хорошем качестве. Отказ от проекта не означает безработицу - по крайней мере, не навсегда. Принятие проекта, который вы не можете осуществить, стоит всего - денег, репутации, здоровья.

Иногда бывает немного сложнее, когда хороший клиент нуждается в помощи для нового проекта, который просто не соответствует моим навыкам; но даже тогда лучше быть честным и позволить кому-то другому делать это.

В вашем случае вы можете и должны отрицать проект - вы недостаточно опытны, вы не знаете языка, он слишком велик для вас.

user281377
источник
1

Я занимаюсь внештатным программированием более двадцати лет. Для того, чтобы проект действительно был успешным, необходимо как минимум следующее:

  1. Кто-то, кто знает технологии программирования, программного и аппаратного обеспечения, используемые для развертывания, или технологии, достаточно схожие для быстрого изучения технологий развертывания
  2. Кто-то, кто знает проблемную область и может и хочет перевести это в спецификации, которые может использовать программист. (Если программист также является экспертом в области, и проект достаточно прост, спецификации могут быть в их голове или неофициальных заметках.)
  3. Кто-то, кто способен, хочет и имеет опыт в управлении задачами проекта, сроками и т. Д., И знает, какие подводные камни могут возникнуть при таких вещах, как оценка и как их избежать.
  4. Кто-то, чтобы управлять коммуникациями и отношениями между всеми заинтересованными сторонами проекта, включая программиста (ов) и клиентов
  5. Люди с обеих сторон, консультант и клиент, у которых есть опыт в поддержании текущих деловых вопросов, включая контракты и деньги. Если у вас нет такого опыта, вы можете обойтись с опытным консультантом, пока вы не получите.
  6. Деловые отношения на расстоянии вытянутой руки, где, если вам нужно принять жесткое деловое решение, у вас нет проблем вне работы
  7. Достаточно большая команда с правильным сочетанием опыта, инструментов и ресурсов для предоставления качественного продукта в требуемые сроки

Вы описываете друга семьи, который ничего не знает о программировании, который хочет, чтобы вы - неопытный программист - создавали ERP-систему, используя технологию, которую вы не знаете.

Мне кажется, что эта ситуация определенно не попадает на № 1, № 3, № 6 и № 7, и, возможно, все из них. Как говорит Адам на «Разрушителя мифов»: «Это рецепт катастрофы».

Черт возьми, я бы сам не трогал это с десятифутовым шестом. Я мог бы продолжать и рассказывать о других красных флажках, которые я вижу здесь, но, по сути, мой совет для вас: следуйте своей интуиции, потому что вы правы: «из этого ничего хорошего не получится».

Поскольку это друг семьи, на вашем месте я бы просто сказал: «У вас отличный проект, и вам нужен кто-то действительно хороший, а я слишком неопытен, чтобы давать вам результаты, которые вы должны иметь», и оставь это на этом.

Я также обнаружил, что когда у вас есть клиент, у которого проблема в одной области, он может быть проблемой в других. Потенциальный клиент, который даже подумал бы о том, чтобы система ERP была разработана и внедрена младшим программистом, либо настолько невежественен, что представляет опасность для себя и других, либо смехотворно дешев, и любой из них поместил бы их в мой список «держаться подальше» ,


FWIW, как консультант / фрилансер, я заканчиваю заполнять роли на моей стороне самостоятельно, по совету моей жены. Мы выяснили, что это за элементы, увидев, что проекты проваливаются из-за их отсутствия - иногда это были наши собственные проекты. И даже спустя двадцать лет, несмотря на проверку этих критериев, у меня все еще есть случайный проект, который не срабатывает - этот риск всегда является частью бизнеса. Теперь я просто проверяю, что проекты не терпят неудачу из-за того, что я сделал неправильно, и что контракты структурированы, поэтому мне платят, если другая сторона облажается.

Боб Мерфи
источник
0

Вы хотите работать с другими вовлеченными людьми?

Проект - это просто повод встречаться и общаться с людьми.

bmike
источник
Мне нравится эта точка зрения. Мы должны работать над проектом вместе.
Джонатан Хенсон
Это послужило мне очень хорошо. Детали проекта могут меняться, как пески во время шторма. Люди все еще могут вас удивить, но они меняются медленнее.
bmike
0

Моя личная задача - сделать небольшое исследование того, что он хочет, какие сроки, какие расходы он ожидает и т. Д. Если это на самом деле большая ERP, то помощь может длиться годами и действительно может быть ужасной. Управление отходами против SAP было бы примером того, насколько дорогой это может быть, если вы действительно имеете в виду большие, как в 9-значном бюджете проекта.

Моя цель в исследовании - нарисовать линию на песке, чтобы было понятно, почему я задаю вопросы и что я намерен получить в результате. "Насколько жизнеспособным я вижу это существо?" это вопрос, который у меня возникнет, так как я буду задавать вопрос о методологии, бюджете и сроках заранее, а затем проведу небольшое исследование, чтобы выяснить, действительно ли вещи находятся на уровне или это что-то, что может закончиться на каком-то юмористическом сайте ИТ как The Daily WTF .

JB King
источник