
Для тех, кто не знает, «вендор лок» (Vendor lock-in, привязка к поставщику) — это такая тема, когда вы привязываетесь (в чём угодно) к закрытой технологии какого-нибудь производителя или делаете на его платформе какое-то решение, а дальше не можете с него «слезть» (статья в «Википедии»). Самый распространённый пример — использование базы данных Oracle или облака AWS (Amazon Web Services). В начале — всё может быть хорошо и радужно. Но чем дальше в лес, тем толще партизаны. И вот уже весь ваш бизнес завязан на кучу технологических решений, которые в любой момент, по желанию вендора, могут изменить своё поведение или ценовую политику. В общем, больно и неприятно. Используйте опенсорс- и «вендорагностик»-решения и всё будет хорошо. Но я не об этом.
Бывает и обратная ситуация. Например, вы делаете решение для заказчика, оно разрастается, «крупнеет» и, как днище танкера, покрывается всякими «моллюсками» и прочими «водорослями». Со временем, эта «корка» становится настолько толстой, а «танкер» настолько неповоротливым, что вам уже вовсе не хочется поддерживать его на плаву. Даже за большие деньги. Решение устарело (а всё, чему больше года и что регулярно не апдейтилось, автоматически устаревает), допиливать новое — сложно и боязно (потому что нет тестов, лол)... И так далее.
Но выхода нет — никто, кроме вас, не умеет с этим работать. Деньги платят — надо делать.
У меня есть пара таких проектов, один из которых написан на PHP и не обновлялся уже года два (а существует 4 года). Другой — на Java+Rails. И живёт без существенных изменений два года. Я очень-очень хочу от них избавиться, но никак не могу придумать хороший способ это сделать (и ладно бы только придумать, проблема тут, как раз, заключается в «сделать»).
По большому счёту, это, конечно же, не мои проблемы: заказчик сам должен был думать о Vendor lock-in, о рисках работы с одним и тем же исполнителем, приглашать внешних аудиторов, проявлять инициативу для повышения качества кодобазы и т. д. А у меня нет никаких договоров о пожизненной поддержке за копейки. Вдруг завтра мне окончательно всё надоест и я уеду в горы, где нет Интернета, что тогда делать?
Личные проблемы и комплексы не позволяют мне просто так всё бросить. Или, хотя бы, даже начать диалог о том, что я больше не хочу заниматься старыми вещами за мелкий прайс и, вообще, мне весь этот Vendor lock-in наоборот уже конкретно надоел — ищите, кого хотите, а я сваливаю в закат. Путь успешного социопата для меня, увы, неприемлем.
Мой бывший босс рассказывал похожую ситуацию: давным-давно, он — тогда руководитель собственной «шлюпки» — «напилил» проект, а потом пару лет никак не мог от него избавиться. Так что я, со своим обратным «вендор локом», не одинок.
Хорошо, когда человек честный и ответственный. А то ведь я знаю не один случай, когда такая ситуация проворачивалась в пользу исполнителя, и заказчик, из-за привязки к одному поставщику, был вынужден годами страдать и отваливать серьёзное бабло за работу над своей системой. Пока его нагло эксплуатировали.
Что ещё хуже — я понимаю, что для того, чтобы полностью передать все дела, заказчику нужно найти не просто одного «типа», который будет «шарить» в PHP или Java, а целую компанию, в которой будут специалисты по куче платформ, «облакам» и так далее. Мне нужно будет подобрать «хвосты», накопленные за 4 года, и, в каком-то виде, всучить решение «счастливчикам», которые подпишутся на поддержку этого софта. А подписаться на такое могут только глупцы или только за большие деньги (которые сильно удивят заказчика, потому что, работая в одиночку и зная множество вещей, я сделал всё дешевле, минимум, в 10 раз, нежели бы это делала отдельная контора, при сохранении качества).
В найме таких проблем нет. Ушёл с работы, кое-как передав дела (или не передав, ничего страшного всё равно не случится) и всё. А тут уже не так просто. Но, рано или поздно, надо будет обрубить старое. Иначе оно всё время будет тянуть назад, не давать развиваться, тормозить, жрать «мыслетопливо», отвлекать и делать множество других нехороших вещей.
Автор: Рожок.