11 советов, как делать проекты и не сдохнуть

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

В закладки

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

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

Без ТЗ

Несколько десятков тематических картинок, куча крутых историй, советы бывалых… Все это идет лесом, когда появляется хоть один минимальный аргумент «вот в этом проекте, тут все просто и понятно, давайте не будем делать ТЗ». Когда ресурс времени/денег ограничен, может казаться, что писать ТЗ не нужно или не рационально. Есть подходы (методологии), которые предполагают работу без подробных техзаданий. Так вот, это - иллюзия.

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

Подробо расписанное ТЗ может как увеличить, так и сократить объем работ, планируемый на преселле. Соответственно, в Договоре вам нужен пункт о том, что цена может быть пересмотрена после согласования ТЗ.

И да, я за то, чтобы писать ТЗ после дизайна. Потому что в этом случает туда намного проще и точнее закладываются описания всех визуальных эффектов и работы элементов проекта.

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

Оценка задачи без программиста

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

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

Безлимитное количество правок

Доводилось сталкиваться с тем, что либо заказчик просит, либо исполнитель предлагает безлимитное количество правок в дизайн. «Правим до согласования», примерно так. Лично меня от этого отучил заказчик, получивший 52 (пятьдесят две) версии макета главной страницы! Как итог, я посчитал, что дешевле вернуть ему оплату, чем дальше работать по проекту. Проблема тут одна - рентабельность. При бюджете X мы можем потратить часы Y на задачу. И если объем работы превышен на 20% и более, то исполнитель на проекте не зарабатывает. А если на 30%, то начинает терять. То есть попадает в ситуацию, когда «дешевле не работать».

По-этому после внесения определенного количества (обычно 3-4) правок, макет считается принятым.

Молчание означает согласие

Тут все просто. Если на присланную работу нет ответа в определенный срок (от 3 дней до недели обычно), то работа считается принятой. Это не наша придумка, это положение Гражданского Кодекса. Попытка внести в договор иное, является ошибкой как с точки зрения управления проектом, так и и точки зрения законодательства.

Идентификация согласованных макетов

Тут вместо объяснения расскажу 2 реальные ситуации.

Менеджер проекта приносит заказчику макеты. - Все нравится (почти не глядя) - Да - Подпишите акты - Пожалуйста - Теперь подпишите сами макеты

- О! Если мне надо их подписывать, то я их тогда посмотрю

Вторая ситуация

Менеджер на стороне клиента согласовал с нами одну версию макета. А с директором другую. «Подлог» вскрылся только на готовом проекте. Пришлось переделывать.

Как итог. Подписывайте не только акт за работу, но и саму работу. Дизайн, текст ТЗ, скрин-шот верстки. Сэкономит кучу сил и времени.

Отдача исходников до оплаты

Тут возможны две проблемы. Первая: тот, кто будет заполнять сайт, может проигнорировать инструкции по работе с ним и банально его сломать. А чинить вам и за свои деньги. И второе - мы создаем «на той стороне» соблазн получить проект «за полцены». А уж советчиков, которые расскажут, что именно так и надо поступить, и вообще эти жулики разработчики должны работать бесплатно, уверяю, вокруг ЛПР-а всегда найдется тысяча.

Не прописано продление сроков

Все просто: сроки автоматически (по договору) продлеваются на время согласования выполненной работу. Почему так? Представим себе, что на каждый этап работы мы ждем ответа по 3 дня (и еще 2 исполняем то, что указано в ответе). Получается, что одна итерация правок занимает рабочую неделю. В каждом этапе работ разрешено 3-4 итерации правок. В проекте 4-5 этапов. Получаем продление сроков на 20(!) недель без единого дня задержки на стороне исполнителя. Хотите платить неустойку за полгода опозданий по срокам? Нет? Тогда пишите «Сроки исполнения работ по договору автоматически продлеваются на время внесения правок».

Проблема с обменом документами

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

Доп работы в обмен на сроки

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

Постановка задачи напрямую специалисту

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

Садомазо и чувство вины

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

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

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

Но в любом ином случае взяться решать бесплатно, значит признать себя виноватым в проблеме. И автоматически поставить заказчика в позицию «мой исполнитель плохой - исправляет, исправляет и никак не исправит». Так вы получите разом и испорченные отношения и убыточный проект. А могли бы получить хорошие отношения и прибыльный проект.

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

А тем, кто дочитал до конца, бонусные двенадцатые грабли о работе одного специалиста над несколько проектов. Расскажу их в виде анекдота: Решили открыть в Одессе публичный дом для иностранных моряков. В горком пригласили тетю Песю с Молдаванки, известную в дореволюционной Одессе бандершу, и предлагают ей возглавить новое учреждение. Ей сулят всяческие блага. - Нет, - говорит тетя Песя, - знаю я ваши порядочки. Десять коек - для горкома, двадцать - для обкома, органам - по потребности. Весной вы будете моих девочек дергать в колхоз на посевную, осенью - на уборочную. А тетя Песя ложись и выполняй план?

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

