Большинству айтишников известен термин Vendor Lock. Остальные, думаю, могут легко найти, погуглив.
Я хочу рассказать, как у меня получилось, используя особый подход к работе, решить финансовые проблемы, возникшие в процессе работы, и, вообще, обеспечить себя работой на долгое время (или пока не надоест).
Так случилось, что меня внезапно пригласили в проект разработчиком бэкенда.
Начало было стандартным для большинства проектов - знакомство с кодом, доделки за предыдущим разработчиком, новые фичи.
Проект мне нравился.
Новая область разработки, интересные задачи, неплохая зарплата и удаленная работа, что было еще не очень распространено. После ухода предыдущего разраба я был один, помощника найти в короткие сроки не представлялось возможным, поэтому я спокойно разбирался в коде. Было заметно, что код писался разными людьми, никем не контролировался. Я изучил все подходы решения задач, выбрал наиболее понравившийся и переписывал код, где можно, объясняя задержки при решении текущих задач запутанностью кода. Но, честно говоря, этим я не злоупотреблял, я наслаждался творчеством.
Я старался освоить и усвоить все - неосновные задачи, тестирование, исследования и тд. В команде проекта нас было пятеро - владелец проекта, менеджер по работе с клиентами, менеджер проекта, фронтендер и бэкендер.
Специфических знаний было много, прошел год, прежде чем я основательно разобрался в тонкостях.
Задачи становились рутинными. Я освоил все процессы сервиса и старался обходиться без помощи в работе, только приемка и сдача задач.
Я автоматизировал многие процессы. Отчеты, прежде отсылавшиеся по запросу, стал генерировать с привязкой к датам и отправлять самостоятельно.
Я был доступен и ночью, и по выходным, работал из отпуска (даже не припомню, чтобы хоть неделю ничего не делал). Я старался делать задачи быстро, раньше срока. Было интересно. Но были и странности.
С одной стороны, у нас был сервис, позволявший зарабатывать, со своими правила пользования и подключения. Но иногда дело доходило до абсурда, когда от меня требовали изменить API под клиента, по сути, сделать костыль, потому что у клиента "своих программистов нет", а отправлять данные ему (клиенту) надо. Через время клиент отваливается (о чем меня в известность не ставили), костыли множатся. Вполне естественно, что в какой-то момент нагромождение костылей рушилось, тогда "астрологи объявляли неделю рефакторинга", и я занимался чем полагается.
Как обычно, идиллию разрушали деньги. Но не деньги сами по себе, а то как я эти деньги получал. Вроде бы сроки выдерживались, но плавали нещадно.
Причем плавали всегда в сторону увеличения, раньше срока оплаты никогда не случалось.
Расходы планировать становилось все сложнее.
Я чувствовал, что мои усилия вознаграждаются не так, как бы мне хотелось, но тут произошло безусловно вдохновляющее событие - мне повысили зарплату.
Я ощутил новый прилив сил. Ударная работа продолжилась. Я и так не уклонялся от задач, теперь же начал даже выискивал новые задачи. Дело спорилось. Меня стали использовать по любым вопросам, не связанным с разработкой.
На меня сгрузили все околосекретарские задачи, типа создания и форматирования эксель-файлов.
В какой-то момент я поймал себя на мысли, что объясняю коллегам вопросы, которые когда-то сам узнавал от них. Сначала меня это позабавило.
И тут в компании начался кризис.
Отчасти он был связан с законодательными изменениями на рынке, отчасти со странным способом ведения бизнеса.
Для меня кризис проявился в задержке выплаты зарплаты.
В результате накопилось долгов на полгода. Самое неприятное, что никто ничего не объяснял, только через полгода сказали - "нам клиенты не платят, поэтому мы тоже не можем заплатить".
Задачи, тем не менее, появлялись, их требовалось выполнять.
Я включил собственный график работы - не больше 2-х задач в день, если сложная, то вообще одна. И строго восьмичасовой рабочий день. С учетом обеда. Так как все привыкли, что я был доступен и вечером, и ночью, и в выходные, это бросилось в глаза, начались вопросы, потом предупреждения менеджера, что владелец нервничает по поводу задач и ему это надо как-то объяснить.
На что я ответил, что я готов лично объяснить причину изменения графика и т.д. Надо отметить, что владелец перестал отвечать на сообщения в скайпе, так что мне нужно было достучаться до него и прояснить ситуацию.
План сработал. Я переговорил с владельцем, мы обговорили и план работы, и план погашения.
Выглядело все почти радужно - полгода, максимум, год.
Не скажу, что я был удивлен, когда через полгода никакого погашения не произошло.
И через год.
Прошло два года. Еще три раунда переговоров. Два расписанных плана погашения...
Урезанные зарплаты за отдельные месяцы из-за медленного выполнения заданий.
Но процесс шел. Не для всех одинаково, судя по жалобам остальных коллег. Кому-то заморозили, кому-то просто оказались платить из-за того, что "ты по факту ничего не делал", что, в общем-то, было правдой.
Я продолжал поддерживать сервис, добавлять новые фичи и (!) объяснять особенности функционирования сервиса коллегам, которые меня нанимали и объясняли как все работает, когда я только пришел.
В общем, тот факт, что я был завязан на многие задачи, позволил мне и остаться в проекте в кризис, и влиять на скорость выплаты долга. Такой DeveloperLock.
В конечном итоге я оказался первым из тех, с кем рассчитались, насколько я мне стало известно.
Сейчас у меня другой проект, сам набираю команду. Люди, конечно, все разные, но хотелось бы, чтобы хотя бы один был, который делает немного больше, чем просят. Такое происходит, конечно, для отдельных задач, что реже, чем хотелось бы.
Кстати, хочу отметить, что несмотря на все приключения, проект и работа мне нравились, не было выгорания, о котором сейчас так много говорят. Порешав те или иные проблемы на проекте, я с удовольствием возвращался к техническим вопросам.