Konstantin Panphilov
10 039

Как вести себя девелоперу загнивающего проекта

Что делать, если вы разработчик в проекте, который заведомо потерпит крах? Если всё очень плохо, и выхода, кажется, нет? Такой вопрос задал один из пользователей в специальном разделе Stack Exchange. Мы выбрали самые интересные ответы.




Я — разработчик в команде из 5 человек, и я думаю, что наш проект движется к катастрофе. Сейчас объясню, в чём дело, но вопрос вот в чём: как я должен себя вести?

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

Что мне в этом случае делать? Мне работать больше или просто расслабиться? И что сказать менеджеру?

Причины, по которым проект близится к провалу:

  • Дедлайн скоро, а многие из первостепенных функций ещё не окончены;

  • Приложение нестабильно и сложно в использовании;

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

  • Слишком сложная база данных (более 100 таблиц);

  • Мутное управление;

  • Почти никакого автоматизированного или модульного тестирования;

  • Никаких интеграционных тестов, хотя продукт во многом опирается на сторонние системы.


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



Расскажите о своих сомнениях


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

У менеджеров всегда должен быть выбор, что делать; но ваш долг — оценить ситуацию и что-то донести до них. Пошлите email или оставьте записку на столе, если всё катится коту под хвост.

Сделав это, продолжайте работать над проектом с верой в лучшее.

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

Багаж знаний


Потратьте немного времени, чтобы прочесть две книги.

Death March (рус. «Путь камикадзе») — это каноническая книга, которая описывает ущербный управленческий стиль, который широко распространён в сфере разработки программного обеспечения. Из-за сжатия сроков, излишнего усложнения, бесхозяйственности многие проекты плохо заканчивают. Книга помогает понять, что вы не одиноки на этом смертельном марше. Автор Эдвард Йордон классифицирует бесперспективные проекты на 4 категории, в каждой из которых существуют разные стратегии спасения. Иногда единственный выход — просто уйти. Эта книга поможет вам выяснить, какие варианты у вас есть, и узнать, что вы можете или не можете сделать.



Catastrophe Disentanglement написана больше для менеджеров проектов. Она нацелена на то, чтобы помочь отсортировать подорванный проект: что нужно убрать, что нужно вернуть, как донести это до потребителей. «Традиционное» управление проектами часто приводит нас в тупик, и мы не сможем выбраться из него, пользуясь теми же методами. Эту книгу несколько труднее читать, чем «Путь камикадзе», но очень неплохо иметь её на книжной полке.

Останьтесь там же, но имейте варианты



  1. Работайте много, но не в ущерб семье или здоровью;

  2. Записывайте все критичные решения, особенно если они касаются вашей работы;

  3. Продолжайте налаживать связи и имейте несколько запасных вариантов, если ситуация станет слишком сложной или вы станете жертвой массовых увольнений;

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

  5. Если вы предчувствуете провал проекта, значит, вы предчувствуете и разбор полётов. И там каждого настигнет ответственность. Приготовьтесь защищать весь свой код. (К слову, всегда пишите код понятно, чтоб потом проще было за него отчитываться). Если у вас есть письма или фрагменты ТЗ, которые повлияли на ваши действия, тем лучше.

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


#Провал #Стартап #книги #разработка #а_как_надо #проект #гниль #как_крысы_с_тонущего_корабля

{ "author_name": "Konstantin Panphilov", "author_type": "self", "tags": ["\u043f\u0440\u043e\u0432\u0430\u043b","\u0441\u0442\u0430\u0440\u0442\u0430\u043f","\u043a\u043d\u0438\u0433\u0438","\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430","\u0430_\u043a\u0430\u043a_\u043d\u0430\u0434\u043e","\u043f\u0440\u043e\u0435\u043a\u0442","\u0433\u043d\u0438\u043b\u044c","\u043a\u0430\u043a_\u043a\u0440\u044b\u0441\u044b_\u0441_\u0442\u043e\u043d\u0443\u0449\u0435\u0433\u043e_\u043a\u043e\u0440\u0430\u0431\u043b\u044f"], "comments": 0, "likes": 19, "favorites": 0, "is_advertisement": false, "section_name": "default", "id": "1801", "is_wide": "1" }

Прямой эфир

Подписаться на push-уведомления
[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "create", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } } ]