Новая работа и невозможный срок [закрыто]

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

Фон:

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

Текущий сценарий:

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

Мне также сказали, что финансирование проекта уже закончилось, и они должны завершить проект как можно скорее.

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

Отредактировано, не надо ругать коллегу.
@FrankFYC «не в соответствии с отраслевыми стандартами» звучит очень классно, но поверьте мне, дерьмовая реальность, и мне не приятно это говорить, я имею в виду, что вы не можете понять даже имена переменных.
Ваш коллега использует SE?
@FrankFYC так не думаю, даже если он использует, я не думаю, что он узнает, что это он, потому что такие истории распространены :)
В том числе оскорбления выставляют вас в плохом свете, а не их... Просто к вашему сведению. Выражение уважения касается не человека, которого вы уважаете, а человека, которым вы являетесь.
"Что, если...?" это не совсем та цель, которую мы можем решить. Если вы хотите уйти с работы, вы можете это сделать, но мы не можем принять это решение за вас. Говорили ли вы своему руководителю, что считаете, что уложиться в срок будет невозможно? Хотя вопросы о крайнем сроке, как ни странно, отсутствуют в вашем вопросе - просто кажется, что вы настаиваете на переписывании, что, по-видимому, займет намного больше времени, чем просто выполнение того, что вам сказали. 99,99% компаний были бы против того, чтобы новый сотрудник начал переписывать текст, особенно в условиях приближения крайнего срока.
Это действительно классический компромисс при работе над чужим кодом. К сожалению, многие разработчики попытаются переписать существующий код вместо того, чтобы попытаться понять кодовую базу, но это действительно может быть плохо спроектированное программное обеспечение. Вы можете высказать свое беспокойство своему руководству, особенно по поводу того, почему программное обеспечение плохо спроектировано (не будет ли оно масштабироваться с точки зрения производительности? Будет ли сложно добавлять новые функции?), и руководство должно решить, что делать дальше.
@Dukeling, вы говорите, что 99% компаний могут не проводить проверку кода? И это нормально для 99% компаний, чтобы позволить справиться с большим проектом более свежим? Я знаю, что вы не в той же ситуации, но старайтесь избегать таких общих утверждений, которые в некоторых случаях не имеют смысла. Кроме того, имейте в виду, что у ОП тоже должен быть некоторый опыт, и если он задает вопросы здесь, то он должен быть тупым или что-то в этом роде. Во всем вашем комментарии я чувствую, что вы не верите в текущую ситуацию, все в порядке, но не обобщайте.
@OnetimeOnly Я не против крупномасштабных переписываний (на самом деле, наоборот), но их трудно продать с точки зрения бизнеса — это целая куча времени разработчиков, потраченного ни на что, что приносит компании деньги (идея в том, конечно, это выгодно в долгосрочной перспективе, но этот компромисс трудно измерить заранее). Если вы были там всего месяц, для них неразумно доверять вам понимание этого компромисса (но вы можете заставить их понять это). У меня нет никакого мнения о том, чтобы приглашать новых / недавно выпущенных сотрудников для работы над большими проектами, кроме как «это случается».

Ответы (4)

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

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

Мне также сказали, что финансирование проекта уже закончилось, и они должны завершить проект как можно скорее.

Таким образом, вы должны стремиться завершить проект как можно скорее. Убедитесь, что вы понимаете, что ваш босс имеет в виду под «как можно скорее».

Я очень хочу делать добро, но это моя первая работа, где все против. Я действительно хочу убежать, но я не хочу переключаться слишком часто. Что можно сделать в таких ситуациях?

Ну, ты можешь убежать, но это не лучшее решение.

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

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

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

Вы могли бы спросить, можно ли просто отменить проект. Я предполагаю, что это неосуществимо.

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

Затем я позволяю своему боссу принять решение о продолжении проекта, добавлении к нему ресурсов, его пересмотре. отменить его или продлить дату.

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

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

Вы были назначены в команду, так что будьте членом команды.

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

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

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

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

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

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

«Лучшее, что вы можете сделать, — это просто взять у них задание, сосредоточиться на своей задаче, выполнить ее своевременно и эффективно и перейти к следующей задаче». как? В прошлый раз, когда я пытался сделать все возможное, единственный комментарий, который я получил, был «Видите, вы откладываете вещи, и нет необходимости в рефакторинге». Вы сказали мне быть членом команды, но я хочу быть хорошим членом команды, я думаю, вы не читали, что я потратил много времени на изучение ремесла хорошего программирования.
@OnetimeOnly - Иногда быть хорошим членом команды означает отложить работу хорошего программиста на второй план и просто делать то, что вам говорят, и так, как вам говорят. (Кстати, я отредактировал это в ответе) - Просто напишите код, который вам сказали написать, чтобы делать то, что вам говорят. Не боритесь с системой и не надейтесь на рефакторинг, просто делайте работу и дайте проекту провалиться на плечах вашей команды. Это не значит, что не вносите предложений, просто не боритесь за изменения только потому, что это неправильно.
Извините, если я забыл вам сказать, что зацепки нет. Был один парень, и теперь я должен быть ведущим, так как у меня больше опыта, звучит смешно, но это правда. Так что никто не говорит мне писать код, просто осталось пару фич, и они были завершены с моей помощью.
@OnetimeOnly - Теперь он лидер... пусть он будет лидером, заставь его быть лидером и следуй его направлению. Это лучший курс действий для вас. Возьми этот бутерброд с дерьмом и подавись им с улыбкой на лице и притворись, что это было прекрасно. Через год никто не вспомнит о твоем участии в этом провальном проекте. Но, будучи хорошим и позитивным членом команды, вы можете получить приглашение в лучший проект в будущем.
Да, вы говорите правильно, и я тоже так думал, хотя это немного смущает, но хорошая сторона в том, что меня здесь никто не знает. Посмотрим, что я буду делать после релиза, потому что я не думаю, что пробуду здесь дольше.
@OnetimeOnly — это ваш выбор, но если вы убегаете с работы каждый раз, когда вас переводят на дерьмовый сэндвич-проект, вы будете много убегать.

Будьте объективны и реалистичны, принимайте во внимание факты проекта и представляйте его таким образом, чтобы не сжигать мосты.

Столкнувшись с недвижимым объектом, определите тот факт, что он неизменен, и предложите решения. Если не можете, будьте прямолинейны и скажите, что это нереально.

Что нельзя изменить:

  • Финансирование
  • Расширение
  • Редакция кода

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

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

Я попробовал это через пару недель после присоединения, но проблема в том, что мой коллега новенький, и его очень трудно убедить, иногда мне не удается с ним общаться, потому что он мало или совсем не знает. Он всегда говорит, что нет ничего плохого в том, что мы можем сделать то или иное, что не имеет смысла.
Вам не нужно его уговаривать. Вы должны убедить руководителя проекта. «Я обсуждал с X вопросы A, B и C. X ответил: a, b и c. Я не согласен с D, E и F. Я довожу это до вашего решения». Как только решение принято, оно уже не в ваших руках.
Сегодня я думал взять распечатки кодов до и после рефакторинга и показать ему резкое изменение читабельности и сложности, но комментарий менеджера по поводу финансирования меня сдерживает.
Финансирование находится вне вашего контроля. Вы представляете свое профессиональное мнение и оставляете принятие решения руководителю. Если ваш руководитель откажется от того, что вы рекомендуете, не принимайте это на свой счет, делайте все, что в ваших силах, с тем, что вам дали. Этот проект не станет концом света.

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

Они уже сосредоточены на следующем источнике финансирования.

Так что просто делай, что можешь.