Работа с не подлежащими обсуждению сроками как единственным ресурсом в проекте программного обеспечения [дубликат]

Вопрос :

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

Фон :

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

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

Я: Можем ли мы увеличить количество дней для подзадачи с 1 до 5 дней?

Менеджер: Как вы думаете, почему эта подзадача займет больше времени? Я думал, ты знаешь кодовую базу.

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

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

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

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

Изменить: этот вопрос не является дубликатом этого

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

@JoeStrazzere Нереалистичный - это относительный термин. Мой руководитель не считает эти сроки нереалистичными. Он специально попросил меня обходить его оценки, что означает работу по 12 часов и по выходным. Для него это может быть нормально, но для меня это нереально.
вы остаетесь без вариантов. Конечно, я постараюсь сделать все, что в моих силах, без сверхурочной работы. Вам будет нечего объяснять, когда наступит крайний срок, поскольку вы уже ясно заявили, что это невозможно. Кроме того, возможно, вы могли бы сосредоточиться на важных частях и попытаться приспособить работу над ними к тому времени, которое у вас есть, оставив то, что может быть вспомогательным или менее важным.
Я думаю, дело в том, что менеджер хочет, чтобы ты работал по 12 часов в день.
Первое исследование, о котором я слышал, о рабочем времени было проведено Гансом Айзенком в военной промышленности Великобритании во время Второй мировой войны, когда рабочие должны были быть действительно мотивированы. Он обнаружил, что люди, работающие 57 часов в неделю, менее продуктивны, чем люди, работающие 48 часов в неделю. Не менее продуктивно в час, но менее продуктивно в неделю. Как правило, разработчик программного обеспечения, работающий по 60 часов в неделю в течение шести недель, и один, работающий по 40 часов в неделю в течение шести недель, имеют одинаковую производительность в неделю, за исключением того, что после шести недель человек устает и быстро теряет производительность.
Конкретика другая, а вопрос тот же. Есть ли какая-то причина, по которой ответы там вам не помогут? Это было бы лучше включить в ваше редактирование, чем ваше объяснение того, чем ваши особенности отличаются.
Так чем это закончилось? :)

Ответы (5)

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

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

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

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

  • Не жалуйтесь. Действуйте изо всех сил. Приложите все возможные усилия.

В конце проекта произойдет 1 из двух вещей:

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

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

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

Возможно, я не смогу наметить все шаги, потому что я не знаю, какими они будут. Мне потребуется некоторое время, чтобы проанализировать, какими будут шаги, и оценить каждый шаг. К сожалению, часы тикают, и получение оценок, которые действительно будут иметь смысл, займет значительное количество времени.
Лучшим вариантом было бы тратить 20 минут каждое утро на составление плана на день и каждый день отправлять его моему менеджеру, прежде чем я приступлю к какой-либо работе. Таким образом, я буду более организованным, а мой менеджер получит возможность увидеть объем работы, который он, к счастью, забыл учесть в оценках.
@Bot - дело в общении. Делайте все возможное, добавляйте детали и исправления по мере их появления. Когда вы говорите, что вам понадобится "некоторое время" - набросайте его для начала. Дело в том, что вы не хотите, чтобы ваш менеджер спрашивал: «Что случилось?» Ежедневно держите его в курсе как можно более подробно и точно. Излишне общаться.
Хорошая мысль о том, чтобы быть спокойным и не слишком эмоциональным.
Я думаю, что коммуникация вполне может быть решением здесь. Хотя мой менеджер может понять мою цель, заключающуюся в отправке ему ежедневных обновлений, и попросить меня прекратить это делать. Если бы младший разработчик каждый день присылал мне электронные письма о том, что он собирается сделать, я бы почувствовал, что он делает это, чтобы замести следы. Меня это может даже немного раздражать.
@bot: мои старшие сотрудники присылают мне ежедневные обновления статуса. Они получают обновления от людей, которыми они управляют. Они короткие — сборка занимает 2 минуты, а чтение — 30 секунд, но это дает цепочке достаточно информации, чтобы знать, как идут дела.
@bot - Вы не младший разработчик. Вы ЕДИНСТВЕННЫЙ разработчик в этом проекте и, следовательно, являетесь руководителем группы. Официальное звание или нет, это ваша роль, а отчеты о статусе руководителю проекта (вашему менеджеру) не только уместны, но и ожидаемы.
@CKing Любой менеджер, который просит вас прекратить присылать отчеты о состоянии текущих проектов, совершенно некомпетентен. Это буквально одна из самых больших частей их работы — постоянно проверять, как идут дела.

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

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

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

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

  • во-первых, когда крайний срок нереалистичен, сверхурочная работа — это не ответ, а симптом проблемы.

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

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

Чтобы ответить на ваш вопрос, я бы сделал две вещи:

  • убедитесь, что менеджер понимает и отслеживает мой прогресс в этом проекте (то есть, если бы я сделал 50% того, что должен был сделать, чтобы уложиться в срок, я бы сообщил об этом как можно более недвусмысленно).

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

Если бы ничего не сгорело и менеджер решил: «Я не могу изменить сметы сейчас» из-за каких-то нереалистичных оценок, я бы сделал все возможное в отведенное компании время . В вашем контракте с компанией указано, что компания может от вас потребовать (указывается ли сверхурочная работа? в каких условиях?).

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

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

Изменить жирным шрифтом .

Хорошая мысль о том, что сверхурочная работа является симптомом, а не решением.
Re: Сверхурочные. Не создавайте прецедентов для нереалистичных ожиданий. Вы будете удивлены, как пара месяцев сверхурочной работы для завершения проекта автоматически превращается в ОЖИДАЕМУЮ ПОСТОЯННУЮ СВЕРХРАБОЧУЮ РАБОТУ от вашего менеджера. Когда все успокоится и они увидят, что вы работаете в обычное время, они воспримут это как безделье. Как сказал Утна, нечастые краткосрочные сверхурочные работы для соблюдения реалистичных сроков не являются необоснованными. Расширенная сверхурочная работа, безусловно, есть. Если вы уступите и сделаете это, то вы создадите прецедент, которого от вас будут ожидать каждый раз, когда они будут просить.

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

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

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

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

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

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

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

+1 за «если вас уволили из-за этого, то вы, вероятно, были бы уволены, если бы вы все равно пропустили крайний срок». Один из верных способов для вашего менеджера не уложиться в срок — уволить вас прямо сейчас.
Правда в том, что старший разработчик и я — единственные, кто действительно хорошо знает существующую систему. С такими агрессивными оценками мы единственные два человека, которые могут кому-то прийти в голову по поводу этой деятельности. Старший разработчик связан с несколькими проектами, поэтому я почти единственный вариант, если у него на уме такие жесткие сроки. Единственное, что меня беспокоит, это тот факт, что я могу выполнять всю тяжелую работу, необходимую для соблюдения этих сроков, и все равно рисковать тем, что меня будут считать человеком, который боится сталкиваться с трудностями.
@bot: Если сроки возможны, то я не совсем понимаю, почему вы с самого начала были в офисе своего босса. Либо вы можете выполнить работу в отведенное время, либо нет. Если можете, но просто отказываетесь от работы, то нужно «встряхнуться лютиком» и «просто сделать». Однако, если количество сверхурочной работы таково, что вы чувствуете себя оскорбленным, вам необходимо обратиться за помощью. Если помощь не приходит, вам нужно принять некоторые решения о том, где вы хотите работать.

Как мне справиться с нереалистичными сроками в проекте программного обеспечения?

Как правило, здесь следует учитывать несколько моментов:

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

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

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

Мое предложение было бы добавить дополнительные часы и попросить о помощи.

Что мне сказать своему руководителю, если я пропущу крайний срок?

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

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

В зависимости от этих первых нескольких пунктов будет несколько вариантов:

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

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

  3. Погрузитесь — я также видел случаи, когда команда тратила дополнительные часы и укладывалась в срок. Конечно, это сопряжено с риском того, что вас попросят сделать это снова, но здесь нужно быть осторожным в отношении того, как распоряжается временем в компании, поскольку если бы было затрачено много дополнительного времени, это можно было бы использовать позже. В качестве альтернативы, получение одобрения OT может быть еще одной стратегией.

Сроки были навязаны моему менеджеру его менеджером. Сроки — это религия на моем рабочем месте, и я много раз работал сверхурочно, прежде чем уложиться в сроки. Текущие сроки находятся на совершенно новом уровне, но их необходимо будет соблюдать независимо от того, соблюдаются ли они по какой-либо конкретной причине. Хорошая мысль о том, чтобы попросить о помощи.
JB поднимает хорошие моменты. Откуда вы знаете, что срок нереалистичен? Вы не хотите выполнять работу, необходимую для доказательства ее нереалистичности (например, график), так откуда вы знаете? Также по поводу плана на случай непредвиденных обстоятельств. Выясните конкретно, что абсолютно необходимо к крайнему сроку. например, если это демонстрация, возможно, некоторые функции должны только работать, но на самом деле это не так. Затем предложите поработать над этой функциональностью в последнюю очередь с имитацией функциональности в качестве запасного варианта. Однако я не знаю, как вы добьетесь чего-либо без расписания и собственных оценок.

Вот ответ вашего менеджера:

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

И главное для меня вот что:

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

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

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

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

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

  • Основная функциональность: что можно сделать к сроку, что было бы надежно и полезно для продвижения проекта. Ваша цель будет состоять в том, чтобы двигаться вперед, делая все возможное, признавая себе, что общий срок не может быть установлен, но насколько хорошо я буду выглядеть — и насколько хорошо будет выглядеть проект — к тому времени, когда срок будет соблюден.
  • Проблематично, но необходимо: что нельзя сделать в срок без серьезного ущерба для качества. FWIW в каждом проекте по программированию, в котором я участвовал, всегда была основная функциональность, которая может быть невидима для неспециалистов, но покрывает 80% того, что нужно сделать. Поэтому, если вы сможете завладеть этим фундаментом, закрепив базовую функциональность, вы выиграете по-крупному.
  • Проблематично и требует новой стратегии: какие части проекта кажутся «хорошими вещами», но на самом деле представляют собой временную и ресурсную яму, которая негативно повлияет на проект в целом. Много раз — особенно в невидимом мире программирования — идеи, которые кажутся концептуально хорошими на бумаге, могут оказаться кошмаром в реальном мире. Например, если ваш проект включает в себя аспекты внешнего дизайна, требующие группового рассмотрения, и вы знаете, что они займут время и потребуют пересмотра, то он попадет в последнюю категорию.

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

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