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

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

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


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

"Клиент решил оставить меня без доступа к моей же системе. Но всё пошло совсем не по его плану. Вот моя история:

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

{reklama}

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

Поэтому в проект я входил уже понимая, с кем имею дело.

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

Мы подробно прописали условия сотрудничества, подписали договор, и я приступил к работе.


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

Я объяснил, что по графику сначала идёт около шести недель разработки серверной части, а дизайн интерфейса начинается только потом. Сейчас я могу показать лишь программный код, и именно так прописано в договоре.

{reklama2}

Но он заявил, что всё должно быть наоборот: немедленно остановить работу над серверной частью и сначала сделать дизайн, а затем уже его сверстать.

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

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

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

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


Именно так прошли следующие три месяца. Бесконечный круг правок, в котором ему не нравилось буквально ничего.

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

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

{reklama3}

На что он спокойно ответил:

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

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

При этом к тому моменту клиент заплатил только первоначальный аванс — около пяти процентов от общей стоимости проекта. Все остальные платежи он откладывал, прикрываясь одной и той же фразой:

— Если вы сами не соблюдаете договор, почему это должен делать я? Закончите сначала нужный этап — тогда и получите оплату согласно контракту.

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


Наступил конец месяца. К этому времени у нас был дизайн, который его наконец устроил, и примерно на 85% готовая серверная часть — именно настолько, насколько требовал договор на данном этапе. До полной сдачи проекта оставался ещё целый месяц.

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

Я заранее предупредил, что скорость может быть неидеальной, потому что исходящая скорость моего интернет-канала составляла всего 512 Кбит/с. Но на рабочем сервере его хостинг-провайдера таких проблем не будет. Он ответил, что всё понимает, и демонстрация началась.

{reklama4}

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

Однако в конце презентации всё равно последовали привычные придирки:

«Слишком медленно», «Вот это неправильно», «Здесь тоже надо переделать» и тому подобное.

После этого он сказал:

— Перенесите систему на мой рабочий сервер. Посмотрим, как она будет работать там.

Я ответил:

— Без проблем. Но сначала оплатите 50% стоимости по договору, и я сразу всё сделаю.


Через несколько дней мне пришло письмо. К нему была приложена якобы пересланная банком квитанция о переводе тех самых 50%. Я решил, что этого достаточно, и загрузил систему на его рабочий сервер под адресом beta.его-домен. Затем отправил ему письмо с логином и паролем для входа. Но он не знал двух вещей.

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

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

Месть №1

Помните ту небольшую функцию, которую я встроил в систему? Она работала очень просто.

{reklama5}

Если пользователь X (то есть клиент) пытался удалить пользователя Y (мою учётную запись администратора), не изменив заранее один специальный параметр в конфигурации, система сначала полностью очищала базу данных, а затем удаляла все файлы сайта из корневого каталога.

Не прошло и пяти минут после того, как он прочитал моё письмо с данными для входа. Первым делом он попытался удалить моего администратора, чтобы лишить меня доступа к системе. И знаете, кто в итоге остался без проекта? Он сам.


Месть №2

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

Месть №3

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

Да, за пять с лишним месяцев работы я получил всего лишь те самые первоначальные 5% стоимости проекта. С финансовой точки зрения это была очень плохая сделка. Но осознание того, чем закончилась история для этого человека, до сих пор согревает мне душу".

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

Вчера, 09:00
Вернуться назад