Написать
{ "author_name": "Константин Елистратов", "author_type": "self", "tags": [], "comments": 13, "likes": 8, "favorites": 1, "is_advertisement": false, "subsite_label": "flood", "id": 36555, "is_wide": false }
00
дни
00
часы
00
мин
00
сек
(function(){ var banner = document.querySelector('.teaserSberbank'); var isAdsDisabled = document.querySelector('noad'); if (!isAdsDisabled){ var countdownTimer = null; var timerItem = document.querySelectorAll('[data-sber-timer]'); var seconds = parseInt('15388' + '59599') - now(); function now(){ return Math.round(new Date().getTime()/1000.0); } function timer() { var days = Math.floor(seconds / 24 / 60 / 60); var hoursLeft = Math.floor((seconds) - (days * 86400)); var hours = Math.floor(hoursLeft / 3600); var minutesLeft = Math.floor((hoursLeft) - (hours * 3600)); var minutes = Math.floor(minutesLeft / 60); var remainingSeconds = seconds % 60; if (days < 10) days = '0' + days; if (hours < 10) hours = '0' + hours; if (minutes < 10) minutes = '0' + minutes; if (remainingSeconds < 10) remainingSeconds = '0' + remainingSeconds; if (seconds <= 0) { clearInterval(countdownTimer); } else { timerItem[0].textContent = days; timerItem[1].textContent = hours; timerItem[2].textContent = minutes; timerItem[3].textContent = remainingSeconds; seconds -= 1; } } timer(); countdownTimer = setInterval(timer, 1000); } else { banner.style.display = 'none'; } })();
{ "id": 36555, "author_id": 55461, "diff_limit": 1000, "urls": {"diff":"\/comments\/36555\/get","add":"\/comments\/36555\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/36555"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199791 }

13 комментариев 13 комм.

Популярные

По порядку

Написать комментарий...
2

Привет, спасибо за статью. Пожалуйста, поправьте пару моментов в соответствии с нашей редполитикой:
1. Мы не используем никаких смайликов и эмодзи в материалах, их нужно убрать.
2. В редакторе есть инструмент «Заголовок», лучше выделить разделы текста с его помощью, будет удобнее читаться.
3. Разбейте абзацы на более короткие, тоже будет легче.
4. Мы стараемся не использовать жирный шрифт на целые абзацы, ваш финальный анекдот можно отбить тремя звёздочками (это тоже инструмент в редакторе) и оставить не жирным.

Ответить
1

Привет! Спасибо! 15 минут :-)

Ответить
–3

Могу сказать, что работая фрилансером, очень сложно настроить себя на работу в одиночку. Да, фриланс, конечно крут, что все деньги от заказа, оставляешь себе, но единственный плюс работы в офисе-это командный настрой что-ли. Хотя выбирать между хорошей ЗП и командой не надо, уже лет десять наверное в любом более-менее крупном городе можно арендовать место в коворкинге, тем более обычно в нем печеньки и кофеёк включены, например Андерхаб http://www.underhub.com.ua/kovorking/. Можно с толпой приятных "коллег" по фриланс-цеху познакомиться, сгенерить новые идеи. Да и мотивации в работе в толпе больше. Так что опытным офисным планктонам могу советовать сваливать на фриланс и рубать бабло.

Ответить
1

Дайте угадаю. Вы фринлансер и сейчас ваш проект - писать отзывы?

Ответить
0

Если у вас заказали нативную рекламу, то она не очень-то нативной вышла

Ответить
0

Не понятно, Молчание означает согласие - это ошибка или надо так работать, что если за 3 дня не ответили, считать, что согласны?

Ответить
0

Нужно внести в договор, что отсутствие отказа означает принятие. Так работает гражданский кодекс в принципе, но никогда не лишне проговорить еще раз в договоре.

Ответить
0

Это в реальности работает? Или все кивают, подписывают договор, потом долго не отвечают, но принимать молчание за согласие отказываются?

Ответить
1

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

А ты знай себе херачишь дальше.

А они такие: "Стой-стой-стой, wtf!"
А ты им: "Так вы ж согласились".
"Нет! Мы не соглашались!"
"Ок. Оплачивайте - переделаем".
"Чё это?! Переделывайте бесплатно. Мы ж не соглашались".

И тут ты достаёшь договор. И это начинает "работать в реальности".
Редко кто начинает упираться, когда в договоре прописано.

Ответить
0

Очень утрировано, но да.
Варианты
- Просто тянут время, не принимая задачу
- Передумывают на полпути по тем или иным причинам

Ответить
0

Спасибо за статью, большую часть уже применяем, но полезное нашли и добавим в производство :)

Ответить
0

Спасибо! Это реально "выжимка наших болей". Рады, что кому-то полезно :-)

Ответить

Комментарий удален

0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "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" ], "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": "createAdaptive", "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" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Нейронная сеть научилась читать стихи
голосом Пастернака и смотреть в окно на осень
Подписаться на push-уведомления