Существует ли практика передачи выполненного на половину проекта?
Собственно нужен совет сообщества как лучше поступить в сложившейся ситуации.
8 месяцев назад предложили мне взять один заказ на разработку сервиса (торговой площадки). У заказчика был кривой проект, который ему сделали в студии, он хотел сделать редизайн и добавить фишек, но структура проекта обслюнено не подходила для изменений, своя цмс, логика перемешанная с отображением, вызовы каких то классов, в общем один кошмар.
В то время у меня было свободное время, мало опыта, хотелось подработать, я предложил другу разделить проект и мы согласились его делать, взяли срок 4 месяца и приступили к созданию с нуля используя в качестве платформы разработки zend.
Но оказалось, что мы совершили ошибку. Когда мы начали верстать и детально присмотрелись к макетам, оказалось, что многие элементы, казавшиеся одинаковыми таковыми не являются и верстать в разы больше, чем предполагалось. Изначально мы предполагали брать куски логики из старого проекта, но когда проанализировали его, то пришли к выводу, что код не пригоден для эксплуатации. В довесок мой товарищ хоть и уверял, что сможет уделять проекту достаточно времени, почти ничего не делает, ссылаясь на занятость.
По итогу мы затянули сроки, за 8 месяцев и у меня стало меньше свободного времени, в довесок к основной работе появилась прибыльная подработка. Заказчик постоянно требует то, чего мы изначально не планировали, а отказывать ему как то неловко из-за срыва сроков из за чего сроки еще больше затягиваются. Товарищ мне не помогает, а у меня уже нет сил смотреть на этот проект.
По итогу работа готова на половину, мы забрали половину оплаты, а я не могу с ним работать. Мне неприятно на него смотреть, мне невыгодно финансово им заниматься, но что делать дальше я не знаю, может свести заказчика с новым исполнителем и отдать проект? Или рассказать заказчику о saas магазинах и открыть глаза, на то, что его проект даже полностью готовый не сможет составить им конкуренцию? Или просто отказаться от дальнейшей разработки, сославшись на какие либо причины, ведь деньги мы получили только за выполненную работу.
У вас частный случай известной проблемы, которая называется «не могу оценить требуемые сроки».
Чтобы вы могли планировать сроки и укладываться в них, нужно несколько условий:
— задачу целиком нужно разбить на подзадачи, которые вы уже делали и знаете, какая сколько времени займёт,
— в процессе выполнения итерации требования не должны меняться, в том числе по инициативе заказчика.
Это всё приходит с опытом. Я могу сказать, что ваша ситуация с затягиванием сроков вовсе не является уникальной. Многие разработчики и команды ошибаются с планированием сроков. Это не есть хорошо и правильно, но таковы факты. Не падайте духом. Поймите, что это не ваша вина, и не давайте заказчику «давить на гниль» и подкидывать вам дополнительную работу бесплатно. Он не телефон в магазине покупал, он заказывал разработку, а в разработке всегда есть вилка трудозатрат. Если он этого не понимал — значит он не профессионал. Если при этом он обвиняет в срыве сроков единственно вас и требует: «ты мне обещал Y за X рублей вот и выдай Y кровь из носу» — можете его послать.
Вообще ответ на ваш вопрос «как поступить» зависит от того, как вы договаривались — либо о каком-то объёме работ либо о конечном продукте. Но с учётом того, что у вас на проект уже «не стоит» — не важно как вы договаривались, вариантов немного:
— Объясняете заказчику, что ошиблись при оценке трудозатрат и продолжать на прежних условиях не можете. Сдаёте как есть, деньги не возвращаете.
— Объясняете заказчику, что ошиблись при оценке трудозатрат и в максимально сжатые сроки доводите проект до какого-то логического завершения. Все требования о дополнительных бесплатных работах игнорируете. Сдаёте, забираете остаток денег, забываете.
Первый вариант для вас выгоднее, потому что во втором случае есть риск не получить вторую половину оплаты, а также потому что сдача проекта — это не конец, а начало, т.к. каждому проекту требуется поддержка.
Когда я вчера писал этот вопрос, я уже готов был звонить заказчику и бросать проект. Но выслушав ваш и остальные ответы убедился, что надо доделывать, тем более что в принципе логика и верстка уже сделана, осталось только вычистить баги и доделать те участки которые были пропущены. Самое печальное, что там действительно мизерная оплата, куча работы еще и проблемы менеджмента и маркетинга, но обвинить некого, виноват я, если бы я лучше оценивал сложность проекта, то все бы эти проблемы достались не мне, а другому разработчику.
Не хотел бы я иметь с Вами дел. Попахивает кидаловом. Вы ошиблись в оценке и еще и не хотите возвращать деньги. Зачем мне Ваш недописанный код? Оставьте его себе. А мне верните мои деньги. Другое дело если заказчик согласится забрать ваш код за половину стоимости, но об этом автор умолчал. Короче не учите автора вопроса плохому.
kazmiruk Задача: исполнитель выполнил задание, состоящее из 2х частей: А и Б. Часть А он выполнил хорошо, а часть Б — плохо. Какую ответственность он несёт за невыполнение части Б, если известно, что оплата задания целиком пришлась на часть А, а часть Б не была оплачена вообще? Ответ: никакой. Решение: ответственность за невыполнение или некачественное выполнение каждой из частей задания распределяется пропорционально оплате этих частей. Мораль: если хотите, чтобы исполнитель нёс ответственность по срокам — платите отдельно за разработку техзадания, аудит и собственно за ответственность. Несение ответственности по рискам — тоже работа, и как любая работа она должна оплачиваться. Подтекст: частая практика — найти лоха, усесться между у него между горбами и выехать к светлому будущему. Быть лохом или нет — решайте сами, но обычно кто везёт на том и возят. Также замечено, что не-лохи бесплатно почему-то не работают.
А мы говорим о заказе в вакууме или конкретно о магазине, который описан в вопросе. Вообще я не против практики передачи части кода и взятие за это части денег. Но только если: заказчик не против (так как вы нарушаете этим первоначальную договоренность), передаваемая часть является самостоятельной и готовой к использованию без другой части приложения (в отношении заказа из топика это скорее всего не так, хотя могу ошибаться). По поводу ТЗ: я как исполнитель всегда требую ТЗ и если не составляется договор, то несколько раз предупреждаю, что то, что описано изначально будет являться конечным продуктом с указанной стоимостью. Любые изменения в процессе разработки оплачиваются по удвоенной ставке (час работы оплачиваются как 2 часа работы, так как зачастую такие изменения требуют переделывания значительной части кода) и только если я соглашусь. Да, некоторые заказчики сразу начинают рассказывать мне про меняющиеся требования и обвинять в некомпетентности, но те, кто остаются ни разу не вызывали проблем. По поводу сроков я всегда закладываю на 2 недели больше (для крупных проектов, естественно) и заказчика предупреждаю, что это время может потребоваться на доводку и тестирование проекта, но может не потребоваться и, соответственно, им оплачиваться не будет. За все время со сроками при такой схеме я прогадал только один раз на 2 дня. Так как ошибка была моя — эти два дня заказчик мне не оплачивал. В итоге проект был закончен, заказчик доволен и мы до сих пор сотрудничаем.
kazmiruk
Мы говорим о сабжевом случае. А и Б — это соответственно сама работа над сайтом и оценка сроков.
Я знаю, как это можно делать. Но одно дело взять проект на неделю, а другое — на 4 месяца. Можно сильно ошибиться. Суть же в том, что ошибка эта обоюдная, а не одного лишь исполнителя. Заказчик должен со своей стороны держать процесс на контроле, еженедельно требовать отчётов. Не делает этого — получает закономерный срыв сроков.
Ну видимо мы оба понимаем друг друга, но к согласию вряд ли выйдем. Я все таки ставлю себя на место заказчика: я не разбираюсь в программировании, заказываю магазин, мне говорят месяц, я доверяю Вам, оплачиваю половину сразу, а Вы через 4 месяца мне приносите 100 файлов с непонятной писаниной и говорите, что вот половина работы за которую заплатили, а остальное делайте как хотите. Если бы был составлен договор — обратился бы в суд.
Но автор вроде как дописал, что магазин уже почти готов, а не готова только второстепенная часть функционала. В такой ситуации лучше всего доделать и расстаться. Но все незапланированные изменения отказываться вносить.
masterme, в топике есть ссылка на результат 24gr.ru/, проект планировался на 4 месяца, его затянули на 8 в итоге ничего не готово, даже нормальной вёрстки нету, они даже вывод ошибок не додумались отключить и пользоваться логом.
Это типичная ситуация для фриланса, когда за проект берутся люди, которые далеко от требуемых профессиональных знаний. Здесь речь не о части суммы, так как даже всю вернув они не смогут компенсировать убытки заказчика.
Затягивание сроков — это когда пара фич не реализовано, но остальной скоуп полностью готов и работает.
kazmiruk, согласен с вами, мы за каждый час задержки платили зачазчику по x2 от того, что он нам за работу. После второго просроченного проекта сроки начали оценивать с запасом и не влетали, а в конце даже предлагали докинуть фич, так как оставалось время.
masterme напомните, где я сказал что на 24gr.ru результат работы, там одна из начальных версий. В принципе верстка центральной части считалась законченной, она практически пиксель повторяет то что на макетах, чем она вас не устроила?
По поводу 8 месяцев, я писал в самом начале, что кроме этого проекта у меня есть основная работа, а сейчас и еще одна дополнительная, то есть это проект фактически уже имеет третьестепенный приоритет. Плюс за все эти 8 месяцев этот проект принес меньше чем моя вторая подработка за месяц, не говоря уже о основной работе.
Собственно как я писал в начале, я считаю своей ошибкой сам факт начала работы с этим заказчиком и неверно оцененные сроки, но работу я делаю лучшего качества чем оплата. Заказчик признает что то что уже готово лучше чем то что было в первой версии с которой он пришел. А ведь моя версия сайта даже не закончена. Или вы предлагаете бросить все и сделать из этого сайта конфетку за предложенную оплату, я работник, а не альтруист, если заказчик не понимает убогости сервиса который он спроектировал, я не собираюсь его разубеждать.
И о каких убытках может идти речь если первые пол года мы вообще работали без оплаты, заказчик мог смело уйти к другим, но сомневаюсь, что нашел бы других исполнителей за такую же цену. Как выселялось позже, я третий исполнитель кто работает над этим проектом и остальные просто посылали его с его проектом. Я единственный кот скрепя зубами хоть как то пытается сдержать свое слово.
masterme Вообще, справедливости ради, я не считаю себя настоящим профессионалом верстки или js, на основной работе я занимаюсь только серверным программированием, в котором я тоже не дорос до senior developer. Но заказчик был в курсе к кому он обратился.
p.s. Я в выходные дорабатывал за бесплатно проект, который сделал 5-6 лет назад, сеошники попросили внести правки с редиректами и дублями. Всё это делаю бесплатно, потому что это мой косяк, заказчик не виноват что я тогда такой элементарщины не знал. Так что я не святой, но умею признавать свои косяки, а не винить клиента.
В текущей версии проблем как на скриншотах уже нет, блок топ 10 сделан ровно так как заказчик захотел, с отступами та же история. А то верстка должна точно совпадать, это вы верно подметили особенно когда она резиновая и заказчик приносит макет нарисованный на ширину fulHD, и при меньших размерах меню не входит, потому что оно больше, а заказчик говорит, да сделаете как нибудь, что бы входило. Вообще в проекте куча непродуманных мест. Когда я брался за него, я все что увидел показал заказчику и предупредил, что буду делать так как написано в ТЗ, а потом оказывается что его так не устраивает. Часто возникает ситуация когда и я и заказчик понимаем, что в том виде в каком изначально он планировал какая либо вещь работать не будет, приходиться ее прямо на ходу проектировать, поэтому он терпит такой срыв сроков. Я с одной стороны не хочу выпускать совсем не рабочий продукт, с другой стороны я не альтруист.
Вы понимаете, что качество проекта зависит не только от знаний исполнителя, но и от оплаты?
AmdY, вообще сейчас у нас происходит, то что я не люблю мы затеваем спор не по теме. Вы пытаетесь судить о том кто кого кинул основываясь на коротком описании ситуации. Но суть в том что никто никого не кинул, заказчика не сильно парит срыв сроков, за то меня парит проект, который я категорически не хочу доделывать, тем более за ту сумму которая оговорена, но и кинуть его я не хочу.
О чём спорить, вы договорились с заказчиком о сроках и деньгах, а сейчас передумали. С этим всё понятно.
По плану отступления — доделывайте только тот функционал который есть, чтобы он был без ошибок и ищите того, кто доделат остальное, но ему понадобятся доки, чтобы он не шёл по вашим граблям. С этим тоже всё прозрачно.
Мутно с вашим человеческим отношением к делу и совсем черно, если бы была юридическая часть.
Ок, ребята, я посмотрел обсуждаемый сайт и хочу немного дополнить свой комментарий.
К сожалению, я не могу назвать качество исполнения сайта профессиональным. Есть ряд ошибок в вёрстке и юзабилити. Из этого в совокупности с затянутыми сроками могу сказать, что для автора этот проект — учебный. А учебные проекты могут выполняться гораздо дольше.
Свой первый сайт я делал полгода. Когда я показал его более опытным людям — они оценили сроки в две недели. Тогда я не поверил, сейчас я сам могу сделать подобное дней за десять (на энтузиазме, кофе и своих наработках). Полгода против десяти дней.
То есть, rsi, вы взяли работу не по силам. Есть вероятность, что вы не сможете в обозримом будущем закончить её с должным качеством. Не в смысле не сможете выполнить список запланированных работ, а в смысле всё равно результат будет содержать ошибки. Поэтому, имеет смысл прекратить. Если для вас полученная сумма не критична — можете вернуть её заказчику. Отдавать или нет сделанную вёрстку и код — на ваше усмотрение. Я в своей практике так делал — если понимал, что проект не мой — возвращал деньги (чтоб не было претензий) и расставался.
Одна из основных ошибок фриланса — брать на доработку чужие недоделанные проекты (не поддержку, а именно доработку). Другая основная ошибка это сокрытие информации — когда фрилансер избегает разговора заказчиком и тянет время. Вы совершили первую ошибку и есть шанс не совершать вторую, удачи.
На месте заказчика я бы забрал бы у вас ещё и деньги обратно.
Сказать честно из рассказа понятно, что был говнокод, работало в два раза меньше человека чем должно было, сроки были затянуты невероятно.
такой проект надо было завершать ещё в первом месяце.
Говонокд был до нас, сейчас там все красиво. И в первом месяце его не закончить, три первых месяца я работал каждый день над проектом и даже мой товарищ тогда уделял ему какое то время.
Я рассматривал такой вариант, но непрофессианализм я проявил только в начале, а то что уже сделано стоит намного больше чем он заплатил. Как минимум верстку он может использовать без проблем.
Так как вы зафакапили все начиная с самого старта, то писать какую-то документацию или дизайн документы на этапе передачи смысла мало. Предложите бесплатно консультировать на первых порах человека, который будет доделывать проект.
А по теме: написать с нуля магазин за 4 месяца это сильно :) т.е. изначально имела место переоценка своих сил, да и оценку копипастопригодности следовало провести до начала работ.
Касательно того что делать дальше: если у вас нет возможности довести проект до конца, то, ИМХО, нет смысла мучить заказчика и себя. поэтому отказываться, честно признавшись что переоценили свои силы.
Там достаточно мощные saas платформы, которые разрабатывают и поддерживают фирмы, а здесь один сайтик на виртуальном хостинге, который спроектировал один парень за 7 дней. 80% функционала занимают фотогалереи, новости, блоги, личные сообщения, а продажа товаров.
Да я с вами согласен, по ошибка допущенным в начале. Не было боевого опыта работы с таки проектами, ну и надеялся на товарища, думал 4 месяца на двоих это 8 месяцев. Но вопрос в том, что делать сейчас.
4 месяца на интернет магазин с нуля? Мне кажется это очень долго, если это проект приоритетный то 2-3 недели на одного человека с готовой версткой, если по 2 часа в день, то 3-5 недель. Тем более когда уже есть готовый продукт и есть возможность перенести часть бизнес логики, то вообще странно что это заняло больше 2 недель
Это не интернет магазин, а платформа для интернет магазинов, где клиенты могут создавать свои магазины. Верстка не готова были только psd макеты, да и сама по себе верстка там не сахар, резиновый сайт с куче разнообразных элементов. Можете оценить главную страницу 24gr.ru/.
CAMOKPYT, там на самом деле много мелочей, например
1) маловероятно что удастся использовать стандартный кодогенератор выбранного фраемворка даже для админки (одинаковые страницы мало кого устроят)
2) доп свойства у товаров 100% нужны
3) могут быть нужны разные типы товаров обрабатываемые по разному (еще и у них могут быть разные свойства и разный вывод)
4) с платежами тоже не все так гладко — использую примеры кода предоставляемые той же робокассой, постоянно будут недовольные пользователи (банально «я оплатил вчера, где мой заказ?!!!!!!!!!», а деньги могут и 3 дня идти, если выбран какой либо оффлайн способ платежа… еще есть прикол когда после отказа от платежа, можно вернуться обратно и оплатить… это все надо отслеживать)
LastDragon это все типичные задачи любого интернет магазина
1) не очень понял, о чем вы.
2)3) редактируйте модели, если это MVC фреймворк. Хранение деревьев (materialized path, nested set, Adjacency List) вещь стандартная, также как и заранее неопределенное количество свойств у товара (many-to-many)
4) ну сделайте в БД поле со статусом заказа и выводите в админке как вам удобно или я опять не понял о чем вы
1) Вы весь код руками собрались писать?
2)3) Это не так просто и быстро как кажется
4) Угу, не поняли — подводных камней там много и подход вида «перенаправили пользователя на сайт ПС — дождались пока он обратно вернется» работает только в чрезвычайно простых случаях, в реальности же придется придумать довольно сложную систему для обработки платежей (да и API у всех ПС немного разные, что тоже добавит сложности)
Поэтому «2-3 недели на одного человека» это очень оптимистично.
Переписывание, тем более на zend — плохая практика, вам стоило насторожиться в тот момент. когда вы поняли, что не сможете дорабатывать проект. Через рефакторинг любое гавно можно сделать более-менее управляемым.
Теперь по вопросу, да, особой проблемы с передачей проекта нет, но вы должны нормально документировать логику работы, таблицы связи и как меняются данные. Я бы советовал на первом этапе проводить код ревью нового вендора, чтобы он сам не начал переписывать проект с нуля.