Как я должен сказать своему начальнику, что я не могу уложиться в срок?

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

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

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

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

Как я должен сказать своему начальнику, что я не могу уложиться в срок?

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

Вы только что сказали им, что закончите в среду, а не говорите им, что не знаете, когда закончите. Это не пойдет хорошо. Просто сказать это.
«Что мне делать» — вообще не самый большой вопрос, даже с учетом предыдущего контекста. Вместо этого вы можете использовать заголовок-вопрос, что совершенно нормально.
Сможете ли вы выполнить доставку, если вам дадут дополнительное (но ограниченное) время? Можете ли вы выполнить доставку в сокращенном объеме, но вовремя (или вскоре после этого)? По сути, можете ли вы доставить что- нибудь ценное в ближайшем будущем?

Ответы (3)

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

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

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

У нас есть сотрудник, который не в себе. Я бы в равной степени возложил вину на его менеджера, который должен был знать, что оценка, данная под огромным давлением, не будет выполнена. Задача менеджера в первую очередь состоит в том, чтобы выполнить задачу с минимальными затратами, и давлением на неопытного разработчика этого не добиться.
@ gnasher729 Я бы винил в основном менеджера. Похоже, менеджер пытался манипулировать им, чтобы заставить его сделать то, что он уже говорил, невозможно.
@ gnasher729 Я не согласен, менеджер не технический специалист, судя по всему, он продавец. Журавль в небе и методы продаж под высоким давлением — вот его основные преимущества. Техники должны твердо стоять на ногах. ОП может либо извлечь из этого урок, либо обвинить всех остальных и продолжать копать себе яму, пока она не рухнет на него.
  1. Дайте им понять, что они не могут ожидать от вас каких-либо результатов. Сообщите им, почему: у кода нет документации, вы не смогли идентифицировать какую-либо структуру кода, а спагетти-характер кода делает невозможным его осмысление, не говоря уже о понимании. Дайте им понять, что попытки работать с кодом как есть для добавления новых функций — это бесполезное занятие.

  2. Предложите альтернативу, включая создание с нуля. Дайте им оценку того, сколько времени это займет, если вы могли бы сделать это с нуля.

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

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

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

Работа с кодом как есть просто означает, что тот факт, что код очень плохо написан, не имеет структуры и недокументирован, - этот факт теперь является вашей неразрешимой проблемой. Отсутствие необходимости работать с этим кодом — единственный способ обойти все проблемы, встроенные в этот код.

Скажите им, что если бы код был модульным, вы могли бы добавлять функции, понимая, скажем, 10% кодовой базы. Тот факт, что код представляет собой спагетти, означает, что вы должны понять 100% кодовой базы, прежде чем сможете что-то сделать. Спагетти-код и необходимость понимать 100% кодовой базы — это очень плохая комбинация.

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

Подобные ответы не соответствуют стандартам или представляют собой спагетти-код — отличные разглагольствования для веб-форума, но на самом деле они не являются причиной того, что вы не можете завершить проект. Этот модуль A имеет требования модулей B и C и что внесение изменений в A приведет к тому, что B и C больше не будут функционировать, потому что функция A(3) больше не сможет вызывать B или C, потому что изменения, необходимые для создания B и Правильное выполнение C будет означать, что функция b(4) и C(1,3,9) теперь имеет Предпосылку D, которая также является предпосылкой A.

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