Для тех, кто не знает, “вендор-лок” — это такая тема, когда вы подвязываетесь (в чем угодно) закрытую технологию какого-нибудь производителя, делаете на его платформе какое-то решение, а дальше не можете с него слезть. Самый распространённый пример — использование, например, базы данных Oracle или облака AWS. Вначале может быть все хорошо и радужно, но чем дальше в лес тем толще партизаны, и вот уже весь ваш бизнес завязан на кучу технологических решений, которые в любой момент по желанию вендора могут изменить свое поведение или ценовую политику. В общем больно и неприятно, используйте опенсорс и вендор-агностик решения и всё будет хорошо. Но я не об этом.

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

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

У меня есть пара таких проектов, один из которых написан на PHP и не обновлялся уже года два (а существует 4 года), другой на Java+Rails и живет без существенных изменений два года. Я очень-очень хочу от них избавиться, но никак не могу придумать хороший способ это сделать (и ладно бы только придумать, проблема тут как раз заключается в “сделать”).

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

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

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

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

Что еще хуже — я понимаю, что для того, чтобы полностью передать все дела, заказчику нужно найти не просто одного типа, который будет шарить в PHP или Java, а целую компанию в которой будут специалисты по куче платформ, облакам и так далее. Мне нужно будет подобрать хвосты, накопленные за 4 года и в каком-то виде всучить решение счастливчикам, которые подпишутся на поддержку этого софта. А подписаться на такое могут только глупцы или только за большие деньги (которые сильно удивят заказчика, потому что работая в одиночку и зная множество вещей я сделал всё дешевле минимум в 10 раз, нежели бы это делала отдельная контора, при сохранении качества).

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