Работа с плохо написанным кодом, невозможность уложиться в жесткие сроки на испытательном сроке [дубликат]

Джон Доу

Работа с плохо написанным кодом, невозможность уложиться в жесткие сроки на испытательном сроке [дубликат]

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

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

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

Как я должен профессионально сообщить своему менеджеру, что проблемы с кодом могут привести к тому, что я не уложусь в срок?

Килиси

Он не всерьез, иначе он бы не делал этого так

Человек в маске

@john doe Я отредактировал описание вашего вопроса, включив в него вопрос, который, как я полагаю, является вашей реальной целью. Ваш первоначальный вопрос "что мне делать?" слишком открытый и не подходит для этого сайта. Если вы не согласны с этим, сообщите мне об этом или отредактируйте вопрос, включив в него практически ответ на вопрос, на который мы можем попытаться помочь. Связанный дубликат, вероятно, полезен и в вашей ситуации.

Эрик

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

Человек в маске

@Erik Это отличный момент, я, кажется, упустил это из виду. Однако неясно, консультировались ли с ОП до того, как менеджер установил крайний срок. Здесь также возможно недопонимание. Когда менеджер говорит: «Мы хотели бы выпустить первый релиз к следующему месяцу», это не обязательно означает, что это «жесткий» срок, просто руководство желает этого. Кажется, это еще одна причина, по которой это не дубликат, я отзову свой дублирующий голос.

пользователь59841

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

Человек в маске

@sdkks Вы делаете несколько хороших замечаний, возможно, вы захотите превратить их в полноценный ответ.

кузнец

Непонятно, какую проблему вы пытаетесь решить. Код работает правильно, но есть проблемы с производительностью? Почему рефакторинг — это решение? Является ли код глючным и сложным в обслуживании? Можно ли исправить ошибки без рефакторинга ВСЕХ в качестве первого шага? Я также не понимаю, какой смысл был подписывать документ, поскольку вы находитесь на испытательном сроке, и ваш менеджер решит, будете ли вы продолжать. Я думаю, что ваш пост упускает важную информацию

Джон Доу

@smith Я думаю, вы не совсем четко прочитали вопрос, есть новенький, который не знает, что такое SRP или DRY, и он написал полную систему, которая должна быть выпущена в следующем месяце. Подписание документа было не моим выбором, это был выбор моего менеджера.

кузнец

@johndoe: у кода есть проблемы с производительностью, я предполагаю, что есть ошибки, и его нужно быстро выпустить. Мои вопросы к вам: 1) можете ли вы исправить проблемы с производительностью и ошибки и заставить его работать правильно, не рефакторируя все в рамках сделки? 2) есть ли у вас какие-либо причины не представлять это своему руководителю в качестве решения? Я имею в виду, что ваш менеджер хочет, чтобы это было вынесено за дверь. Конечно, рефакторинг — это не то, что его больше всего волнует.

пользователь59841

Кстати, я только что наткнулся на это. Психологическая безопасность на работе, некоторые положительные моменты: blog.intercom.com/psychological-safety

Дональд

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

тиего1967

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

Руи Ф. Рибейро

Что, если док - это уловка для вас, чтобы работать в нерабочее время?

Эрик

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

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

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

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

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

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

Павел

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

Джон Доу

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

Павел

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

кузнец

@Erik: менеджер, которого вы описываете, наверняка не заинтересован в рефакторинге как таковом. Наверняка просто хочет, чтобы продукт вышел за дверь. Мне кажется, в посте чего-то не хватает.

Эрик

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

скрежет729

Я прочитал сообщение, в котором довольно четко говорилось «рефакторинг и документ».

Джо Страззер

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

Как я должен профессионально сообщить своему менеджеру, что проблемы с кодом могут привести к тому, что я не уложусь в срок?

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

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

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

скрежет729

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