Quantcast
Channel: Категория [Блоги] - сообщество программистов
Viewing all 499 articles
Browse latest View live

Кризис перепроизводства джунов

$
0
0

[Об авторе: Иван Клешнин, веб-программист со стажем 12 лет. Частный предприниматель, работа связана со сферой рекрутинга и обучения. Профессионально занимается менторством, ведёт несколько блогов]

Иллюстрация Анастасии Коптевой

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

Из 80+ ответивших:

~70% сообщили, что не работают с джунами.
~30% сказали, что работают, но...

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

Из 70% «отказников» многие отметили, что поменяли бы своё мнение, если бы у джуна был опыт коммерческой работы. Это то самое «бутылочное горлышко», о котором многие пишут: не берут на работу без опыта и непонятно, как получить опыт без работы.

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

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

Без особой надежды на понимание — официальный дисклеймер. В данном тексте я (автор) не представляю какую-либо компанию, не ищу и не предлагаю работу, не «лью воду на мельницу», не даю ответы на вопросы жизни и вселенной. Трудоустройство айтишников интересует меня исключительно с исследовательской и прогностической точек зрения — как часть процессов в индустрии, в которую вложена немалая часть жизни.

Джуны «без опыта работы»

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

Джун = Junior <специальность>.

По определению, джун — это уже работающий по специальности человек. Мы можем попробовать другое позиционирование: «Джун Соискатель», «Джун Энтузиаст» — но это будет выглядеть комично.

Получается, что современный «Джун без опыта работы», по сути, не имеет права называться джуном.

В комментариях на LinkedIn, где я ранее публиковал черновики статьи, кто-то предложил термин «Начинающий Миддл». К сожалению, этот вариант уводит нас ещё дальше от реальности, которая, с моей точки зрения, выглядит так:

  • джун: 1-2года опыта;
  • миддл: 5-6лет опыта;
  • сениор: 10+ лет опыта.

И «Начинающий Миддл», если мы соглашаемся использовать этот термин, — это человек с опытом работы 3-5 лет.Но никак не с нулевым.

Кто же такой современный «Джун без опыта работы»? По знаниям и опыту, это эквивалент студента-первокурсника. Он вложил в обучение N-е количество часов, но до продуктивной работы ему ещё очень и очень далеко. Первокурсник может (продуктивно) подрабатывать развозом пиццы, но идея нанять его в качестве специалиста мало кому придёт в голову.

Меня сложно назвать фанатом классической пятилетки, но:

  • на «вышке» есть двойки и отчисления;
  • каждый семестр — защита курсовой;
  • в конце обучения — защита диплома;
  • перед выпуском — бесплатная (!) практика на предприятии.

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

А теперь расскажите мне, что всё это тривиально заменяется самообучением.

Не нравится пример с в/о? Вспомним цеха. Подмастерье живёт в доме мастера и работает, в буквальном смысле слова, за еду и ночлег. Учится и работает несколько лет — до тех пор, пока не сделает «шедевр» (аналог дипломной).

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

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

Сии аналоги приводят нас к неприятному для многих выводу.

Начинающий без опытане способен к продуктивной работе. Он даже слегка вредит.

Современный джун

Современный «джун» хочет получать $1000 через три месяца после начала обучения. Его основной образовательный актив — просмотр скачанного на торрентах курса. «Всё должно быть бесплатным!» — заявляет Джун, предусмотрительно исключая собственную деятельность из разряда «всего». В том числе, на предложения интернатуры он возмущённо говорит, что не станет работать за копейки!

Джун любит истории про алчные компании, которые «наживаются на начинающих». Гипотезу, что наживаются, строго говоря, на том, кто платит деньги за фальшивого сениора, он встречает круглыми глазами.

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

В историях успеха Джун проскролливает скучную часть про усердие, труд и затраченное время, концентрируясь на «высокой зарплате».

Джун искренне уверен, что пыхтение и потение над задачей косвенно, но приближает Технологическую Сингулярность. И уже тем заслуживает высокой ставки. «Process is a progress», как, кажется, говорил Илон Маск. Впрочем, применение джунов в качестве дополнительного источника обогрева в странах с холодным климатом может оказаться перспективным направлением альтернативной энергетики.

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

Стоимость найма

Мало кто знает, что найм, вообще-то, чертовски дорогая штука. И практически всегда, если речь идёт о начинающем, это «игра в долгую» для компании. Давайте посчитаем вместе.

1) На каждый найм идёт выборка из минимум трёх кандидатов, успешно прошедших интервью. Это 10-20 кандидатов,которых нужно выслушать перед отбраковкой. Это сотни, а иногда — и тысячи резюме, которые нужно проскринить. Даже в не самых крупных компаниях отдел HR работает на постоянной основе и съедаетдесятки тысяч долларовна зарплату сотрудникам и рекламу (вакансий) ежемесячно. Сомневающимся рекомендую ознакомиться с ценами на размещение вакансий на посещаемых платформах типа StackOverflow.

2) Айтишник — это интеллектуальная профессия со сравнительно высокой ставкой. Существенно занижать оную без перехода к удалённой работе в условиях нехватки рабочей силы компаниям достаточно сложно. Порадуемся этому факту, но заметим, что зарплата сотрудников — это основная статья расходов IT-компаний (не во всех индустриях это так).

3) Специфика работы инженера существенно различается от компании к компании и от проекта к проекту. Новая организация рабочих процессов, новые принципы управления, новые технологии... Айтишник работает в командеи постоянно учится. Его продуктивность сначала отрицательна: он задаёт вопросы, ничего не делает... Это не строитель, которого можно перебросить на другой объект, где он будет класть такие же кирпичи с неизменной эффективностью.

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

К сожалению, за вычетом предпринимателей и HR-специалистов, мало кто отдаёт себе отчёт, что айтишник окупает свой найм лишь через 6-12 месяцев.Все эти показатели давно просчитаны и кому нужно — известны. Однако они неизменно вызывают гнев и отрицание у «широкой публики» инженеров и разработчиков.

Сама идея, что для компании вы числитесь в графе «Убыток» столь длительное время, способна вызвать стресс. Но мы пойдём дальше и заметим, что данные показатели справедливы лишь для человека с историей работы по специальности.

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

4) Любой найм сопряжён с риском. В IT-сфере, где существенная доля бизнес-ценности заложена в исходниках и базах данных, которые тривиально воруются, этот риск нельзя недооценивать. Инвестиции в информационную безопасность, продвигаемые бородатыми девопсами, также лягут на бюджет предприятия.

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

Учтём процент тех, кто уволится менее чем через год со словами «Спасибо за науку!», оставив за собой лишь жирный минус в бюджете. Этот процент, кстати, довольно велик — и те, кому нужно, опять же это знают.

Ах да, «Просто так не увольняются...» Уверен, что сторонники этой теории никогда и никого не нанимали. Повышение зарплаты для повышения лояльности хорошо звучит, однако малоэффективно в реальности. Высокая ставка приводит, прежде всего, к росту самооценки и новому росту требований. Любой, кто пробовал удовлетворить чьи-либо запросы, включая собственные, знает, что пределов там нет.

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

Всё ещё задаётесь вопросом, почему ЗП «джуна без опыта» объективно стремится к нулю, если не к отрицательному значению?

Карьера в кризис

Из зала спрашивают: «А какое тебе дело до моей ЗП? Рынок всё разрулит!» Лично мне до вас нет никакого дела. Наймут ли вас за $1000/час или не наймут вообще — я посмотрю на это с эмоциями осьминога.

Меня беспокоят завышенные ожидания начинающих. $1000 в месяц, по мировым меркам, — это немалая сумма. Где-то в конце ТОП-50 по сводной таблицезаработка в странах мира.

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

У travel the worldесть и обратная сторона. Средняя зарплата в Китае выросла, но на подходе Индия, Пакистан, Нигерия, Бангладеш, Вьетнам, Индонезия с их $150—$200 в месяц. Сотни миллионов небогатых людей с огромным желанием работать и, в среднем, не глупее нас с вами. Со знанием английского. Напомните мне ещё раз, зачем работодателю подстраиватьсяпод рынок, когда он может его сформировать?

Менеджер: о какой ставке идёт речь?

Вы: $1000.

Менеджер: да, может быть... Но вот у нас есть ещё один кандидат, девочка из Нигерии. Она хочет всего $500. По знаниям, признаю, немного слабее, но зато социальный интеллектзашкаливает! Слышали о таком?

Вы: давайте $800.

Менеджер: благодарю за конструктивную позицию!

Снижение вашей ставки уже давно и элегантно обосновано «борьбой с капитализмом», «изменениями климата» и «мировым финансовым кризисом».

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

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

Чисто по-человечески я разделяю и одобряю ваше желание зарабатывать больше. И говорю лишь о том, что, возможно, существуют и другие пути. Тупик в карьере можно преодолеть множеством способов. Даже переезд с арендой жилья обойдётся меньшей кровью, чем смена специальности в 30+ лет. Я просто хочу, чтобы вы взвесили все «за» и «против» и действовали с осознанием рисков.

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

По моим собственным наблюдениям, есть общий тренд на усреднение ставок между профессиями, с одной стороны. И тренд на «утолщение хвостов» (по Талебу) внутри профессии, с другой.

Упрощённо: разброс ставок между специальностями будет уменьшаться, тогда как разброс ставок между двумя произвольно взятыми специалистами (одной специальности) — увеличиваться. Надежды на должность, как на гарант ваших доходов, лучше умерить. Никаких «пруфов» не приведу, говорю на правах бреда и конспирологии. Есть мнение, что понятие профессии вообще ощутимо поменяется в ближайшие два-три десятилетия.

Послесловие

В комментариях к черновикам статьи мне привели миллиард исключений и историй про джунов-гениев. Истории эти не впечатлили вообще.

Есть области, где исключения важны, так как они показывают, что формула не работает. Школьная алгебра, например. Социология оперирует вероятностями. 51% всего на 1% больше, чем вторая половина. На этом проценте люди строят бизнес-империи.

Я прекрасно понимаю, что есть более и менее талантливые специалисты, я прекрасно понимаю, что есть хорошие и плохие компании. Говорить о подобном уныло и скучно. Если вы уже собрались написать что-то глупое вроде «опыт не определяет навыки» — остановитесь.

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

Прямым текстом: я хочу, чтобы мои бывшие соотечественники получали больше. К таковым отношу всех владеющих русским/украинским языками.

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

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

Но деньги не возникают из воздуха. Дискурс «жадных компаний» совершенно тупиковый и никуда не приведёт. Первый шаг в изменении ситуации — понимание объективной реальности.

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

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


Канада для IT-шника

$
0
0

Я хочу уместить всё в одну статью, так что будет лонгрид:

  • Почему я уехал? И почему Канада?
  • Бытовые зарисовки, Монреаль преимущественно.
  • Как уехать в Канаду айтишнику и не только?
  • Вопросы.

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

Почему я уехал?

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

Волонтерство

Помните, раньше говорили, что Майдан финансируется из Америки? В какой-то мере я и был этой самой «рукой Госдепа» — я брал (зарабатывал) деньги в США и отдавал волонтерам.

Отдал... много. Без цифр.

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

Для тех, кто «всё или ничего» — я отдал мало, ведь я мог не ездить в отпуска, да и вообще без машины жить можно.

Для тех, кто отдал жизнь или здоровье — я отдал ничего.

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

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

Почему нет?

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

Так вот, тут я хочу сказать, что не пугало меня достаточно сильно и почему я НЕ уехал много лет назад.

  • Экономика. Та вы шо, айтишник в Украине живет весьма хорошо. А если случится дефолт, то пока ФЛП и Payoneer не перекроют, то каждый синьор сможет себе позволить личных телохранителей. Если честно, то чем хуже экономика, тем больше денег остаётся айтишникам на игрушки. Сейчас на мою зарплату живет шесть человек. Были моменты, когда жило 11. Да, я тут передергиваю и многое упускаю.
  • Менты, суды, бандиты. Я с ними почти не сталкивался, и есть шанс, что и не столкнусь. Меня даже грабили последний раз аж в 2007.
  • Образование детей. Есть онлайн, и они тоже могут уехать, если захотят, позже.
  • Об армии для старшего я стараюсь не думать. Сидеть в тылу — глупо, на фронт мне страшно его отпускать. К моему внутреннему удовольствию, он меня не будет спрашивать, то есть ответственность будет не на мне. На мне будет поддержка его выбора.
  • Медицина. Можно страховаться за рубежом, это поможет от половины случаев. Конечно, с каждым клещом и переломом в Израиль не налетаешься. С другой стороны — есть общий прогресс медицины. Лично я ожидаю в ближайшие десять лет доступной ранней диагностики массовых болезней сердца и еще пачки болезней, которые на ранних этапах лечатся просто. Желающие могут посмотреть лекцииРослинга.
  • Погромы. Мой папа считал, что когда евреи оказываются у власти, это всегда заканчивается юдофобией и погромами. Как мне кажется, по нынешним временам будет достаточно долгая накачка, главное — не сидеть на месте, как это сделали мои родственники перед наступлением фашистов. Тогда из всей большой семьи осталось два человека — блокадный Ленинград и Курская дуга дали больше шансов выжить, чем «пересидеть на месте».
  • Широкомасштабное наступление РФ, с авиацией, тяжелыми ракетами и «химзавод в Харькове взорван Правым Сектором». Кмк, момент упущен, да и смысла теперь особого нет. Впрочем, для меня здесь будут триггером крупные теракты в РФ с визиткой Яроша. Иначе без большой накачки населения я не вижу, как это всё начать.
  • Тотальная зрада. Коломойский умный, и чтобы не стать рабом Путина — ему нужно будет балансировать между Западом и РФ. То есть да, результат несимпатичный, но и не хуже Януковича и Беларуси, причем гайки будут закручиваться постепенно.

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

Почему да?

Здесь я напишу, что для меня стало критичным, и почему мы уезжаем.

  • Техногенные катастрофы. От атомной энергетики я их больше не ожидаю — там, я думаю, Европа тщательно следит, так как и ее накроет. А вот какой-нибудь аммиачный завод, или полимеры, или дамбы — это запросто. Это всё требует мозгов в обслуживании, а сейчас все с хоть какими-то мозгами идут в IT. Мало кто хочет идти на опасное место на 5-7тысяч гривен. А вообще, больше всего я опасаюсь отключения обогрева зимой — это сложная централизованная система, за которой нужно квалифицированно ухаживать. Сюда же — эпидемии.
  • Вся семья зависит от меня. Если я потеряю возможность зарабатывать деньги, то моей семье будет охренительно плохо. Выбор профессий — исключительно айтишный, а выучиться даже на джуна требует времени. И если для старшего сына я вполне вижу такое будущее, то для младших дочек... мне кажется, им будет неинтересно. Вообще фигово, когда весь выбор — только в IT. За пределами — это уже редкие исключения, как доход Роналду по сравнению с доходами большинства футболистов из районных команд.
  • Демографический кризис. Через 20 лет на одного работника будет приходиться очень много пенсионеров. И если работать некому, то неважно сколько будет денег в заначке и в какой валюте. «Бесплатные роботы для всех даром», «вечная молодость для всех даром», «инопланетяне» — это самые реалистичные сценарии. Есть еще «мигранты из более бедных стран Африки и Азии», но для этого им должно хотеться к нам приехать. Тут я надеялся на реформы и делал что мог. А, да, есть еще более оптимистичный персональный вариант — «умереть внезапно, до прихода дряхлости».
  • Когда я шесть лет назад смотрел на популярность партий и политиков, я мог списывать всё на «соцопросы купленные». Сейчас — уже никак не могу. Опросы таки показывают реальные настроения, и выборы это подтвердили. И эти настроения показывают современные ценности — патернализм и инфантилизм. Детская позиция — «я веду себя условно хорошо, а за это меня кормят и не сильно наказывают. Какое-то жилье, еду и медицину мне должны». Проблема не в том, что живем плохо — проблема в том, что хотим жить именно так.
  • Толчком к моему решению были опросыв декабре 2017. Среди кандидатов в президенты не было ни одного, кто мне сильно бы нравился. Максимум — были те, которые вызывали наименьшее отвращение. И для меня проблема была не в том, что мы выбирали себе феодала, а в том, что большинство именно феодала и хотело. Почти нет спроса на нефеодала.

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

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

Note 2:мои суждения искажены личным выбором и его защитой. То, что я написал о себе, вовсе не значит, что это истина или что вы должны следовать моей дорогой.

Note 3:я бы предпочел построить «Канаду» в Украине, но не смог. Кто сможет — пусть продолжит. У меня уже нет времени на эксперименты.

Выбор страны

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

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

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

Австралия и Новая Зеландия — можно, хотя и далековато. Проблема в том, что далеко от мировых денег.

США — дурное иммиграционное законодательство, масса вопросов в политике. Опять же, можно было бы найти хорошее место, США огромная страна, но таки нет, Канада для меня лучше.

Израиль — был под вопросом, но культура всё-таки не совсем моя, да и для евреев я очень сомнительный еврей.

Почему Канада?

Иммиграционное законодательство — логичное, написанное простым языком, хотя и со своими заморочками. Например, сейчас начали стимулировать переезд в провинциальные районы.

Супругам можно работать, а детям — бесплатно учиться.

Все крупные партии выступают за увеличение иммиграции.

Для справки — трэкер сроков.

Политика

Вы когда-нибудь слышали, чтобы какая-то страна ненавидела Канаду? Крупная международная сеть террористов? Нет? Я тоже.

Провинции соревнуются между собой за людей, кошелек у них у каждой свой.

Здесь почти нет зрады, см. ниже.

Язык

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

Погода

Торонто по погоде — примерно как Харьков. В Торонто ветер сильнее. Желающие могут поизучать мои таблицы as is.

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

В Канаде водятся колибри. Пять видов. Северная страна.

7:00-10:00 —весна
10:00-15:00 —лето
15:00-19:00 —осень
19:00-7:00 —зима
© прогноз погоды на завтра. Одевайтесь соответствующе!
© типичный канадский юмор

Погода меняется стремительно. На 20 градусов за день — запросто. Понятно, почему канадцы часто одеты не по погоде — просто нет смысла переодеваться, проще подождать. Человек в зимних ботинках и шортах — норм. Человек в пуховике и шлёпках на босу ногу — норм. Все весьма закаленные. Видел афроканадца, неспешно прогуливающегося в шортах и футболке под лёгким снежком, с широкими жестами общающегося по телефону. Видел детей, которые при +15 обливались холодной водой в фонтанах-стрелялках на детской площадке.

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

Медицина

После того как я неудачно переболел грипп-пневмония-плеврит, я уже не могу закрывать на это глаза. Рано или поздно, все с медициной столкнутся, даже ЗОЖники. Когда-то давно я проводил сравнение медицинских систем разных стран. Израиль, Германия, США, Канада, Швеция, Польша, Австралия...

Ни в одной стране я не нашел однозначно хорошей реализации, везде есть не просто жалобы, а смертельные жалобы.

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

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

Про качество жизни можно посмотреть тут.

Кстати, я привыкаю к тому, что мой размер с моими 182 см роста — это M. И кошки по 7 кг — это норма. Здоровая еда и медицина решают.

Недостатки

Я опрашивал множество людей на улицах, таксистов и т. п. о недостатках страны. Все хвалили медицину, образование, политику. Ругали погоду: «У нас зимой −30ºС бывает!» (ха, удивили). Ругали ремонты на дорогах.

Однажды я спросил компанию подвыпивших бизнесменов, что им не нравится в Канаде. «Как и у Украины, у нас долбанутый сосед». А если серьезно, то дух соревнования тут слабее, чем в США, а социализма намного больше. Так что молодым-амбициозным-бизнес-ориентированным тут будет не очень. Ну-у-у, разве что в GTA (Торонто+).

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

Бытовые зарисовки

Этот раздел больше о моих впечатлениях и наблюдениях, чем о чем-то практичном. Собран из слегка подрихтованных постов в моем FB.

Первое впечатление: год назад, с дополнениями

В сентябре 2018 мы были в Канаде со сложным визитом. Родственники, туризм, инвесторы, прошлый-возможно-нынешний-работодатель, позапрошлый-возможно-будущий-работодатель и т. д.

По обзорам я был уверен, что нам меньше всего понравится Монреаль, а больше всего — Торонто. Как я ошибался.

Я советую выбирать город по принципу «а есть ли здесь кто-то, к кому я могу напроситься попить чаю и потрындеть?» Потрясающе облегчает адаптацию. Даже люди, с которыми знаком только по фейсбуку — оказывают огромную поддержку. Кстати, ко мне можно напрашиваться :)

Оттава / Гатино

В новых спальных районах тишина. При этом внутри дома звукоизоляции часто нет.

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

Природа/погода как в Харькове, Пятихатки.

Заборы от животных, а не от людей. То есть ограблений и педофилов не боятся, в отличие от медведей.

17 сентября, Оттава, +30 °С, снег настоящий и без фотошопа, но это фейк

Монреаль

Только столкнувшись с французским, понимаешь, как хорошо знаешь английский.

Город очень разный. Шаг в сторону — и небоскребы сменяются «трущобами». Мало рекламы.

Нет бродячих кошек и собак. Вообще. Зато очень много белок.

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

Я снял Airbnb, как выяснилось, в дешевом столетнем здании в самом конце Gay Village. Чисто, но бедно. Представьте советскую общагу, ужмите коридоры вдвое, помойте и покрасьте. Из квартиры (20 м2) при этом есть пожарный выход, закрытый на дохлую щеколду. И на этом выходе есть работающие лампочки.

Upd:потрясающая архитектура. Небоскребы вперемешку с историческими зданиями. Фасад и холл — от здания 18 века, а выше — небоскреб.

Upd 2:очень приятный work/life баланс. Это важно для такого трудоголика, как я.

Эдмонтон

Много заборов от людей. Есть бомжи, и довольно много. Почти не видно жизнерадостных инвалидов в мотокреслах. Люди улыбаются редко и натянуто. Общее ощущение — будто в Харьков попал.

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

В центре много объявлений «офис в аренду». Экономический кризис из-за низких цен на нефть. Муниципалитет пытается перескочить из ресурсного прошлого в цифровое настоящее, но это сложно.

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

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

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

Вахтер прибежала помочь разобраться с системой управления лифтами. Там же один пассажир автобуса бросился догонять второго, так как тот забыл мобильник на сидении. Upd: перечитываю сейчас, в голове удивление: «А что, может быть иначе? Это же норма!»

Эдмонтон строился по схеме, привычной в Северной Америке: очень удобная прямоугольная сетка стрит/авеню, исторический центр в центре и более современные малоэтажные районы по окраинам.

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

Чистая экономика, всё естественно, без вмешательства муниципалитета. Ничего не предвещает беды, да?

А потом как-то вот «внезапно» стало понятно, что если обновление трущоб в небоскребы идет волной, то на пути волны возникают краевые эффекты.

То есть в бизнес-центрах днём кипит жизнь, а ночью они вымирают. А вечером засидевшиеся на работе трудоголики выносят свои толстые кошельки в кольцо трущоб, где их ждут местные Робин Гуды. Бизнес такие вопросы решать не умеет. Точнее, мог бы решить бронированными автобусами с автоматчиками сопровождения, но это всё же Канада, а не Голливуд. Они же налоги платят и власть избирают!

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

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

Торонто

Кого ни спросишь, как тут живется, ответ один: «Хорошо, но дорого».

Пресное озеро размером с маленькое море. Вода чистая. Говорят, бывают шторма.

В Торонто айтишнику будет бедно. Кмк, GTA превращается в вариант Долины: много работы, большие зарплаты, чудовищные цены на жилье и т. д.

В Торонто культура ПДД похуже, чем в Оттаве/Монреале/Эдмонтоне: видел человека, который входил в поворот на высокой скорости и не пропустил пешехода, видел перебегающих пешеходов, видел бредущее по осевой тело. Слышал громкий мотоцикл и один раз бибиканье.

Вода из крана явно хуже, чем в Оттаве-Монреале-Эдмонтоне. Но лучше, чем в Харькове.

Много белок. В Эдмонтоне было непривычно без них.

Медленные светофоры. То есть ждать пару минут — запросто. Инфраструктура под пешехода есть, а пешеходов почти нет. Типичный пешеход — это велосипедист или пенсионер на мотоколяске.

Uber на двоих стоит столько же, как и общественный транспорт. С оговорками.

Перелет одиночный

Я летел в начале июня-2019 без семьи, в Монреаль, рабочая виза. Из всех городов Монреаль понравился больше всего, Торонто — меньше всего.

Протестировал сдачу авиабагажа в картонных коробках «Новой почты» плюс пленка. Всё норм.

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

Меня завернули таможенники в Борисполе. Нельзя вывозить вот так монеты старше 1961, только по разрешению. Поэтому — марш-бросок на «Новую почту», благо, время я заложил с запасом.

Бюрократия в аэропорту заняла полчаса-час в сумме на обоих дополнительных пунктах.

Выхожу: пустой аэропорт, моего багажа нет. Нашел в отдельном закутке снятым с ленты.

От дома до дома — 33 часа.

Сразу же получил Главный Канадский Документ — Карту Греха. Так и называется — SIN form. Тоже полчаса на всё.

Сборная солянка

Таксисты любят правительство.

Айтишники — русскоязычные, китайцы/японцы, индусы, местные. Вроде норм уживаются. Аж ни разу не элита, просто высокооплачиваемая профессия, но не супер.

Секрет убранной канадский квартиры — встроенные шкафы.

Везде, где есть многоэтажки, Wi-Fi-диапазон забит. Полсотни точек одновременно, скайп работает проблемно.

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

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

Супермаркеты и прочие магазины по выходным часто работают по сокращенному графику. Это лучше, чем в Берлине, но всё равно — шок.

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

Слышу сирену на улице. Потом снова. И еще. По улице на сумасшедшей скорости в 20 км/ч гоняет красный микроавтобус с надписью «Закрытие воды» («Fermeture d’eau»). Я так и не понял — это просят не пользоваться водопроводом? Ну, воду не отключили. По итогу отремонтировали гейзер воды из люка.

За первые десять дней видел две ржавые машины, гниющие на вечной стоянке.

Асфальт под дождиком кладут.

Я месяц жил на первом этаже, так вот шаги над головой — как рядом. Голосов не слышно.

Везде какие-то концерты и толпы народа. Несколько раз ощущал запах травки, год назад её разрешили.

Активировал новый номер, и через три часа на него уже пошел scam-звонок.

Был в условно русском магазине. Увидел, к примеру, «Квас Тарас» — редкая фигня. Еще всякие травяные настойки и т. д. Первая мысль: какую херню люди покупают от ностальгии. Вторая: а что буду покупать я? Чай?

Всё зеленое.




Много китайцев. Как говорят, пошла новая волна иммигрантов. Upd: я вижу волну русских+украинцев, китайцев, иранцев.

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

Три дня назад кто-то выкинул старый носок рядом с тротуаром. С интересом жду, когда его уберут. Нового мусора рядом не появляется, но и носок пока на месте.

Детей здесь выгуливают на поводке и в специальной форме.

У меня первый созвон с украинской командой — в пять утра каждый день. В это время люди спят, зато у местной городской живности завтрак, и белки крайне возмущены моим присутствием в окне — трясут хвостами и прячутся на дереве. Зато сурок (?) отнесся пофигистично. Он размером с мелкую кошку.

Купюры канадские мне нравятся. Крепкий пластик с прозрачными вставками, практически вечные, как понимаю. А вот монеты — это ппц, попробуй на них найти номинал.

Кстати, вот как раз с монетами мне языка и не хватило. Понадобилось мне постираться, пошел в подвал, нашел стиральную машину, нашел инструкцию. Налил на дно тайд. Высыпал одежду. Начал вставлять деньги. Не получается, монеты должны быть строго один доллар плюс два по четверти, и никак иначе. Итого, у меня в открытом общественном подвале гора вещей, подмоченных стиральной жидкостью, и нужно срочно разменять деньги. В соседнем подземном гараже нашел какого-то парня, попросил разменять. Он мне предложил дать два доллара. Объяснить ему, что у меня два доллара есть, не удалось. Так он, похоже, и решил, что я бомж, просящий милостыню. Хотелось ему оставить визитку «VP of engineering», но он всё равно по-английски не понимает. В общем, парень уехал, а я побежал в местный аналог Макдональдса (Tim Hortons). Там меня тоже не поняли, но я уже был умнее и заранее в гугл-транслейте перевел на французский.

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

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

Заключал договор на интернет в дом. В Харькове я платил 400 грн за гигабит, тут я плачу 1100 грн за 60 мегабит. 60, Карл!

А в Airbnb-квартире инет падает. Как только люди не на работе — всё, пинги по 3 секунды, и каждую минуту разрывы по 10 секунд. Под конец месяца выяснилось, что нужно перегружать роутер раз в несколько часов. Ну и вообще, стабильный инет на 2,4 ГГц — это для деревни, а не мегаполиса.

Помните Задорнова — земля стекловатой? Шутил он и про выключатель за шкафом, и «ну, тупые!» Так вот, в квартире, где я жил — выключатель за шкафом.

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

Трупиал

Красноплечий чёрный трупиал долбанул меня по затылку.

Остановился я посмотреть на хитрый мост, и тут чувствую удар по голове. Трупиал подлетел со спины, клюнул и улетел вперед. Сел метрах в пяти и смотрит на меня. Ну, ощупываю голову, дырки нет. Червяков, гусениц, ягод и еще чего-то такого, чтобы было интересно птицам — тоже нет.

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

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

Курильщики

Курящие в Канаде есть. За два месяца мне дважды приходилось отходить от них в сторону.

В открытой продаже сигарет нет, рекламы тоже нет, в том числе скрытой «Мальбара — известный производитель леденцов». Чтобы купить сигареты, нужно подойти к продавцу, и за $20 он тебе достанет из-под прилавка пачку. Другие покупатели её не увидят. И да, $20 — это много.

Белки

Покормить белку в Монреале стоитот 300 до 600 долларов. Прибить, например, отгоняя от своего цветника — примерно столько же.

Это в первый раз, во второй будет дороже. В третий — еще дороже.

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

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

Естественно, все эти штрафы — если, например, соседи пожалуются. При желании можно поиграть в рулетку.

Кошки

Обеих кошек мы подобрали с улицы.

Старшая, Броня, считает, что с нее хватит, и на улицу — ни ногой.

Младшая, Пуша, считает что если перезимовала под Харьковом, то и в Монреале не пропадет. И вообще, белки — это белкИ. А кошки — ночные охотники. И что территорию нужно размечать.

А белки кроют матом понаехавших.

А я думаю, во сколько обойдется, если Пуша таки поймает белку на глазах у соседей.

И еще, как объяснить Пуше, что ночью её на дороге не видно.

И что делать, когда Пуша испугает скунса.

Вода

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

Ну и вода чистая, холодная, мокрая.





Видел серферов, которые оседлали бурун на доске и катятся на одном месте по несколько минут. Кстати, тонут люди, уж очень шустрое течение.

Улицы

Почему сложно сфоткать типичную улицу в Монреале? Или в кадр попадает только один дом, или ты видишь зеленую улицу. Как я понимаю, местные правила требуют перед домом посадить дерево (или несколько). И городские власти что-то о кронировании не знают. Я напедалил больше 30 км по улицам в районе... ну, в Харькове это был бы кинотеатр Довженко или Троянда: вроде и метро не очень далеко, и жилье дорогое, но уже и совсем не центр.

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

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

Я долго искал прыщ на ухоженном лице Монреаля. Нашел. В прошлый раз мы остановились здесь — это самый конец Gay Village. Этим домам по сто лет, они внутри тесные и неудобные.

Маленькие тротуары, почти нет зелени. Если бы я не знал с сентября о существовании этой улочки — я бы не нашел.

И у меня предположение, что я съел что-то из арсенала Кэрролла.

Борщ

Я полтора месяца жил вдали от жены. Да, мы созванивались, но не всё можно сделать через интернет.

И вот, я не утерпел и решил сварить борщ.

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

Итого. Примерно 30 USD на продукты, час на порезку и прочее, и у меня есть кастрюля «борща». Ну-у-у... я это ем. Без удовольствия. Как выяснилось, в борщ входит ингредиент, о котором я не подумал совсем. Вода. Вода из-под крана. В чае она хоть как-то терпима, но в борще... жуть.

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

UPD: 30 USD — это я специй купил. И вообще, теперь я знаю, что магазин был совсем неправильный.

Язык

Как я понимаю ситуацию с языками в Монреале на основании услышанного и подслушанного и без глубокого анализа статистики.

Английский — язык международных компаний.

Французский — родной язык большинства тут.

Для получения работы в международных компаниях, или в госорганах, или в сфере обслуживания нужны оба языка. Работник зала в супермаркете должен владеть обоими. Короче, хочешь денег — учи английский.

Из школы выпускаются последние лет десять-двадцать вполне двуязычные.

В результате чисто франкофоны получают хуже работу, меньше денег, чаще вынуждены переселяться на окраины. «Только французский» чаще воспринимается как недостаток, чем «только английский». Так считают в том числе опрошенные таксисты-франкофоны, и качают разговорный английский со мной :)

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

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

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

То есть французский в теории важен и необходим, и на практике важен и полезен. Но общение всё больше происходит на английском.

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

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

Официальная статистика отсюда.

Зрада политическая

Подобрал бегло самые скандальные новости Монреаля.

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

Киты запутываются в веревках и тонут.

Правительство плющит англоязычные школы, те идут в суд.

В дальней деревне на севере собаки загрызли годовалого ребенка.

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

Из-за множественных ремонтов на мостах и дорогах много пробок. Всё время что-то ремонтируют и строят, причем очень быстро. Местные говорят, что дорожные работы — это способ откатов.

Вышел скандальный фильм против абортов. Владелец сети кинотеатров не хочет цензурировать фильм, на который есть спрос.

Два года назад два мужика избили пожилую женщину. Сегодня их поймали.

Налоги на богатых, какой формулой их описать?

Донор спермы стал отцом десятков детей, но не может с ними познакомиться. Переживает, вынужден обратиться к психотерапевту.

Владельцы жилья сдают его через Airbnb и не платят налоги. Цены на жилье растут, рынок не успевает строить новые дома.

Школы переполнены, детей много.

Правительство тянет нефтепровод из Альберты. Он окупится, только если нефть будет дорогой.

----
Это самое скандальное, за что я зацепился в местных новостях.

«Газеты в идеальной Утопии были бы нестерпимо скучны» © А. Кларк, «2001: Космическая Одиссея»

Были федеральные выборы, это заметно по резко возросшему количеству рекламы на улицах, см. фото. Кстати, на уровне сарафанного радио много агитации.

И еще о зраде. Действующий премьер-министр, тот самый Трюдо, которого мы знаем по носками Мелании, победил в выборах. Несмотря на то, что на него нашли страшный компромат: 18 лет назад он использовал блэкфейс. Всем бы такой компромат :)

Зрада бытовая

В супермаркетах часто дурят с ценниками. То есть на кассе оказывается, что товар стоит не столько, сколько ты думал. Есть и законы, которые должны такое предотвращать — но нет, сталкивались неоднократно. Чеки нужно хранить.

Банки мошенничают с новоприбывшими по поводу курса и скрытых платежей.

Полиция кражи расследует лениво и неохотно, «меньше 1000 баксов? Ну-у-у...» Может левый штраф выписать.

В локальной группе жалоба: «Сосед курит на балконе, ко мне затягивает, ничего сделать не смогли, вынуждены переехать». Там же жалоба: «В этом году в парке много диких гусей, всё засрали, ходить невозможно» и тут же «Понаехавшие дети гоняют гусей, как так можно с живой природой!»

Арендодатели жалуются, что не могут ставить рыночную цену на жилье для тех, кто арендовал давно.

При покупке мягкой мебели есть хороший шанс купить с насекомыми.

При покупке б/у техники запросто могут продать нерабочую. Лотерея.

Культура

Подхожу к пустынному входу в супермаркет. Передо мной трое брутального вида парней шумно переговариваются и достают один другого. Я напрягаюсь, что сейчас могут и меня достать. Ага, это мои школьные страхи конфликтов. И да, они начали конфликт с пожилой женщиной с тележкой-кравчучкой. Уступали ей дорогу, чтобы она вошла первой, а она уступала им.

Подхожу к остановке, там уже ждет семья. Места дофига, автобусы пустые, поэтому становлюсь метрах в трех, чтобы им не мешать. Погружаюсь в мобильник. Через 10 минут подъехал автобус. Так вот, за мной уже стояла очередь, и никто не влез вперед.

В Канаде отвыкаешь от маскулинности: здесь принято уступать дорогу, подержать дверь и т. д. Ничего похожего на наше непрерывное соревнование «кто уступил — тот и лох». Все невероятно улыбчивы и готовы помочь даже себе в убыток. Например, подробно рассказать маршрут, а потом побеждать догонять свой автобус.

Адаптация

За интеграцией в сообщество следят очень четко. То есть китайский квартал — запросто, но все будут говорить на английском или французском. И соблюдать местные законы. Был конфликт между «присягу на гражданство нужно произносить так, чтобы было видно движущиеся губы» + «судья, принимающий гражданство, может быть мужчиной» + «некоторые религии требуют скрывать женское лицо перед посторонними мужчинами». Так вот, толерантные канадцы решили, что закон важнее. Не можешь соответствовать закону — не принимай гражданство. В Квебеке госслужащим запрещено надевать религиозные символы в школу. То есть учитель с крестиком на шее в школе невозможен.

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

Чего мне не хватает: сравнительно сложно купить сало, пельмени, хлеб привычный. Нет «Пузатой хаты». Uber работает хуже OnTaxi/Уклона. Нет щавеля и творога.

Семейная экономика

Канада — страна среднего класса. Все получают много. Побочный эффект — частенько привычно копеечные услуги стоят дорого: помыть машину, подстричься и т. д.

Одинокая женщина может содержать ребенка. Но при этом домохозяйничать жене айтишника может не удаться. Механизм я пока не понимаю.

«Сколько остается на руки?» — пока не знаю достаточно точно. При одном работающем в семье, скорее всего, хватит на жизнь в квартире в средненьком районе и на б/у машину. Голодать не будете, и медицина тоже будет. Но на несколько лет придется забыть про «Я привык к топовому макбуку» и «Раз в год слетать в жаркие страны». Джуниором быть тяжело, да.

Если примерно, то у меня сейчас из зарплаты 35% уходит на налоги. И к большинству ценников в супермаркете нужно добавлять 5% федеральных + 10% провинциальных. Последнее — кроме Альберты/Эдмонтона, у них таких налогов нет.

Вилка зп для приехавших синьоров — от 70 до 100 тыс. канадских долларов в год до налогов (1 CAD = 0,76 USD).

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

Еда — ну пусть будет 10 CAD на человека в день. Это невероятно примерно. Явно можно и 5, и 25. Очень важно научиться пользоваться скидками. К примеру, мясо стоит 10-30 CAD,а по скидке — от 6.

Вещи, которые я привык покупать дешево, от хлеба до билета на автобус — будут стоить дорого. Вообще цены начинаются от 3-5 CAD,человеко-час слишком дорог. Вещи, которые я привык, что они дороги, — тут дешевле: машины, одежда, бытовая техника и т. д.

Остальное лучше посчитать на numbeo.

Улыбки

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

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

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

Note 1:Числа приблизительные и не подтверждены научно достоверными методами.

Note 2:Правила сложнее и должны зависеть от количества людей в моей и встречной группе, освещенности, репутации района и т. д.

LGBT

В Монреале целующиеся парни — не редкость, и это никого не цепляет. Есть даже исторический район Gay Village вблизи от центра города.

Во многих анкетах видны следы адаптации под современные требования «М» + «Ж» + «скажу потом».

Здесь это воспринимается как норма. Я вспомнил об этом, так как фейсбук подсунул статью со ссылкой на научное исследованиес выводом: «В тех штатах, где разрешили однополые браки, количество суицидов среди подростков упало на 7%».

Логистика по городу

Арендовал вел bixi. Неубиваемый малоудобный танк. Непривычно, когда машины тебе уступают. Особенно с учетом правила «кто первый подъехал к нерегулируемому перекрёстку, тот первый и стартует». Пока я жду, что сейчас они проедут, они ждут меня.

Если я, как пешеход, подошел к переходу, то машины остановятся. То есть если я НЕ хочу переходить вот прямо сейчас, то нужно остановиться в полутора метрах от проезжей части. Upd: с точки зрения водителя пешеход, машущий «проезжай» с края тротуара, предлагает рискнуть сотней баксов ради 20 секунд экономии.

Потратил больше часа на 200 метров расстояния между двумя ТРЦ. Вот тупо не мог перейти многоуровневую развязку. И местных спрашивал, и гугл-карты тряс, и автобус поймать пробовал. В итоге нашел человека, который знал пешеходный маршрут.

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

Входы в супермаркет в Украине — со стороны улицы, а здесь — со стороны стоянки во дворе.

Тяжелое

Есть в Канаде тяжелые для меня явления.

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

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

Я встретил своего дедушку, умершего много лет назад. Присмотрелся — ну, точно не он. Но первые секунды было очень больно.

Преступность

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

Кстати, сравнил статистику по изнасилованиямв Канаде/США/Украине, все показатели на 100 тыс. населения:

1,7 / 27,3 / 1,4

По исследованию Statistics Canada in 1992, только 6% женщин обратились в полицию. В США Bureau of Justice Statistics 2004 — 34,8%. Что касается Украины: думаю, что 1,4 — это не из-за малого количества, а от недоверия правоохранителям.

В общем, везде фиговато.

Для сравнения, уровень убийств. Его скрыть куда сложнее:

1,8 / 5,30 / 6,20

Ну и до кучи, количество заключенных:

114 / 655 / 157

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

Был я в совсем плохом районе: Монреаль-Норд, бедное черное население. Визуально от обычных районов не отличается. Совсем не похоже на гетто из репортажей о США. Есть еще Канавек, индейцы с налоговыми льготами. Там я только проезжал, тоже плюс-минус норм. Ворчливое и неприветливое население. При мне подвыпивший мужик в междугороднем автобусе наехал на темнокожую девушку с ребенком. Как я понял, он искал, на ком оторваться, и повод был «понаехали тут и даже по-французски не говорят». Ну, она терпела, а потом высказала ему несколько предложений на французском, и дальше он бубнил уже безадресно себе под нос.

Банки

— Хочу у вас счет открыть и деньги положить.
— Хорошо, сейчас посмотрю, в какой день мы сможем вас принять.
— А можно сейчас?
— Нет.
© Диалог в банке

Босс показал мне фокус: «Смотри, я карточкой расплатился, и уже через пять секунд у меня СМС об этом!» Э-э-э... ну... а какой украинский банк так не делает уже лет семь?

Банки в Канаде по украинским меркам — дикари.

К примеру, запросто есть лимиты типа «10 операций в месяц» и «не больше трех повышений лимита в месяц».

Еще для логина нельзя использовать SMS. И о «левых» списаниях ты узнаешь не по SMS, а по выписке в конце месяца. Ага, вы эту выписку читали у активного пользователя? Количество записей, расшифровка торговой точки?

И если у тебя скопировали дебитную карточку — это твоя проблема. Кстати, booking.com слал все данные карточки отелю в открытом виде.

Да, они все эти вопросы решают. Например, по кредитке можно пожаловаться в Visa, и они вернут деньги. Ну, если ты заметил вовремя, и если у тебя кредитка.

Но мне кредитку в RBC не дали, т.к. work permit всего на год.

А модный Tanderine хочет документы с фото, выданные правительством Канады, которых у меня нет и не ожидается в обозримом будущем.

Тут, кажется, всего семь банков, и им хорошо. Слабая конкуренция. Revolut тоже пока не зашел.

— Хочу получить кредитку, у меня рабочая виза на год.
— Ок, вот вам кредитка на 500 CAD. Но мы заблокируем 500 с вашего основного счета на год.
— В смысле вы берете мои деньги, отдаете их мне в кредит и штрафуете, если я свои деньги себе отдам не вовремя?
— Да.
© диалог в банке

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

3D Secure нет нигде.

Логин в онлайн-банкинг через СМС — в одном из трех банков.

Везде упор на мобильное приложение, но мой note 9 три из четырех банков не поддерживают. Они вообще, кажись, только до Android 7 умеют.

В итоге нашел вроде хороший банк CIBC. Шикарные условия. Как говорят знающие люди — потому что допустили грандиозную утечку данных, и теперь им снова нужны клиенты :)

Паспорт для получения туалетной бумаги

Всё просто:

  1. Заказываешь кучу всякого на Амазоне.
  2. Вспоминаешь, что бумага заканчивается и что на веле её везти от супермаркета неудобно. Докидываешь в заказ с формулировкой «Привезти всё одной коробкой».
  3. Получаешь письмо «Одной не получилось, будет двумя».
  4. Получаешь первую коробку и письмо «Для получения второй нужно подойти на почту с паспортом».
  5. Идешь на почту в супермаркет, показываешь паспорт, получаешь коробку с туалетной бумагой.
  6. На веле везёшь её из супермаркета. Неудобно.

Бонус: коробка!

Сто дней одиночества

Я получил визу в мае, и тут же улетел — так было нужно. В июле моей семье в визе отказали: если коротко, то «мы не понимаем, почему вы не оформляли визу вместе». Ок, из-за ошибки юриста я потерял примерно 2500 USD на билетах. В сентябре подтвердили апелляцию. Зато я прожил сто дней в одиночестве. Это мой первый опыт жизни в отрыве от тесных контактов и самостоятельного ведения хозяйства долгое время.

Что я заметил:

  • Эмоциональные перепады у меня есть сами по себе. Их нельзя однозначно списать на семейные и рабочие отношения. Может быть — на погоду, еду, сбитый график сна и т. д. И депрессия, и тревожность — это мои внутренние процессы. Это знание поможет мне дальше в семейных конфликтах.
  • На расстоянии семейные конфликты у нас не возникали. А вот в Париже, где мы встретились на несколько дней в августе, на второй день вспыхнуло на ровном месте. Больше раскрываемся и подставляем уязвимые места. И это правильно. А еще лучше — уметь конфликты конструктивно решать. Это куда лучше, чем «не показывай свои эмоции».
  • Я себя считал устойчивым к одиночеству и интровертом, так нифига. Одному плохо. Как сейчас плохо маме — страшно подумать.
  • Вкус в одежде скакал очень неожиданно. Была футболка, которая мне очень понравилась на АлиЭкспрессе, заказал. Я её очень ждал, чуть ли не каждый день трекинг смотрел. А потом пришло сообщение об отказе в визе для семьи, и всё — эта футболка мне нафиг не нужна.
  • Я теперь совершенно точно знаю тот баланс уборки-разборки, в котором мне комфортно. Заодно знаю, сколько я продуцирую пыли и волос :)
  • Посудомойка для одного человека — скорее не нужна, чем нужна.

Воссоединение

Через пару недель после прилета дети пошли в школу. Все трое — в разные французские welcome classes: это такие классы, в которых 15 детей, говорящих на 10 языках. Я читал, что такая практика в каждой школе — только в Канаде и Израиле. Как я понимаю, в США и Австралии это тоже есть, но не так массово.

Итак, дети.

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

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

Катя, 6. Ей школа дается со скрипом, в её возрасте обязательность задач еще внове.

В младшей школе запрещены мобильные телефоны. В старшей — ограниченно.

В Квебеке школа отделена от религии. В других провинциях хорошие школы обычно католические.

Учебная программа явно слабее по математике и точным наукам. Везде, где есть формулы, Лена и Игорь имеют несколько лет форы.

Для родителей тоже есть бесплатные курсы французского, мы уже были на нескольких занятиях. Обещают довести до B2 примерно за год. Хотя я не уверен, что вытяну. Особенно с учетом того, что курсы заканчиваются в 21, а мне к 5 на работу.

О том, что дети научатся быстрее нас, особенно младшие, и прочие новости из будущего писать не буду.

Ботинки

В четверг был ливень. Грандиозный. Мои туфли промокли насквозь в первые минуты, даже не вступая в лужи. Джинсы ниже куртки, впрочем, промокли тоже, тут был нужен скафандр или машина.

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

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

Времени не было, так что взял так.

Днем в голову пришла мысль, что теперь они будут срабатывать в каждом магазине. Фигня.

Сразу же пришло в голову два решения. Менеджерское — поехать в другой магазин этой же сети, и размагнитить там. Долго и лень.

Второе решение: я же инженер. Ладно, «инженер минус программист» — примерно так в дипломе написано. Я могу сжечь эту схему в микроволновке.

Ок, ботинок в кулек, и десятком импульсов по паре секунд обработал. Ботинок даже не нагрелся.

Второй ботинок обработал импульсом в семь секунд.

Теперь я знаю, что:

  • схема вшита в левую подошву;
  • схема боится микроволн;
  • даже с такой дырой хорошие ботинки остаются водонепроницаемы.

Я получил новый квест по засиликониванию дыры и покупке новых стелек. Что увеличило цену в 45 CAD (860 UAH) еще процентов на 10.

Вело и дороги

По трекеру, я за полгода накатал больше 1000 км по Монреалю на велосипеде. На фото — самый жуткий участок самой плохой дороги, я специально искал. Там глубина ямы — сантиметров семь, и машины объезжают. На второй фотке — просто плохая дорога. Плохая — это значит в трещинах. Я бы сказал, что таких километров пять я видел в сумме за все поездки. Это не сравнить с выездом из нашего двора в «элитной» Алексеевке, и уж тем более — с трассой на Казачью Лопань, где я на горном веле выше 7 км/ч разогнаться не мог.

Местные жители на дороги жалуются. И на дорожников жалуются: «У нас два сезона — снег и ремонт». Реально, дороги непрерывно перекрываются в самых неожиданных местах. Навигатор не всегда успевает обновиться, а ездить по местным дорогам без навигатора — верный способ найти приключения.

Асфальт трескается даже там, где тяжелых автомобилей быть не может, например, на отгороженных велодорожках.

Местные спорят, в чем проблема — в дорожной мафии или в стандартах полувековой давности.

Вот этот кусок велодорожки меня раздражает. Шесть бордюрчиков на сто метров! Ну кто так строит!

Вообще велоинфраструктура заслуживает отдельного лонгрида. Здесь ездят на всём — от велоприцепов для тех, кто еще не ходит, до электрокресел для тех, кто уже не ходит. Многие, но не все, станции метро и автобусов адаптированы под «человека на колесах». И да, я понимаю, что лет через 20-30мне запросто что-то такое тоже может пригодиться.

Машины

Что я знаю про владение автомобилем в Канаде?

Б/у машины заметно дешевле, чем в Украине. Со всеми налогами нам полноприводная Toyota Venza 2011 обошлась в 11 тыс. USD. В Украине было бы примерно от 17 до 20 до налогов.

Не проблема купить машину-автомат на ходу вообще за несколько тысяч. Запчасти, скорее всего, будут стоить дешево. Но не жалуйся, что буксировка+ремонт «если что» может влететь в копеечку. И что ремонт может занять много времени. Да, без машины в Монреале грустно даже такому автомобиле-пофигисту, как я.

А вот работа механика будет стоить от 30 до 80 USD в час. И менять какой-нибудь ШРУС они захотят только в сборе. Поэтому мелкие фиксы часто не делают.

Техосмотра нет.

По словам жены, правила очень четко гнут линию «в любой сомнительной ситуации — уступи, пропусти, замедлись». В реальной жизни всё не так радужно, но всё равно имеет место быть.

В Монреале пробок почти нет, а вот тянучки со скоростью пешехода — частенько.

Отношение к машине очень потребительское, сломалась — в гарантию/сервис/гараж. Мало кто возится с машиной сам. Поэтому приезжие из второй четверти 20-говека вполне хакают систему, выполняя мелкий ремонт самостоятельно. Или крупный — в гараже.

Пробег вполне скручивают, и чем старше машина — тем больше шансов. Зато если в Украине машины с заявленным пробегом больше 150 — редкость, то тут и 400+ вполне бывает.

Проверка машины на СТО перед продажей — экзотика.

Большинство б/у машин продается по схеме «я покупаю новую, а старую отдаю дилеру, пусть он продает».

Страховка обязательна, и все страховые случаи попадают в базу. То есть все более-менее двухсторонние аварии в истории машины легко отслеживаются. А вот кейсы «стукнул столб», «утонул» или «поймал лося» — совсем не факт. Лось — смертельно опасен из-за длинных ног, тушка в 300-500+ кгна хайвэйной скорости как раз в лобовое влетает.

Нам опять здорово помог CarFinder.

Рекомендую:

  • проконсультировали по моделям: «б/у корейцев в Монреале сложно ремонтировать» и т. д.;
  • помогли выбрать, кого стоит смотреть: «этот дилер специализируется на битых машинах, см. тут и тут», «у этой машины руль нетипичного цвета». Впрочем, от некоторых вариантов отказался уже я — дилеры в «криминальных» районах меня смущают;
  • подсказали, на что смотреть в каждом экземпляре: любимые места ржавления, следы замены блоков, полировки и т. д.;
  • подсказали, что в дефект-листе важно, а что — нет.

При покупке машины очень редко кто платит наличкой. Но как у недавно приехавших, у нас только наличка и была. Оформили все бумаги, нас поздравили, попрощались и показали, где выход. Я: «Ребята, вы забыли у нас деньги взять». Они: O_o. Непривычно им с налом.

На КПДВ — счастье детей, нашедших панорамную крышу и люк.

Как уехать в Канаду айтишнику и не только

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

Говорят, что огромный спрос на двуязычных (английский-французский). Говорят, что дальнобои, строители и фермеры очень нужны. Не проверял.

Масса консультантов по иммиграции. Большинство заточено на «а мы вам за несколько тысяч баксов подскажем универ, куда поступать, и поможем заполнить анкету». В общем, сомнительная услуга, как по мне.

Возраст — лет этак до 35 без проблем. С моими 42 — нужно уже сильно изворачиваться и набивать отличные языки, job offer и т. д.

Цена вопроса... большая тема. Если коротко и отбрасывая детали, то возьмут миддл+ айтишника, а у таких уже есть заначка и/или квартира. Конечно, страшно продать квартиру и прыгнуть в неизвестность в расчете, что пока проедаешь запасы, успеешь закрепиться.

Переезд

Этапы:

  1. Если есть возможность — лучше получить туристическую визу и слетатьпосмотреть заранее, походить по собеседованиям. Кмк, это окупится.
  2. Рабочая визана конкретного работодателя. Это не обязательно, особенно для тех, у кого хорошие языки, возраст до ~35, синьор, и есть запас в несколько тысяч долларов на человека. Работодателю нужно на каждого человека исписать пачку бумаги, так что это удел крупных компаний. Ну, или уникальных специалистов.
  3. Вид на жительство — Квебеки остальная Канада. Проще получить с канадским опытом на рабочей визе, но можно и так податься. Заранее можно подсчитать шансы. И да, скорее всего, поиск первой канадской работы займет несколько месяцев, которые нужно на что-то жить.
  4. Гражданство. Это через несколько лет работы и после сдачи экзаменов и присяги.

Самый быстрый путь для айтишника — податься на работу в Эдмонтон. Там сейчас кадровый голод, и берут многих. Как стартовый трамплин — очень даже удобно. Инфраструктура похуже, чем в более благополучных городах, но лучше, чем в Украине. После получения вида на жительство — можно переезжать.

Шаги:

  1. Перевести документы: свидетельства о рождении, браке и т. д.
  2. Подтвердить диплом: это несколько месяцев и включает в себя два министерства образования, фирму-прокладку в Киеве, ну и на почту.
  3. Сдать экзамен по языкам (IELTS). Экзамен здорово отличается от реальной жизни, лучше к нему готовиться заранее с преподавателем. Например, я погорел на скорости письма ручкой по бумаге. Тупо времени не хватило. В этом году уже можно и на компе сдавать.
  4. Податься на разрешение на обучение детей. Тут я не уверен, в каком порядке с визой.
  5. Податься на визу. Если всё хорошо, то со временем придут запросы:
    • Медкомиссия. Канада хочет быть уверена, что новоприбывшие не повиснут на шее бесплатной медицине дорогим грузом. Медкомиссию зачастую проще сдать в Стамбуле, чем в Киеве и Львове.
    • Биометрика. Лично нужно явиться, Киев или Львов.
    • Штампы в паспортах.
  6. Купить билеты. Обычно AirFrance Киев-Монреаль-Киев стоит 720 USD с человека в обе стороны, между рейсами туда и обратно может пройти год. А вот летом билеты в Канаду безумно дороги, могут быть раз эдак в пять дороже. Кстати, агрегаторы этот рейс не находят, и искать его нужно строго на airfrance.ua.
  7. Забронировать Airbnb на первое время. Квартиры обычно сдают с 1-гоиюля либо с 1-гоянваря, в другие месяцы дороже, и в любом случае с 1-гочисла.
  8. Купить медстраховку на три месяца. Я брал тут.
  9. Перелет.
  10. Купить проездной и местную симку.
  11. Получить «карту греха» (SIN card).
  12. Оформить счет в банке. CIBC сейчас самый дружественный для свежеприехавших.
  13. Оформить RAMQне позже двух недель после прилета, иначе медстраховку придется докупать.
  14. Купить машину.

Если верить историям, которые я слышал — от начала активных действий (диплом, IELTS, собеседования) и до отъезда проходит от года до пяти лет.

Вебинар

Мне в личку упала пачка вопросов про Канаду, самых разных. Расписывать их все — это медленно и долго. Поэтому я сделаю вебинар в воскресенье 17 ноября в 14:00 по Киеву, часа на полтора. Такой вебинар потребует от меня каких-то усилий по организации и оплаты Zoom.us. Цена билета — переведите немного денег проверенным волонтерам или на благотворительность. Выкладывать запись вебинара не планирую. Регистрация на вебинар тут.

Культурный код

Это уже не про Канаду, хотя близко.

© не моя

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

Или, к примеру, такой диалог:

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

Для нас такой ответ переводится как «хорошо, но сейчас некогда». А американцы закладывали «это не ваша область, не надо вам сюда лезть».

Пример реальный, приведен в сокращении из-за NDA.

Со стороны исполнителей все были уверены, что дела идут классно.

Со стороны американцев — у них было четкое ощущение, что исполнители их игнорируют. Ну то есть совсем издеваются из серии «пошел лесом, директор, я лучше знаю, как правильно». В итоге был взрыв.

Я поймал это общение слишком поздно. Я проанализировал все треды переписки и чатов, звонков до взрыва не было. Я расставил хронологию каждого события. Я нашел слова-триггеры, которые вызвали детонацию. Там не было ничего особенного, просто общение без понимания эмоционального и культурного контекстов с обеих сторон. И... было слишком поздно. С тех пор прошло несколько месяцев, мне не удалось исправить ситуацию. В результате, бизнес-команда решила уволить двух классных UI/UX дизайнеров, которые еще и в маркетинг могут. Проактивных сотрудников, задающих вопросы, генерирующих идеи и говорящих на беглом английском. Кто будет делать работу вместо них — я хз.

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

vk>Я всем товарищам говорю: чувак, я не из вашей страны, поэтому не в курсе обычаев. Если что-то важно для тебя, говори мне об этом прямо, без намёков. Максимально просто.
vz>Для них это звучит как просьба выражать свои мысли матом и унижать собеседника. «Я пойму это ТЗ, только если ты привяжешь меня к столу и хорошенько отхлещешь прямо на митинге».

Прошлое не изменишь, а вот в будущем я советую обращать внимание не только на дословный перевод!

Ну и если вдруг у вас есть вакансия/работа для UI/UX/маркетинг с программистским бэкграундом — обращайтесь.

История одного предновогоднего релиза

$
0
0

[Об авторе: Дмитрий Меньшиков — CTO в Aurora Technologies. Программирует уже 15 лет, в highload 9 лет, 6 лет в роли менеджера. Основной своей работой считает выращивание инженеров и развитие инженерных подходов как в компаниях, которые строил, так и на рынке в целом. Активный участник International Software Architect Club, Kyiv CTO Meetup, PHP Friends Club. Спикер на конференциях. Верит, что хорошие продукты в IT создают только менеджеры из технарей. Кредо: языки и технологии — всего лишь инструмент достижения цели, а решение проблем является всегда точкой роста]


Эта история приключилась в конце декабря 2017 года, в его последние дни. Пока люди сражались за еду, отвоёвывая последние лотки яиц на витринах супермаркетов, отходили от похмелья после последней пятницы уходящего года, я никак не мог обрести праздничное настроение. Всему виной был проблемный предновогодний релиз. Над поиском причины я бился уже несколько дней, но не видел зацепок. 29 числа я смирился, что поиск будет длительным и сложным, и продолжу я его уже в 2018 году, но с самого утра 30 декабря в голову снова начали лезть мысли...

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

Релиз и поиски проблемы

На протяжении почти двух лет мы жили с видеостриминговой подсистемой, которую нам сдали в эксплуатацию аутсорсеры. На этапе приёмки не было достаточной экспертизы, что и послужило мотивацией к заказу аутсорс-услуг, а в ходе эксплуатации были обнаружены критические недоработки. Вообще решение оказалось наколеночным и ни разу не enterprise. Аутсорсеры как-то туго решали проблемы, даже с наличием платной поддержки. Складывалось впечатление, что там только один адекватный человек в команде, и тот вечно задерганный. Я и команда пытались решить проблемы в рамках уже существующего решения, но стоимость зашкаливала. Те, кто сталкивался с live streaming, наверняка представляют, какой гемор перепиливать сишный транскодер на базе libx264, когда нарушена логика работы с time frames, CBR просто не обеспечить, а чтобы прикрутить нарезку HLS, нужно сесть на шпагат на два стула, промеж которых пики точеные...

Так и возникло волевое решение выкинуть вот это вот всё — и написать правильно и красиво. В создании правильного и красивого команда провела семь месяцев... Я же взял на себя обязательства выкатить эти глобальные изменения в 2017 году, в декабре. Обещания нужно выполнять, а когда вроде как всё проверили и всё было окей, то зарелизились. За 13 дней до НГ. Пока были заняты миграциями и проверкой корректности организационной части, первый партнёр-пользователь системы заметил, что количество ошибок HTML5 плеера выросло.

К тому моменту мы увидели, что где-то облажались. Закатав рукава, принялись искать проблемы. Довольно оперативно были найдены десятки разнообразных недочётов: таймауты, которые возникали из-за забитого ThreadPool в Node.js, ошибки логики, ошибки админов с конфигурированием, с системами оркестрации и т. д.

Всё это удавалось решить за считанные часы, но была одна проблема, которая никак не поддавалась объяснению. Логи не содержали ничего аномального, проверки инфраструктуры и конфигов серверов с маршрутизаторами оказались безрезультатными. На транскодерах, которые принимают входящие RTMP-потоки от ingest-серверов (а ingest от стримеров), занимаются перекодированием звука и видео в нескольких качествах, происходили фризы!

На обновленном транскодере был реализован механизм детекта фриза: транскодер-сервис завершал работу транскодер-процесса при отсутствии видео/аудио фреймов на протяжении некоторого времени. Транскодер-сервис ещё уведомлял командный центр об этой проблеме, а командный центр пытался перезапустить часть таких задач. Транскодеры тянут RTMP-потоки с ingest-серверов, а в роли ingest-серверов выступают серверы с Wowza. Помимо транскодеров, с ingest тянут потоки: сервис контроля качества, сервис по нарезке preview с видеопотока, сервис записи... Почти на всех из них присутствует механизм определения фризов. Вот и всплыли эти множественные фризы на видеопотоках...

Помимо логов есть еще метрики! Ключевые метрики системы отправляются в Zabbix, а быстрые или же не самые ключевые — в Graphite. Перечитав логи и пересмотрев метрики, пришли к выводу, что фризы не единичные и возникают группами. График ниже отображает количество потоков после транскодирования, доступных к просмотру. До релиза и после релиза.

В большем масштабе это выглядело так:

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

0ec147369caddd33ebdf95be72532cd1:
2017-12-28 01:29:42    published               vss-w-p-6
2017-12-28 01:59:06    freeze on transcoder    vss-crabscoder-9
2017-12-28 02:00:06    unpublished             vss-w-p-6

52934993316c56a20731d755917e6146:
2017-12-28 01:30:55    published               vss-w-p-6
2017-12-28 01:59:08    freeze on transcoder    vss-crabscoder-6
2017-12-28 02:06:57    unpublished             vss-w-p-6

27581ab5a170e0467261ad6fc070ee33:
2017-12-28 01:46:18    published               vss-w-p-6
2017-12-28 01:58:55    freeze on transcoder    vss-crabscoder-3
2017-12-28 02:05:53    unpublished             vss-w-p-6

Но при этом были и потоки, которые не фризились.

49ee6016e84e6ae8d2000efac50ea7d6:
2017-12-28 00:46:19    published               vss-w-p-6
2017-12-28 04:18:19    unpublished             vss-w-p-6

3b125f18c52d9eb914144088ed8c142f:
2017-12-28 01:10:34    published               vss-w-p-6
2017-12-28 06:39:44    unpublished             vss-w-p-5

4cc7d1fb938038b774264e23450846b2:
2017-12-27 23:50:46    published               vss-w-p-6
2017-12-28 02:45:24    unpublished             vss-w-p-6

Факт 1. Не со всеми потоками на одном и том же сервере были проблемы.

Вместе с тем в логах Wowza ещё проскакивали записи о таймаутах.

WARN server comment 2017-12-20 15:07:11 - - - - - 188991.31 - - - - - - - - LiveMediaStreamReceiver.doWatchdog: streamTimeout[origin/_definst_/d7350b04480f90affd092816157a8dba]: Resetting connection: wowz://10.2.1.174:1935/origin/_definst_/d7350b04480f90affd092816157a8dba
WARN server comment 2017-12-20 15:07:11 - - - - - 188991.311 - - - - - - - - LiveMediaStreamReceiver.doWatchdog: streamTimeout[origin/_definst_/7c4728f4a266216c1a9c2a9ebad191ed]: Resetting connection: wowz://10.2.1.174:1935/origin/_definst_/7c4728f4a266216c1a9c2a9ebad191ed
WARN server comment 2017-12-20 15:07:11 - - - - - 188991.312 - - - - - - - - LiveMediaStreamReceiver.doWatchdog: streamTimeout[origin/_definst_/a8643913cef9e21a403416018bdf8e88]: Resetting connection: wowz://10.2.1.174:1935/origin/_definst_/a8643913cef9e21a403416018bdf8e88

Факт 2. На Wowza наблюдается обрыв потоков по таймауту. Непонятно, на приёме потока или раздаче.

В саппорт начали поступать жалобы от клиентов. Все утверждали, что их выкидывает из инфраструктуры. У каждого своё представление о том, что такое «выкидывает», но саппорт выдвинул факт...

Факт 3. Стримеров периодически принудительно выкидывает из инфраструктуры.

Другая часть команды проверила логи на ingest, origin и транскодере, и пришла к выводу...

Факт 4. Поток обрывается на ingest, затем инфраструктура это замечает и шлёт команду остановить обработку на origin, дальше это замечает транскодер, и мы наблюдаем SIGPIPE.

Отмечу, что SIGPIPE — это сигнал, что отправляется процессу в том случае, если соединение с сокетом, в который происходит запись, процессом обрывается. То есть если писали в сокет, а он закрылся/сеть оборвалась.

Еще посмотрели график событий дисконектов с ingest, и стало понятно, что они были и раньше, но их было меньше. Штатные это дисконекты или нет, по логам понять было нельзя.

Факт 5. Количество дисконектов выросло на том же количестве трафика.

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

Сведя все известные на тот момент факты, мы выдвинули предположение, что проблема с ingest-слоем. На это указывали и фризы, которые были индикатором того, что не поступают данные потока, и обрывались не сразу все потоки, а только часть.

Ещё раз обсудили план действий и зафиксировали дальнейшие шаги:

  1. Проверить запросы со стороны бизнес-логики, чтобы исключить то, что вследствие бага мы сами всё убиваем.
  2. Выяснить по логам, что или кто инициировал дисконнекты с инжеста. Пункт проблематичен, ибо потоки поступают от зоопарка софта, flash-приложений, hardware encoders, OBS, XSplit и т. п. Каждое из приложений может вести себя иначе.
  3. Надо собрать полную карту действий стримеров от подключения до отключения: кто подключался на просмотр, кто отключался, как менялся статус потока. Всё-всё-всё.
  4. Проверить лог каждого из Wowza-сервисов по отдельности на предмет наличия временных интервалов без логов (заблокировалось ПО, например).
  5. Кто из стримеров оставался после обрывов и есть ли какая-то корреляция?
  6. Проверить с дебаггерами вовзу и пересмотреть полный дифф между прошлой версией и текущей. При необходимости пересобрать Wowza с покрытием логами всех новых участков, а также проверить блокировки между процессами.
  7. Проверить IDLE и показатели как харднод серверов, так и виртуальных машин. Раньше мониторинг не замечал ничего, но мало ли...
  8. Даже проверить фронтенд клиентов, мало ли...
  9. Провести наблюдение за ingest, поснимать трафик, поснимать логи.

Чеклист первых предположений:

  1. Виноват дата-центр, и проблема у них, где-то потери на канале.
  2. Виноваты админы, маршрутизатор или сервера.
  3. Виновата Wowza.

Инженеры не признают наличия проблем в коде! Конечно же, виноваты админы, сеть, сервера и даже небо, и даже Аллах. Админов начали допрашивать, а пока шёл допрос, они успели уточнить у дата-центра, нет ли проблем. Дата-центр не подтвердил наличие проблем, наши мониторинг-тулы тоже не находили аномалий. Не было ни единого разрыва. Разработчики сразу припомнили админам все былые косяки. Была как-то проблема с прошивкой сетевой карты, и ответы nginx из ramfs занимали непристойно много. В тот раз админы не признавали наличие проблем до последнего, тоже винили разработчиков. Классика: админы винят девелоперов, а девелоперы винят админов. QA при этом винят всех, кроме себя.

Итого, работы разделены между разработчиками и админами, и все приступили к своей части.

Спустя некоторое время в логах consulбыли замечены проблемы с TCP-соединениями, которые произошли в то же время, что и обрывы.

Dec 28 15:08:34 vss-w-e-3 consul[22751]: memberlist: Failed TCP fallback ping: read tcp 10.2.0.229:39386->192.168.8.3:8301: i/o timeout

consulиспользуется в качестве service discovery всех сервисов системы. Тем не менее мы восприняли это как знак. Наша уверенность в инфраструктурной проблеме росла.

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

Таких мелких косяков множество, и они тормозят выяснение.

Помимо прочего, я себе взял пункт 9. Доля такая у CTO... вечно заниматься неформализованным хардкором в условиях неопределенности. В рамках этого пункта решено было начать с исследования потоков с ingest, а именно — видеочасти.

Неплохо было бы получить полный вывод по каждому фрейму видео и аудио: размер, дату, найти некоторые корреляции. Для анализа видео, как статического, так и live, есть замечательный инструмент ffprobe. Он позволяет в риалтайме получать информацию о потоке, информацию о фреймах, длительность фрейма, время по шкале encoder на стороне, отправляющей поток. 30 минут, и я написал скрипт на Node.js для контроля за ingest-серверами и логирования вывода ffprobeпо всем потокам на всех серверах.

Для соблюдения достоверности добавлю и саму команду:

ffprobe -i rtmp://host:port/path -show_frames

Но вывод покажет последовательность фреймов, а ещё интересно смотреть за временем, когда эти фреймы были получены процессом ffprobe. Так можно определить отставания и залипания. Для этих целей я прикрутил запись в лог-файл ffprobe с интервалом раз в 5 секунд временной метки.

Код написан и запущен, а я засел смотреть логи кибаны и график заббикса.

Через 40 минут были словлены фризы. Потирая руки, лезу анализировать вывод ffprobe.

[FRAME]
media_type=video
stream_index=0
key_frame=1
pkt_pts=117285
pkt_pts_time=117.285000
pkt_dts=117285
pkt_dts_time=117.285000
best_effort_timestamp=117285
best_effort_timestamp_time=117.285000
pkt_duration=33
pkt_duration_time=0.033000
pkt_pos=3406194
pkt_size=32358
width=854
height=480
pix_fmt=yuv420p
sample_aspect_ratio=1:1
pict_type=I
coded_picture_number=456
display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
[/FRAME]

[FRAME]
media_type=video
stream_index=0
key_frame=1
pkt_pts=127421
pkt_pts_time=127.421000
pkt_dts=127421
pkt_dts_time=127.421000
best_effort_timestamp=127421
best_effort_timestamp_time=127.421000
pkt_duration=33
pkt_duration_time=0.033000
pkt_pos=3440357
pkt_size=35030
width=854
height=480
pix_fmt=yuv420p
sample_aspect_ratio=1:1
pict_type=I
coded_picture_number=457
display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
[/FRAME]

На следующий день начал анализировать собранные логи. Для этого написал простенький скрипт, который вытаскивал pkt_dts_timeиз лога и агрегировал по 5-секундныминтервалам количество фреймов. Еще он считал количество фреймов в метках реального времени, которые я писал в файл. После построения gnuplot скриптомграфика стали видны дропы визуально.

PTS — presentation time stamp, DTS — decoding time stamp. В фрейме pkt_pts_time и pkt_dts_time будут отличаться только при наличии predictive (P) кадров. Так что для анализа можно взять DTS, и разница между pkt_dts_time у двух последовательных фреймов будет отображать время между энкодингом двух фреймов. Подробности тут.

Судя по графику, со стримами происходило чёрт знает что, FPS не выдерживался, вечно скакал, DTS (decoding time stamp) менялся паблишинг клиентом и перескакивал на несколько десятков секунд вперёд. По realtime-графику видно, что и Wowza отдавала фреймы для ffprobe с фризами. Сам график количества фреймов в realtime не показал ничего нового, ведь и так ловили эти проблемы на транскодерах. График количества фреймов в DTS timebase был довольно интересным. Так вести себя энкодер на стороне стримера может в том случае, если Wowza не читает входящий поток из сокета. В этом случае клиент просто пропускает фреймы и ждёт, пока буфер на стороне Wowza очистится.

Подозрение пало на Wowza.

Пора рассказать о Wowza. Это проприетарный софт с закрытым кодом и помесячной оплатой, крутыми возможностями за свои деньги. Пока ты реально не начинаешь пользоваться продуктом...

Идёт время, ты вляпываешься в проблемы и странное поведение, пишешь саппорту. Бравый саппорт отвечает через пару дней и запрашивает логи. Окей, высылаешь им логи. Ничего, что логи уже были приаттачены к тикету, конфигурация была описана — может, что пропустили. Ребята тупят ещё пару дней и запрашивают полныелоги. Ну ладно, хотите читать несколько гигабайтов логов с момента запуска? Пожалуйста. Проходит ещё пару дней, саппорт запрашивает еще логи. WTF? Какие ещё логи? Саппорт непреклонен: по вашим логам мы не можем понять проблему, дайте больше логов. Откуда ж их взять, если и так debug-режим включён? Пацанов это не волнует! «Дайте больше логов!» — наверняка так выглядит их корпоративный лозунг.

Один раз, на IBC в Амстердаме, мы познакомились с их топ-руководством и хотели помитинговать на их стенде, и таки решить с ними проблемы. От нашей идеи их Vice President of Engineering приуныл, но предложил бухнуть с ними, а проблемы пообещал порешать после IBC. Стоит ли уточнять, что в итоге они снова выпали на мороз?

Тем не менее надо решать проблему. Чтобы исключить Wowza, можно было бы поднять nginx с nginx-rtmp-module, а перед Wowza ingest поставить HAProxy/teeproxy/etc и дублировать трафик. Можно было бы дублировать трафик правилами iptables. Тогда можно было бы дублировать один и тот же поток на два разных приложения, принимающих RTMP, и смотреть разницу на них. Идея провалилась, так как у rtmpприсутствует handshake, и второй nginx с nginx-rtmp-module просто отвергнет соединение из-за кривых ответов на handshake.

Пока думали над возможностью таки распараллелить потоки, убрали проверку фризов с транскодеров. Проблему это не решило. Транскодер продолжал ждать, но и на origin не отправлял фреймы. Origin ждал несколько десятков секунд, и затем сам закрывал соединения с транскодером. Эти закрытия тоже детектились транскодером, и он завершался с сигналом SIGPIPE.

Тем временем начали обсуждать блокировки на стороне Wowza...

На нашей сборке Wowza присутствуют самописные модули для авторизации, контроля прав, уведомлений о подключениях, отключениях, allow lists и т. п. Wowza запускает множество тредов и слушает входящие RTMP-соединения. На серверах достаточно оперативной памяти и ядер, а нагрузка менее 10%. Так что перегрузы сразу исключили.

Но остались вопросы с модулями. В самописных модулях Wowza на Java в shared memory хранятся хэшмапы с информацией о стримах, о серверах для нотификаций. Получение IP-адресов, на которые требуется слать уведомление, происходит по интервалу (раз в 5 секунд), и результат пишется в shared memory. Для того чтобы безопасно читать и писать из shared memory, требуется ставить блокировки. В Java коде это решается либо явно, либо с использованием synchronized блоков. У нас использовался второй вариант, но сути это не меняет.

Потому возникло предположение, что Wowza где-то блокируется, то ли из-за нашего кривого кода, то ли из-за её кода. Проверить это можно, только подключившись к процессу strace’ом.

Strace — это довольно мощный инструмент для низкоуровневой отладки: он пишет системные вызовы, пишет аргументы, переданные функциям, возвращённые значения после выполнения функций, время выполнения функции, а также pid сабпроцесса/треда, в котором происходил вызов.

Админы сразу выполнили strace -c -f -p123. Аргумент -cуказывает считать количество времени, вызовов и ошибок в каждом из системных вызовов. Вывод на работающем ingest был таковым:

%  time seconds usecs/call calls errors syscall
   ------ ----------- ----------- --------- --------- ----------------
   98.27 164058.185756 129258 1269232 328380 futex
   0.96 1607.779169 10882 147742 epoll_wait
   0.26 437.918455 283 1546081 198 write
   0.20 339.308117 86119 3940 poll
   0.15 245.116958 247 991033 clock_gettime
   0.09 148.213531 3293634 45 41 restart_syscall
   0.05 89.647620 280 319628 144406 read
   0.00 4.673533 268 17416 lseek
   0.00 1.546572 239 6478 getrusage
   0.00 1.316333 243 5408 346 epoll_ctl

Выше уже упоминалось, что система была не особо нагружена, потому сразу же предположили, что странное творилось с Wowza, и множество потоков ожидали снятия блокировок. TL команды сразу начал заниматься кодом модулей Wowza в таком порядке:

  • статический анализ diff-кода до релиза и после;
  • добавить логирование входов/выходов в synchronized блоки в нагих модулях, проведённое время и количество претендентов заблокировать блок.

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

Следующая гипотеза — блокируются наши самописные модули Wowza.

Пока TL занимался Wowza модулями, я продолжил долбаться с straceи решил собрать лог всех вызовов и пытаться восстановить историю, хоть и с bird eye view.

Чтобы собрать всё, что мне было нужно, потребовалось запустить strace -t -T -f -p123, где

  • 123 — pid Wowza процесса;
  • -tдобавляет в начало строки дату и время, что нам крайне важно для сопоставления проблем;
  • -Tдобавляет время, затраченное на вызов, об этом отдельно ниже расскажу;
  • -fдобавляет pid child процесса в вывод, для мультипоточных приложений без этого флага никуда.

За 22 минуты с одного ingest собрали 5 Гб логов, промежуток с 2017-12-28 13:58по 2017-12-28 14:20.

Выглядят они примерно следующим образом:

26484 13:58:09 futex(0x7f4d7006ff38, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
26477 13:58:09 futex(0x7f4d70064904, FUTEX_WAIT_PRIVATE, 1432479, NULL <unfinished ...>
25693 13:58:09 futex(0x7f4d60445e18, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
25225 13:58:09 <... futex resumed> )    = -1 EAGAIN (Resource temporarily unavailable) <0.000164>
24755 13:58:09 <... futex resumed> )    = 0 <0.000165>
30942 13:58:09 read(125,  <unfinished ...>
20197 13:58:09 write(178, "\307", 1 <unfinished ...>
13033 13:58:09 epoll_ctl(132, EPOLL_CTL_MOD, 159, {EPOLLIN, {u32=159, u64=159}} <unfinished ...>
9900  13:58:09 write(145, "\307", 1 <unfinished ...>
14275 13:58:09 write(176, "\307", 1 <unfinished ...>
21229 13:58:09 <... write resumed> )    = 104 <0.000134>
26484 13:58:09 <... futex resumed> )    = 0 <0.000134>
25693 13:58:09 <... futex resumed> )    = 0 <0.000125>
25225 13:58:09 futex(0x7f4db0006e28, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
30942 13:58:09 <... read resumed> "\304\262-\244\324\327H\200\266\27#\27)\213\274\r\341\247,Z\373\227\334#-\242l\321\254b@\220"..., 65000) = 105 <0.000109>
20197 13:58:09 <... write resumed> )    = 1 <0.000115>
13033 13:58:09 <... epoll_ctl resumed> ) = 0 <0.000118>
21229 13:58:09 write(149, "G\0\0\37\0\4^\t", 8 <unfinished ...>
26484 13:58:09 futex(0x7f4d7007c834, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7f4d7007c830, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1} <unfinished ...>
25225 13:58:09 <... futex resumed> )    = 0 <0.000095>
30942 13:58:09 read(125,  <unfinished ...>
20197 13:58:09 write(178, "\343g\265c\177\232\365~\376\307w\337e\314(\227\33\251\357\363\327\372Z\374}\6\210~\344\34\246\263"..., 512 <unfinished ...>
13033 13:58:09 epoll_wait(132,  <unfinished ...>
9900  13:58:09 <... write resumed> )    = 1 <0.000277>

Разберём этот кусок построчно.

25693 13:58:09 futex(0x7f4d60445e18, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>

pid child процесса 25693, вероятно, это один из тредов Wowza. В 13:58:09был осуществлён системный вызов futex.

Futex — это механизм (и он же системный вызов) для возможности реализации синхронизации между потоками в user-space, с использованием shared memory ещё и между разными процессами. Правда, в этом случае придётся-таки выполнить операцию в kernel-space. Возможность синхронизации в user-space работает на порядок или даже два быстрее, чем при использовании логики в kernel-space.

Дело в том, что при синхронизации в user-space не требуется останавливать выполнение приложения и не нужно переключаться на выполнение кода ядра, что экономит много ресурса CPU. Системный вызов futexатомарно проверяет ячейку памяти на соответствие определённому значению и блокирует выполнение потока, в котором был запущен (вызов). Это важная часть работы с многопоточными приложениями, использующими доступ к разделяемым ресурсам из разных потоков. Без блокировок несколько потоков могут попытаться получить доступ к одному и тому же ресурсу, и всё может выполняться не так, как задумал программист. Знаете шутку: «I had a problem, so I decided to use threads. tNwoowp rIo bhlaevmes»?

Эволюция механизмов блокировок и их минусы/плюсы — обширная тема. Тем, кто заинтересовался, можно начать с перечня публикаций в этом ответе на Quora. В данной публикацииесть примеры кода для понимания логики работы futex. Нам же достаточно фактов, что futexбез таймаута может неограниченно долго блокировать другие потоки, вызывая деградацию. А еще в случае краха треда, который ставил блокировку, могут не сняться локи в остальных потоках (зависит от реализации, а она у нас black box).

Интерфейс системного вызова таков:

int futex(int *uaddr, int op, int val, const struct timespec *timeout, int *uaddr2, int val3);

Первый аргумент uaddr (значение uaddr === 0x7f4d60445e18) может пригодиться, если несколько потоков с разными pidпопытаются поставить блокировку с тем же адресом. В этом случае по uaddrможно найти тред, который успешно поставил блокировку, и выяснить, почему он долго её не снимал. uaddrявляется указателем на область памяти.

Вызов futexбыл осуществлён с аргументом FUTEX_WAIT_PRIVATE, и это указывает системному вызову, что требуется сравнить значение по адресу uaddr с третьим аргументом (в нашем случае это 1) и заблокироваться (возможно, с таймаутом, но вызов был без таймаута).

Первая строчка файла — это pid child процесса. Как видно из лога, результат этого вызова находится несколькими строчками ниже, с тем же pid:

25693 13:58:09 <... futex resumed> )    = 0 <0.000125>

Результат выполнения 0, и это означает, что блокировка снята (для операции FUTEX_WAIT_PRIVATE).

Операции чтения и записи (readи write) работают с файловыми дескрипторами, и без контекста сложно понять, с чем связан дескриптор. Но до чтения или записи должен открыться либо файл, либо сокет, так что стоит искать другие системные вызовы по этому файловому дескриптору и идентифицировать, что же это за файл. Хорошо, что readвозвращает количество прочитанных байтов, что полезно для анализа. А по логу вызова writeможно увидеть желаемое количество байтов для отправки и фактическое значение. Для гадания на кофейной гуще подойдёт!

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

На помощь мне пришла смекалка. Протокол rtmpреализовывает RPC, можно начать искать по командам. Нас интересует паблишинг стрима на Wowza, а согласно rtmpдля начала паблишинга требуется вызов команды createStream.

The client sends this command to the server to create a logical channel for message communication. The publishing of audio, video, and metadata is carried out over stream channel created using the createStream command. The command structure from the client to the server is as follows:

+--------------+----------+----------------------------------------+
 | Field Name   | Type     | Description                            |
 +--------------+----------+----------------------------------------+
 | Command Name | String   | Name of the command. Set to            |
 |              |          | "createStream".                        |
 +--------------+----------+----------------------------------------+
 | Transaction  | Number   | Transaction ID of the command.         |
 | ID           |          |                                        |
 +--------------+----------+----------------------------------------+
 | Command      | Object   | If there exists any command info this  |
 | Object       |          | is set, else this is set to null type. |
 +--------------+----------+----------------------------------------+

Клиент plain text’ом будет слать createStream, и он будет находиться в начале пакета. Если мне повезёт, то createStreamбудет находиться в первых десятках байтов, и эта строка попадет в strace. В противном случае пришлось бы искать по другим заголовкам, и было бы сложнее.

$ grep -n "createStream" strace_wowza_p5_13-58_14-20
7557250:20197 14:00:47 <... read resumed> "C\0\1\33\0\0\32\21\0\2\0\fcreateStream\0@\0\0\0\0\0\0"..., 65000) = 34 <0.000159>
17282898:20197 14:04:16 <... read resumed> "C\0\3\36\0\0\32\21\0\2\0\fcreateStream\0@\0\0\0\0\0\0"..., 65000) = 34 <0.000099>
22014818:21229 14:06:01 <... read resumed> "C\0\2]\0\0\32\21\0\2\0\fcreateStream\0@\0\0\0\0\0\0"..., 65000) = 34 <0.000114>
30542512:20197 14:09:07 <... read resumed> "C\0\3\36\0\0\32\21\0\2\0\fcreateStream\0@\0\0\0\0\0\0"..., 65000) = 34 <0.000100>
31817555:14275 14:09:36 <... read resumed> "\3\0\0\334\0\0\32\21\0\0\0\0\0\2\0\fcreateStream\0@\0\0"..., 65000) = 38 <0.000143>
32871539:9900  14:09:59 <... read resumed> "\3\0\2J\0\0\32\21\0\0\0\0\0\2\0\fcreateStream\0@\0\0"..., 65000) = 38 <0.000078>
46524834:21229 14:14:57 <... read resumed> "\3\0\2%\0\0\32\21\0\0\0\0\0\2\0\fcreateStream\0@\0\0"..., 65000) = 38 <0.000141>
46607865:30942 14:14:59 <... read resumed> "C\0\2f\0\0\32\21\0\2\0\fcreateStream\0@\0\0\0\0\0\0"..., 65000) = 34 <0.000132>
48653251:21229 14:15:42 <... read resumed> "\3\0\1\r\0\0\32\21\0\0\0\0\0\2\0\fcreateStream\0@\0\0"..., 65000) = 38 <0.000186>

Бинго! Есть подключения. Интересно, что в треде с pid === 20197 аж 3 стрима нашлось. Теперь на помощь придут логи кибаны. По ним стоит поискать начало операции стриминга и сопоставить, были ли в период наблюдения за Wowza фризы.

Стримы нашлись:

a144380f9dd83643c756884ca1d55150:
2017-12-28 14:04:17    published               vss-w-p-5
2017-12-28 14:17:28    SIGPIPE from origin
2017-12-28 14:23:20    unpublished             vss-w-p-5

5773e9ab70202cbb98868e477aff0d1a:
2017-12-28 14:06:01    published               vss-w-p-5
2017-12-28 14:07:48    freeze on transcoder    vss-crabscoder-8
2017-12-28 14:09:56    unpublished             vss-w-p-5

e8024496a02282138285b6f2460e5bdc:
2017-12-28 14:11:25    published               vss-w-p-5
2017-12-28 14:17:40    SIGPIPE from origin
2017-12-28 14:41:19    unpublished             vss-w-p-5

4852e7d0125ab780057742a78edae88d:
2017-12-28 14:14:58    published               vss-w-p-5
2017-12-28 14:17:21    SIGPIPE from origin
2017-12-28 14:24:52    unpublished             vss-w-p-5

4a8a32f1ea637df5c1900e5c0c2fb407:
2017-12-28 14:15:00    published               vss-w-p-5
2017-12-28 14:17:21    SIGPIPE from origin
2017-12-28 14:23:34    unpublished             vss-w-p-5

Поработаем с тредом с pid === 20197, в котором происходило чтение сразу двух проблемных стримов. Отсекаем лишние данные и грепаем только по этому pid.

$ grep '^20197' strace_wowza_p5_13-58_14-20 > strace_p5_20197

Результирующий файл получился немаленьким — 368 Мб. Теперь поищем дескриптор.

$ grep 'createStream' -C 2 strace_p5_20197
--
20197 14:04:16 <... epoll_wait resumed> \{\{EPOLLIN, {u32=99, u64=13110842216018870371}\}\}, 8192, 500) = 1 <0.011427>
20197 14:04:16 read(99,  <unfinished ...>
20197 14:04:16 <... read resumed> "C\0\3\36\0\0\32\21\0\2\0\fcreateStream\0@\0\0\0\0\0\0"..., 65000) = 34 <0.000099>
20197 14:04:16 read(99,  <unfinished ...>
20197 14:04:16 <... read resumed> 0x7f4dc01b4170, 64966) = -1 EAGAIN (Resource temporarily unavailable) <0.001609>
--

Искомый дескриптор 99.

Посмотрим, сколько было чтений по этому дескриптору. Подготовим данные для gnuplot в виде времени (посекундная агрегация) и количества вызовов read за эту секунду.

$ grep 'read(99,' strace_p5_20197 | cut -f2 -d' ' | uniq -c | awk '{$1=$1};1' > data.txt

Построил график, и получилось следующее...

Странно, количество чтений упало, но они не пропали полностью. Приблизив график, в 14:16:35 — 14:16:45 видим проблемы.

По прямой линии между точками делаю вывод, что чтений не было в этом интервале. Если не было чтений, то и не было записей потребителям, например, тому же транскодеру. Тем не менее решил проверить распределение read и write по всему треду.

График странный. Количество чтений могло упасть из-за отключения стримеров. Тред перестал бы их процессить, и при следующем подключении чтение сокетов могло попасть в другой тред. Но странным показалось то, что при падении операций чтения на порядок операции записи даже подросли, и разброс вызовов снизился: чем больше чтений, тем больше колебаний по оси Y на графике между соседними временными интервалами.

Далее grep, sed и awk меня не хватило. Да чего там греха таить, всей душой ненавижу sed и awk с их отвратительным синтаксисом. Настало время пописать ещё немного на JS. Я накидал код, который парсит весь лог strace для треда и для каждого файлового дескриптора считает количество чтений, записей, количество записанных и прочитанных байтов. Код на GitHub, там же пример скрипта для gnuplot для построения.

На первом графике — суммарное время выполнения read/write вызова для конкретного файлового дескриптора, просуммированное за интервал в 1 секунду. На втором графике отображена сумма прочитанных байтов за интервал в 1 секунду для каждого файлового дескриптора.

Дескрипторы, не связанные с RTMP потоками, я исключил. Туда попали всякие пинги наличия потока и т. д. Они не влияют существенно на общую картину.

Всплески exec time для read на fd=99 до 18 мс коррелируют с интенсивным чтением. Прочитал этот fd в ту секунду 380 Кб. 18 мс на 380 Кб. Не фонтан, конечно, но и не очень плачевно. По крайней мере, явно не в чтениях дело.

А что с записями?

Воу-воу! Это что, для fd=165 требовалось больше 200 мс каждую секунду с 14:10:00 для того, чтобы отправлять по 300 Кб? Остальные не лучше. По графику хорошо видно, что подключение новых слушателей (тех, кому write вызовы шлют контент) вызывает деградацию у остальных вызовов write? А отключение, как было после 14:02:00, уменьшает тайминг?

Тогда можно предположить, что из-за медленного write не успевают в рамках треда отправляться данные во все сокеты. А Wowza ещё и читает контент...

К этому моменту TL дописал код Wowza модулей и поставил логирование всего, что только возможно, в местах, где есть synchronized блоки и прочие блокировки. Блокировки в модулях не были обнаружены.

Два независимых подтверждения, что не в блокировках дело. Нужно разбираться, что происходит с ОС.

Следующая гипотеза — кривая настройка ОС.

Сразу скажу, что у нас железо всё своё. Никакие клауды не дадут такого контроля и стоимости, потому только bare metal, только хардкор.

Начинаем перебирать всё, что может влиять на работоспособность системы:

  1. Тюнинг TCP стека. Хорошие материалы по этой теме — раз, два. Замеры в одной из статейсвидетельствуют, что тюнинг может дать улучшение результатов замеров в 4-5 раз.
  2. Interrupts (hardware interrupts and software interrupts). Возможно, NIC TX/RX буфер переполняется, и происходит повторная доставка.
  3. Наблюдение за переполнениями буферов NIC, ethtoolи т. д.
  4. Huge pages — по умолчанию CentOS аллоцирует память блоками по 4K. Если включить Huge Pages, то эффективность повысится. Были выключены вовсе.

С тюнингом TCP сделали всё что можно, подняли буфера до рекомендуемых значений, провели теоретический расчёт даже. Да и всю ОС пересмотрели по критичным настройкам. Рекомендую к прочтению статью от RedHat про тюнинги настройки для раздачи видео от знакомого проекта.

Нашли ненастроенные куски, например, лимит на открытые файлы, установленный в дефолтные 1024. Результата значительного это не дало, потом перешли к тюнингу CPU affinity, буферам NIC и т. п.

Отдельно поверхностно пройдёмся по interrupts, буферам NIC (network interface controller) и процессу доставки данных от NIC до приложения.
Сетевая карта (NIC) обладает микропроцессором и может использовать либо интегрированную память для буферов, либо RAM системы.

Большинство интегрированных карт дешевле сотен долларов используют RAM и аллоцируют память прямо в RAM. Наши карты входят в число таких, потому в тексте далее исходим из того, что речь идёт о NIC без собственной памяти. При регистрации драйвера NIC выделяется память под буферы на отправку (TX ring buffer) и получение данных (RX ring buffer).

Количество буферов задаётся настройками, может тюниться, а современные карты поддерживают сотни и тысячи таких буферов. Важно понимать, что буфера кольцевые. Если один буфер имеет размер в 200 байт, и данные из буфера не прочитаны и не обработаны, то следующая порция данных перетрёт «самые старые» данные в буфере. Таким образом, если не вычитываются данные из буфера NIC, то они будут вытеснены, и, как следствие, неприятное поведение гарантировано.

У большинства компонентов компьютеров есть сигнальные протоколы, и NIC не исключение. Когда NIC фиксирует получение данных и записывает в RX buffer эти данные, то NIC должен уведомить ядро о поступлении новых данных. Для этого и используются IRQ (Interrupt ReQuest). NIC шлёт IRQ, CPU обрабатывает этот IRQ и вызывает код, который вычитает данные из RX buffer и передаст дальше на обработку. Дальше пакеты пройдут уже не через код драйверов, а через network подсистемы ядра, правильно разобьются по протоколам, будет определено приложение-получатель, и уже в буфера сокетов будут доставлены данные. Приложению останется прочесть данные из этого сокета.

Вернёмся на шаг назад. Как NIC запишет данные в буфер в RAM? Ещё лет 10 назад NIC требовалось иметь собственную память и по запросу ядра отдавать данные, находящиеся в ней. Сейчас везде используется DMA (Direct Memory Access) — технология, которая позволяет делать прямые обращения к выделенной области RAM непосредственно со сторонних устройств, минуя CPU, системные вызовы и т. д. Доступ к этим участкам памяти есть и у CPU, и, как следствие, у ядра. Потому время между получением данных NIC, записью в RAM и получением этих данных ядром уменьшилось, что положительно сказалось на производительности. Резюмирую: NIC пишут данные в RAM посредством DMA, а затем NIC генерирует IRQ-сигнал, чтобы ядро могло обработать эти данные.

IRQ, о которых шла речь выше, являются hardware interrupts и вынуждают CPU останавливать выполнение кода и переключаться на обработку прерывания. Когда в системе много трафика, то NIC будет тысячи раз в секунду генерировать IRQ и вынуждать process switching, тяжелую операцию. Потому появилось улучшение, был придуман механизм softIRQ и включён в ядра ОС, а для драйверов NIC был разработан NAPI-механизм.

Драйвера, которые поддерживают NAPI, теперь могут предоставить poll-функцию, которую будет использовать ядро для опроса буферов. Ядро же регистрирует эти poll-функции и запускает их в отдельных тредах. Они видны в topкак ksoftirqd. Когда прилетает самый первый пакет устройству с NAPI и SoftIRQ поддержкой, NIC пошлёт IRQ. IRQ вызовет обработчик, который включит механизм polling. Как только он включён, тредыksoftirqdбудут с определённой частотой опрашивать буфера и при необходимости запускать обработку пакетов, находящихся в них. При этом пока происходит polling, отключается обработка IRQ. Такой подход позволяет существенно экономить ресурсы и не допускать переключений контекста. Если пакетов станет критически мало, то CPU будет зря пытаться проверять наличие данных и зря тратить процессорное время. Чтобы и тут сэкономить, происходит отключение polling и включение штатных IRQ. Когда поток пакетов станет высоким, снова произойдёт включение polling.

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

Если тема с IRQ, SoftIRQ и поведением ядер в real-time системах заинтересовала, то рекомендую просто отменный цикл публикацийдля детализации того, что происходит под капотом ядра и драйверов NIC, а ещё обзорные презентации номер 1 и номер 2.

Фух, теоретическая часть закончена, опустимся на землю.

Решение

Тулзой ethtoolможно посмотреть настройки NIC, версию драйвера и понаблюдать за статистикой.

# ethtool -i eth1

driver: tg3
version: 3.137
firmware-version: FFV7.8.16 bc 5720-v1.32

# ethtool -g eth1

Ring parameters for eth1:
Pre-set maximums:
RX: 2047
RX Mini: 0
RX Jumbo: 0
TX: 511
Current hardware settings:
RX: 200
RX Mini: 0
RX Jumbo: 0
TX: 511

В выводе выше видно, что драйвер tg3, а карточка в сервере Broadcom 5720 1Gb. Смутил размер RX буфера, что равен 200 байтам. Как-то чертовски мало, потюнили и это. TX буфера тоже малы. Самое печальное, что для TX максимальное значение равно 511, и оно не меняется без пересборки драйвера из исходников.

Масла в огонь подливала статистика, хотелось бы видеть 0...

25673 packets pruned from receive queue because of socket buffer overrun
173905 packets collapsed in receive queue due to low socket buffer

Для оценки производительности сети и TCP стека существует много инструментов. Самый известный, пожалуй, — iperf.

Он позволяет замерять пропускную способность между двумя хостами в сети, имеет множество настроек. Вывод примерно таков:

>iperf3 -c hostname -u -b9G -w2m -i2
[ ID] Interval Transfer Bandwidth Total Datagrams
[ 4] 0.00-2.00 sec 2.07 GBytes 8.91 Gbits/sec 248878
[ 4] 2.00-4.00 sec 2.08 GBytes 8.91 Gbits/sec 249020
[ 4] 4.00-6.00 sec 2.11 GBytes 9.07 Gbits/sec 253434
[ 4] 6.00-8.00 sec 2.11 GBytes 9.08 Gbits/sec 253730
[ 4] 8.00-10.00 sec 2.03 GBytes 8.73 Gbits/sec 244013
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-10.00 sec 10.4 GBytes 8.94 Gbits/sec 0.008 ms 0/1248863 (0%)
[ 4] Sent 1248863 datagrams

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

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

С perfсразу же столкнулись с потоком проблем:

1) Отсутствие поддержки в ядрах OpenVZ 2.6.32, которые мы использовали в продакшне для виртуализации debuffs.

Окей, ищем опцию, включающую debuffs, она была найдена в vzkernel-debug ядре.

2) Места в / не хватило на железках, чтобы поставить vzkernel-debug.

Окей, расширяем место, админы шаманят.

3) Место есть, ядро поставлено, но даже с perf_event_paranoidнельзя запустить в контейнере.

Окей, ставим руками Wowza на хардноду и пытаемся запустить.

4) Не заводится, не видит доступных для наблюдения функций.

Окей, пересобираем ядро и путём проб и ошибок находим весь пул настроек, которые ему нужны. Вот он:

CONFIG_FRAME_POINTER = and
CONFIG_BOOT_PRINTK_DELAY = and
CONFIG_FAULT_INJECTION = and
CONFIG_FAILSLAB = y

Мои нервы закончились на шаге 2, и пока админы сражались с проблемами, я поднял на AWS EC2 два dedicated сервера в одном и том же az для своих экспериментов, ведь опыта с perf у нас не было.

Главным источником информации в Сети по perf является Brendan Gregg, и в блоге у него ценнейшая база знаний. Вооружившись статьей Netflixо профайлинге с помощью perf-приложений на Java, начал разбираться с Wowza на EC2.

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

Стоит ли говорить, что инструменты вокруг perf и дальше продолжали падать? Я уже смирился, что череда сложностей и неудач преследует нас. Надо было освятить сервера, что ли.

# /root/perf-map-agent/bin/perf-java-top 11139
perf: Segmentation fault
-------- backtrace --------
perf[0x4ee551]
/lib64/libc.so.6(+0x32510)[0x7f339968c510]
perf[0x433e7a]
perf(cmd_top+0x101e)[0x434fde]
perf[0x467503]
perf(main+0x649)[0x468279]
/lib64/libc.so.6(__libc_start_main+0xfd)[0x7f3399678d1d]
perf[0x41b839]

Когда свершилось чудо, и perfсобрал статистику по одному из проблемных ingest-серверов, мы увидели следующее.

Картина по всем процессам:

Картина по самому потребляющему ресурсы Java-процессу:

На графике видны вызовы функций драйвера NIC (tg3). Например, функция отправки tg3_start_xmit. Внимание привлёк вызов debug_dma_map_page, сделанный из tg3_start_xmit. Судя по потреблению, больше всего отъела эта ветка выполнения. Внутри ещё видны save_stack_trace, print_context_stackи так далее. Мы не то, чтобы мы знали код драйверов, которые используем, но ничего не оставалось, как закатать рукава и окунуть руки в драйвера tg3.

А как дела на AWS EC2 серверах? Чтобы иметь эталон для сравнения, были подняты сервера с хорошей сетевой производительностью, поднята Wowza, а трафик отправлен на этот сервер. Под нагрузкой сняты показатели perf.

Как видно, никаких проблем не наблюдается. Дополнительных тяжёлых вызовов внутри xennet_start_xmitнет (xennet — это paravirtualized network interface для гипервизора Xen, виртуальные машины в EC2 на базе Xen работают). Кстати, на EC2 танцев с бубном не потребовалось, perfзавёлся сразу.

Надо копать под драйвер. Код драйвера находится в ядре; подобрав версию vzkernel, которая была у нас, приступил к анализу.

В драйверах возле кода tg3_start_xmitбыли найдены комментарии:

/* The EPB bridge inside 5714, 5715, and 5780 and any
	 * device behind the EPB cannot support DMA addresses > 40-bit.
	 * On 64-bit systems with IOMMU, use 40-bit dma_mask.
	 * On 64-bit systems without IOMMU, use 64-bit dma_mask and
	 * do DMA address check in tg3_start_xmit().
	 */

...

	/* Need to make the tx_cons update visible to tg3_start_xmit()
	 * before checking for netif_queue_stopped().  Without the
	 * memory barrier, there is a small possibility that tg3_start_xmit()
	 * will miss it and cause the queue to be stopped forever.
	 */

Дальнейший разбор дал следующее:

  • tg3 драйвер при проблемах с DMA (direct memory access) не пишет сообщений никуда, не инкрементит счётчики ошибок. Молча игнорирует.
  • В данных perfмного времени уходило на debug_dma_map_pageи работу с некими ошибками DMA.
  • При ошибках DMA-пакеты могут приходить битыми, теряться.
  • Поддержка DMA debugпоявилась в ядре Linux 3.9.
  • Даже у голого Centos 7 (а мы жили на Centos 6 based ядре) не весь debug функционал портирован.
  • Но в Centos 7 есть драйвера, которые не игнорируют ошибки DMA.
  • Читать исходники ядра для неподготовленного человека психологически сложно.

Обладая этим набором данных, мы решили подобрать NIC исходя из наличия трекинга ошибок DMA. Sic! Такими драйверами были ixgbи ixgbe, Intel карточки на 10G. С включённым дебагом они будут писать инфо в /sys/kernel/debug/ixgbили /sys/kernel/debug/ixgbe. При невозможности замапить регион под TX buffer будет осуществлена запись в dmesg: «TX DMA map failed». ethtool -c же будет выводить статистику rx_page_failedи tx_page_failed. Хоть что-то.

По стечению обстоятельств, карточка Intel X540-T2 была на складе у дата-центра, и драйвера подходили. Оставалось её оперативно установить, накатить новое ядро Linux и продолжить эксперименты. Первая хорошая новость? Пфф, сейчас. Дата-центр профакапил и установил карту Intel I350-T2. Пришлось её менять. Потом DRAC (baseboard management controller от Dell) не завёлся, и пришлось разбираться, что не так насетапали. В моей истории хороших новостей не бывает!

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

Настройки пободрее у X540:

[root@stream5.am ~]# ethtool -g eth0
Ring parameters for eth0:
Pre-set maximums:
RX: 4096
RX Mini: 0
RX Jumbo: 0
TX: 4096

Current hardware settings:
RX: 2048
RX Mini: 0
RX Jumbo: 0
TX: 512

На первый взгляд, срез по всем процессам выглядит так же. Если копнуть под самый тяжелый Java-процесс, то увидим:

Внешне отличия заметны. Я уже откупорил шампанское, проблема решена! Через несколько часов снова начали наблюдаться фризы.

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

Для наших экспериментов использовался sockperf. Компания, которая его разрабатывает, — известный игрок на рынке low latency NIC, и свои инструменты они приспособили для расширенного анализа. Главный плюс, что с sockperfможно задать параметры для теста в точности, как у Wowza: TCP_NODELAY, epoll_wait таймаут, писать данные по N байт.

TCP_NODELAY выключает алгоритм Нейгла. Если этот алгоритм включён, то возможно увеличение latency.

А подолбаться с установкой того же sockperfтоже пришлось. В Epel бажная версия, необходимо было пересобирать руками. Это всё время, которого нет.

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

[root@stream5.am ~]# echo "T:10.2.1.152:11110" > s.list

[root@stream5.am ~]# sockperf ping-pong -f s.list -F e -t 10 --timeout 1 -m 512 --tcp-avoid-nodelay --nonblocked --tcp-skip-blocking-send --mps 10000

sockperf: == version # ==
sockperf[CLIENT] send on:sockperf: using epoll() to block on socket(s)
[ 0] IP = 10.2.1.152 PORT = 11110 # TCP
sockperf: Warmup stage (sending a few dummy messages)...

sockperf: Starting test...
sockperf: Test end (interrupted by timer)
sockperf: Test ended

sockperf: [Total Run] RunTime=10.450 sec; SentMessages=59403; ReceivedMessages=59402
sockperf: ========= Printing statistics for Server No: 0
sockperf: [Valid Duration] RunTime=10.000 sec; SentMessages=56984; ReceivedMessages=56984

sockperf: ====> avg-lat= 87.675 (std-dev=20.998)
sockperf: # dropped messages = 0; # duplicated messages = 0; # out-of-order messages = 0
sockperf: Summary: Latency is 87.675 usec
sockperf: Total 56984 observations; each percentile contains 569.84 observations
sockperf: ---> observation = 2431.621
sockperf: ---> percentile 99.999 = 1964.399
sockperf: ---> percentile 99.990 = 903.950
sockperf: ---> percentile 99.900 = 171.824
sockperf: ---> percentile 99.000 = 117.329
sockperf: ---> percentile 90.000 = 100.605
sockperf: ---> percentile 75.000 = 91.773
sockperf: ---> percentile 50.000 = 85.400
sockperf: ---> percentile 25.000 = 79.114
sockperf: ---> observation = 74.393

[root@stream5.am ~]# sockperf ping-pong -f s.list -F e -t 10 --timeout 1 -m 14 --tcp-avoid-nodelay --nonblocked --tcp-skip-blocking-send --mps 10000

sockperf: == version # ==
sockperf[CLIENT] send on:sockperf: using epoll() to block on socket(s)
[ 0] IP = 10.2.1.152 PORT = 11110 # TCP
sockperf: Warmup stage (sending a few dummy messages)...
sockperf: Starting test...
sockperf: Test end (interrupted by timer)
sockperf: Test ended
sockperf: [Total Run] RunTime=10.450 sec; SentMessages=69431; ReceivedMessages=69430
sockperf: ========= Printing statistics for Server No: 0
sockperf: [Valid Duration] RunTime=10.000 sec; SentMessages=66536; ReceivedMessages=66536
sockperf: ====> avg-lat= 75.076 (std-dev=20.043)
sockperf: # dropped messages = 0; # duplicated messages = 0; # out-of-order messages = 0
sockperf: Summary: Latency is 75.076 usec
sockperf: Total 66536 observations; each percentile contains 665.36 observations
sockperf: ---> observation = 1521.846
sockperf: ---> percentile 99.999 = 1450.021
sockperf: ---> percentile 99.990 = 914.075
sockperf: ---> percentile 99.900 = 223.133
sockperf: ---> percentile 99.000 = 100.173
sockperf: ---> percentile 90.000 = 84.808
sockperf: ---> percentile 75.000 = 80.184
sockperf: ---> percentile 50.000 = 70.178
sockperf: ---> percentile 25.000 = 68.719
sockperf: ---> observation = 66.878

Первый тест отправлял пакеты по 512 байт, а второй по 14 байт. Настройки были взяты из поведения реального приложения — то, что замеряли еще strace. Результат средней задержки — 87.675 usecи 75.076 usecсоответственно.

Порывшись в интернете, обнаружил результаты замеров на EC2 инстансы, которые плюс-минус соответствуют результатам, полученным на Intel X540-T2 и Centos 7.

Фризы есть, но проблема не в сети. Проблема с Centos 6 и Broadcom 5720 явно была, её устранили, но это не помогло глобально.

Следующая гипотеза? Нет гипотезы! Мы все умрём!

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

Пока экспериментаторы выдвигали и опровергали гипотезы, был доработан наш супермодуль на Node.js video-quality-tools, доступный на GitHub.

Задача video-quality-toolsзаключалась в real-time мониторинге за видеопотоком, анализе технических характеристик: FPS, bitrate. Модуль позволяет контролировать частоту создания кадров на стороне стримера (иначе говоря, на encoder), замерять фактические значения после получения по сети. С помощью такой механики можно понять, где деградация сети, а где деградация на стороне пользователя, например, CPU перегружен у пользователя.

Модуль был успешно использован, была поднята Grafana с InfluxDB, и начался сбор метрик с ingest-серверов в разрезе каждого потока на ingest. Это куда удобнее, чем использовать gnuplot, к тому же полный real-time и возможность моментально реагировать.

Grafana начала показывать FPS (frames per seconds), как они получались модулем (не на энкодере).

С учетом одного ingest на Centos 7 с новой картой появилась возможность сравнить один и тот же поток, кодируемый одним и тем же оборудованием, из той же локации, но на двух разных версиях ядра и сетевых карт.

Centos 7 вёл себя однозначно лучше: нет просадок FPS в 0, не было резких скачков FPS вверх. Затем был словлен фриз на Centos 7.

Флажком отмечен момент, когда на транскодере снова был замечен фриз. Только вот он не совпадает с моментом просадки FPS, как считали ранее. Why?

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

Но, судя по Kibana, эпизодический характер разрывов присутствует. Самое интересное, что он как внезапно начинается, так внезапно и заканчивается.

Продолжаются эксперименты с ядрами, дебаг и не дебаг, vzkernel и голое ядро, танцы, пляски, веселье...

Зашли в тупик. Остаётся сделать шаг назад.

Всё началось с замеченных фризов и дропов потоков по SIGPIPE на стороне транскодера. Принято решение сделать шаг назад и вернуться к наблюдению самого транскодера. Транскодер работает на основе кодовой базы x264 и FFmpeg, потому:

  • начинаем перехватывать трафик на транскодере (pcap) для дальнейшего анализа;
  • раскручиваем debug level FFmpeg на маниакальный режим;
  • релизим новый транскодер и начинаем ждать.

Внезапно, Chief Admin за какой-то надобностью начал по HTTP дергать Wowza на origin слое и удивился задержке ответа.

[root@w-o-8.am /]# time curl vss-w-o-3:1935
real 0m0.109s
user 0m0.003s
sys 0m0.001s

[root@w-o-8.am /]# time curl vss-w-o-3:1935
real 0m7.008s
user 0m0.003s
sys 0m0.001s

Сперва 100 мс, а затем 7 секунд. Были замечены фризы, и можно было анализировать логи с транскодеров.

Parsed protocol: 0
Parsed host : 10.2.1.174
Parsed app : origin
RTMP_Connect0, failed to connect socket. 4 (Interrupted system call)
rtmp://10.2.1.174/origin/117687be99efe796800e098e36b79f7e_bc2_hd: Unknown error occurred
[AVIOContext @ 0x18d9cc0] Statistics: 152844 bytes read, 0 seeks
RTMP_SendPacket: fd=5, size=34
Invoking deleteStream
Exiting normally, received signal 15.

video-quality-toolsбыл прикручен в origin, и стал виден настоящий треш.

Чёрт, это же обрывы на стороне origin! Пазл моментально сложился:

  • стало понятно, почему на графиках обрыв произошёл раньше, чем поток деградировал на ingest;
  • SIGPIPE на транскодере возникали из-за origin;
  • стало понятно, почему тюнинг Centos 7 не принес результата.

Переключив внимание на origin, попытались снять информацию strace, ведь perfтребовал пересборки ядра и вынесения экспериментов на хардноду с виртуалки. straceнам не помог, ибо в моменты его запуска деградация начиналась моментально: слишком большой негативный impact давал сам strace.

Вот как проявлялось включение strace:

Вся надежда оставалась на VisualVM. С его помощью можно профилировать Java-приложения. Чтобы профайлер подключился, требуется немного перенастроить Wowza, подключиться к ней профайлером и работать... работать...

Отмечу, что одним из первых шагов при поиске проблемы на ingest был запуск VisualVM. Ничего аномального не увидели и перешли к следующим шагам. Но на origin всё было иначе.

Видно, что с момента старта origin прошло всего 25 минут, но всё время плавала CPU утилизация и heap рос. В определённый момент он доходил до трешхолда, и включался GC (garbage collector). Пока GC буйствовал, происходил stop the world, и всё замирало. Вот где была причина!

Мы использовали Wowza в продакшне несколько лет до этого, проводили нагрузочные тесты и получали нормальные результаты. Некоторые тесты днями гонялись на ней. Такого поведения ранее замечено не было. GC до этого не останавливал выполнение так часто, память так быстро не росла. Что-то не так с origin.

У Wowza реализованы MBeans, потому, наблюдая за разными переменными, установили причину роста потребления памяти.

Этой причиной оказались RTMP соединения от edge-серверов. При этом edge и origin были построены на базе Wowza!

На изображении выше виден монотонный прирост RTMP-соединений. Иногда за минуту могло прирасти 50 новых соединений, и они сразу же закрывались. Но иногда Wowza-edge-сервера сходили с ума и Wowza начинала генерировать тысячи RTMP-соединений на origin. Системы в этом особой не было.

С помощью tcpdumpбыло установлено, что Wowza-edge пытался в цикле подключиться на origin, чтобы получить поток, которого уже на origin нет. Бизнес-логика заставляла забывать о таких потоках и не пытаться подключиться, но Wowza игнорировала это, и всё равно подключалась и подключалась. Origin, который принимал на себя удар, устанавливал соединения, обрабатывал запросы и отвечал, что потока нет, закрывая соединение... и сразу же ловил тысячи новых таких же запросов.

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

Посовещавшись, как действовать далее, учитывая прошлый опыт общения с саппортом и поиски проблем, мы решили:

  • написать чудо-скрипт, выводящий на maintenance edge-сервера с определённым интервалом;
  • попробовать связаться с поддержкой Wowza;
  • начать переписывать оставшуюся часть инфраструктуры.

Выбор для быстрого кандидата пал на nginx-rtmp-module. Это далеко не идеальный кандидат для замены, модуль плохо работает с многопоточностью и лимитирует как объёмы трафика, так и количество потоков, но это лучше, чем ничего.

В бешеном темпе на изнеможение работали последний месяц для поиска проблемы, потому и переписывать три слоя системы пришлось тоже быстро и ударными темпами. Помогал тому выброс гормонов, и хотелось добить задачу. Решили сделать хакатон. Повод был и ранее, был неразрешённый вопрос в споре между стеком Node.js и Golang. Дедлайн был установлен через 168 часов, ровно через 7 дней. Забегая вперед, скажу, что выиграл Node.js, но это уже другая история. Важно, что через неделю в продакшне уже крутился новый origin-слой, без фризов и дропов потоков.

Забегая еще дальше, отмечу, что проблема была всё время с момента существования Wowza, но не имела такого выраженного эффекта. Как раз релиз в конце 2017 года позволил повысить качество остальных компонентов и сделать эту проблему заметной. Тот же video-quality-toolsстал для нас лучшим индикатором происходящего в инфраструктуре.

Ретроспектива

Какие же можно сделать выводы из этой истории, сумасшедшей гонки на 40 дней?

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

1. Готовить инструменты для поиска проблем заранее

У нас не было поддержки perf на системе, не было опыта с perf в принципе и с strace на продакшне. Следовательно, не было представления, в какой мере straceоказывает негативное влияние. Flame Graphs не использовали прежде.

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

Хоть и было множество метрик в Zabbix, Grafana и Kibana, но их оказалось мало. Они все давали возможность наблюдать за системой с bird eye view, но самое главное для нас (качество потока) мы начали замерять одновременно с релизом. Потому мы даже не имели представления, как выглядело качество потоков до включения video-quality-tools. Не с чем было сравнивать, потому, увидев плохие графики, решили, что виноват не тот слой.

3. Я забрался слишком глубоко, дойдя до кода драйверов. Оглядываться стоит чаще

Я где-то глубоко подсознательно понимал, что одни только настройки ОС, драйвера и ядро не могут вносить такой сильный вклад. Это не стыковалось с данными, полученными за многие годы практического опыта, но я верил в silver bullet. Надо было вернуться к изучению транскодера, и это сэкономило бы несколько недель.

4. Повышать квалификацию команды и больше инвестировать в обучение

Среди инженеров всё реже и реже можно встретить людей, которые понимают, как устроена операционная система под капотом, как работает сетевой стек, как устроены компьютеры и современные архитектуры. Это негативно влияет на скорость и качество разработки. Одна из целей данного материала — показать другую сторону для инженеров, донести, что проблемы бывают сложные и неочевидные, что есть куда стремиться. Вместе с тем я собрал много материала, с которого можно начать и оттолкнуться для расширения кругозора и практик. Для этой цели я веду Telegram-канал «Об IT без галстуков», где пишу о технологиях, IT-бизнесе, взгляде CTO на инженерные проблемы. Буду рад видеть новых подписчиков!

5. Это был невероятный опыт и неимоверный трип

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

Финальный результат

На данный момент система проработала стабильно полтора года, были ещё доработки, но жалоб не поступало. Некоторые партнёры после улучшений получили увеличение конверсии на +57%. Это непосредственно результат инженерных улучшений, видимый результат не всегда видимой работы. Мы продолжаем расти, ищем талантливых инженеров: от Linux-администраторов, умеющих не только поднять k8s, до программистов на Node, PHP, Java, C++. Главное — желание решать задачи и вдумчиво подходить к работе! Если после прочтения укрепилась вера в то, что на рынке бывают нужны не только Front-end разработчики и Magento-архитекторы, то жду резюме в телеграме.

Історія одного саббатікалу, або Як ми стали першими українцями, які обігнули Африку на власному авто

$
0
0

[Про автора: Слава Кравчук, засновник та CEO компанії Atwix. Захоплюється подорожами та мріє відвідати всі країни світу]

Майже рік тому завершилась Африка на колесах — епічна мандрівка на авто з Хмельницького до Кейптауна і назад. 44 країни, 51 300 кілометрів, 6 820 літрів дизеля і практично 7,5 місяців у автомобілі 24/7 разом з Оленою, моїм життєвим партнером. Ми стали першими українцями, хто обігнув Африку на власному авто, і ця подорож назавжди змінила наше світосприйняття.

Ви, певно, теж хоч раз задумувались про саббатікал? Історія внутрішніх сумнівів, палаючих дедлайнів, вірної смерті від малярії в болотах Гвінеї (як нам тоді здавалось), а також бонус-трек «Як не про%бати компанію за півроку» — все це ви знайдете в цій статті для DOU.

Увага, перед вами лонгрід, тож влаштовуйтесь зручніше. Поїхали!

Бекграунд

Тяга до підприємництва і комп’ютерів у мене була з дитинства. У складні 90-тілітні канікули я коротав на легендарному Хмельницькому речовому ринку, допомагаючи татові продавати одяг. А вдома мене чекав Pentium 166, на якому тато дозволяв пограти, лише якщо попередньо напишу якусь програмку на BASIC.

Звісно, про подорожі тоді я не те що не мріяв, а навіть і не знав, що мріяти можна. Все, що було доступним, — це затертий до дірок відомий радянський атлас «Мир и человек», в якому своїми кольорами манили прапори небачених країн та вбрання народів світу.

У старших класах школи у мене з’явився Dial Up та потрапила в руки методичка з HTML. Вау! Не треба нічого компілювати, щоб побачити результат своєї роботи. Це надзвичайно захоплювало, і я вирішив, що буду робити сайти.

Спочатку цілився на локальний ринок, який у 2002-мубув доволі нещадний. Ніхто не сприймав серйозно 14-річногошколяра, що ходив по місцевим офісах, пропонуючи сайт-візитівку. Стукати щоразу в нові двері було некомфортно. Але що робити? Я не здавався, і за два роки спроб якась мінімальна конверсія таки була, хоч вона часто і зводилась нанівець локальними бізнес-традиціями: «космічні» борги клієнтів за розробку в розмірі 300-400гривень залишились досі.

Потім я якимось дивом знайшов щось типу Upwork тієї епохи і освоїв «РНР за 24 часа», побачивши попит на різного роду скрипти. Перші проекти робив просто за відгук, а англійську вчив по ходу справи, спілкуючись з клієнтами через перекладач і запам’ятовуючи вирази, що вони вживали. Це стало поворотним моментом: потихеньку прокачав репутацію відгуками, і роботи стало більше, ніж я сам міг виконати. Так я найняв першу людину в допомогу — і, по суті, заснував IT-компанію.

Перемотуємо на десяток років уперед, і я СЕО eCommerce-агенції і партнера Magento Atwix, живу в Братиславі і відправляюсь з рідного Хмельницького проїхати автомобілем до невідомого Кейптауна.

Ідея

До 2018-гоя вже трохи встиг побачити світ, проте це була лише Європа, США та рідкі вкраплення Азії. Більшість поїздок була з робочих питань + за можливості кілька днів на туризм.

Хотілось чогось більшого, а подорожі автомобілем особливо манили. Одного дня на очі випадково попався скріншот з прокладеним у Google Maps маршрутом Україна — ПАР, і я завис на десяток секунд... Стоп. А що, так можна було?

За останню декаду я не покидав роботу та інтернет більше, ніж на кілька днів, і навіть сама ідея такої подорожі не проходила фільтр реалістичності в підсвідомості. З поточним стилем життя це було щось на кшталт польоту на Марс... Який, до речі, також займає 7 місяців.

Цього разу ідея пройшла всі фільтри і відмовлялась покидати мозок. Я почав шукати досвід людей, які таке робили. Так натрапив на пригоди бельгійців, які вирішили проїхати ДРК по діагоналі, і залип до ранку, поки все не прочитав. Потім було ще багато історій і легендарний фільм Чарлі Бурмана та Юана МакГрегора Long way down. Я зрозумів: незважаючи на дикі труднощі, я теж хочу зробити щось подібне.

Звісно, я не збирався провести кілька місяців у ДРК, тікати від людожерів з мачете і наражати себе на зайву небезпеку там, де можна цього уникнути. Але, як не намагайся, абсолютно безпечного маршруту через усю Африку нема, і це було зрозуміло ще на початку.

Рішення

Самого лише бажання недостатньо, але це вже хороший початок — давно мені не хотілось чогось так сильно. Я почав роздумувати, чи дійсно варто братися за такий проект і коли... Цей етап зайняв добрих кілька місяців вагань.

Причин не їхати було більш ніж достатньо. Одна з основних — страх залишити компанію на тривалий час. Багато років роботи було інвестовано, щоб завоювати наші позиції на ринку, тож дуже не хотілося ризикувати цими здобутками.

Ми вже тоді практично не займались аутстафінгом та мали прямі відносини з клієнтами, серед яких інтернет-магазини зі списку INC 500. Кожен з таких — на вагу золота, і для того, щоб їх залучити та втримати, ми конкуруємо з місцевими агенціями в США, причому зазвичай саме якістю сервісу та послуг, а не ціною.

Були і побоювання щодо того, як поставляться до такої затії колеги та клієнти, чи не вплине це на їхню віру в компанію. Підтримки навколо було небагато. Серед всіх, кому я розповідав про ідею подорожі, лише одиниці реагували позитивно. Більшість же думала, що я втратив зв’язок з реальністю, відмовляла, лякала хворобами, війнами та бандитами або сподівалась, що це я не всерйоз.

У будь-якому випадку затія була ризикована, але фінальне рішення було за мною. Я звів його до двох ключових питань: чи хочу я взагалі коли-небудь в житті зробити таку мандрівку та чи буде колись більш вдалий для цього час?

Все вказувало на те, що потім простіше не буде. Звісно, можна подорожувати і в 60, після того, як виховаєш і виростиш дітей... Але чи буде на це через 30 років бажання і здоров’я? Та і взагалі, чи доживеш до того часу? Крім того, Африка стрімко розвивається, і хотілось побачити її, ще поки туристи та цивілізація все остаточно не змінили.

Після місяців роздумів прийшло різке усвідомлення — мені вже майже 30 років. Це ніби не багато, але вже і не мало. Не рідкість побачити в одноліток серйозні хвороби, нещасні випадки. Та і взагалі таке враження, що в моєму плеєрі життя хтось поставив швидкість як мінімум на 1.5х.

Тож якщо я дійсно хочу в таку експедицію, а потім простіше не буде, то чого саме я чекаю? Віртуальне табло для голосування пропищало фірмову музику Верховної Ради і показало результат: 1 голос «за», 0 «проти», 0 «утримались». Рішення прийнято.

Підготовка

Напевно, вперше в житті я стикнувся з ситуацію, коли навіть не знав, з чого почати будувати план. Знань про оверлендінг було рівно нуль. Питань — просто безліч. Скільки на все потрібно часу? На якій машині їхати? Де її взяти? Що треба з собою в дорогу? Який маршрут? Де робити візи? Як там з інтернетом? І ще сотні інших питань.

На підготовку такої подорожі рекомендують виділити десь 1-2 роки.Стільки часу в мене не було. Але, як казав пан Бернштейн, щоб досягти великих результатів, потрібно дві речі — план і легкий брак часу. Я прийняв його слова до серця і призначив дату виїзду на свій 30-йдень народження, до якого залишалось трохи більше ніж півроку.

Робота

Питання номер один — це однозначно робота. Відверто кажучи, стартові позиції були непогані. Адже Atwix — розподілена компанія. Ще кілька років тому ми перевели всі процеси в онлайн-режимі сповідуємо принципову політику рівності, незалежно від того, ходиш ти в офіс чи ні.

У нас є офіси в Хмельницькому та Братиславі, може скоро з’явитись і в Києві. Але ці офіси ми сприймаємо як коворкінги внутрішнього користування. Абсолютно кожен (хіба, крім офіс-менеджера) може працювати де завгодно, без будь-яких попередніх погоджень.

Буває, що РМ працює з Таїланду, її команда розкидана по Україні та Молдові, і все це нормально уживається з необхідністю всім бути на одній хвилі і щоденним зв’язком з клієнтами з США. Не скажу, що це легко, але за кілька років ми відточили всі процеси, а люди прокачали внутрішню дисципліну та професіоналізм, яких така свобода вимагає.

Робота «де доведеться». Приготування до конференції з СТО Ярославом, Лас-Вегас

Африка ж в одному з нами часовому поясі, тож теоретично працювати віддалено я міг. Проте оскільки я вирішив зробити таку поїздку, яка, ймовірно, випадає раз на життя, необхідність бути на зв’язку хотілось мінімізувати.

Першим ділом я поділився своїми намірами з СТО та операційним директором, щоб заручитись їхньою підтримкою, адже основний тягар моїх обов’язків мав впасти на них. Звісно, це серйозна відповідальність — взяти керування компанією на себе в мою відсутність, і їм теж було боязко. Але я безмежно вдячний Ярославу та Марії за те, що вони підтримали мене і погодились вскочити в цю авантюру. Без них мій саббатікал був би неможливим.

Наступним етапом я почав свідомо занотовувати все, що роблю щодня, і планувати, що і кому я можу передати на час своєї відсутності, яким додатковим компетенціям треба навчити людей, а чим все-таки буду займатись сам і в Африці.

По плану я мав повністю відв’язати від себе необхідність бути на зв’язку в реальному часі. З обов’язкового я залишив лише традиційний лист з новинами, планами та роздумами, який я пишу всім працівникам Atwix щомісяця. Решта — за обставинами. Я планував бути доступним там, де є інтернет для того, щоб при необхідності допомагати з питаннями, що будуть виникати по ходу справи, і рішеннями, які колеги без мене не хотіли ухвалювати.

Подарунок з побажаннями в дорогу від команди Atwix

Така конфігурація вимагала повної довіри до команди, але вона в мене була. Планував ще за два місяці до виїзду перейти в віртуальний режим поїздки і подивитись чи все окей, але повністю так зробити не вийшло. До самого старту ще були робочі івенти, які на 100% мене потребували, тож протестувати план не вдалось і довелося «деплоїти прямо на продакшн».

Збір інформації та планування

Повноцінно підготуватись до такої поїздки, та ще й в стислі терміни, неможливо. Я прекрасно зрозумів, що ми багато чого не знатимемо і не прорахуємо наперед, але прагнув підготуватись по максимуму. Адже навіть якісь невеликі шматки інформації, зібраної наперед, можуть потім зекономити дні чи тижні часу, а у випадку з Африкою — і врятувати життя.

Я б поділив інформацію на дві частини: загальну та оперативну. До загальної відносяться, наприклад, знання про автомобіль, його обслуговування та ремонт; як вести побут; що потрібно в дорогу; де можна ночувати; які потрібні ліки і як надавати необхідну медичну допомогу; як проходити кордони і КПП; особливості менталітету жителів країн і т. д. Для мене золотою жилою таких знань стала книга Overlanders’ Handbookта форуми Horizons Unlimited.

З оперативною інформацією все складніше, особливо в Африці. Де отримувати візи, яка ситуація на кордонах, а головне, де є активні збройні конфлікти чи інша небезпека — все це змінюється кожен тиждень. Багато конфліктів взагалі не висвітлюється в західних ЗМІ.

Що ви чули, наприклад, про громадянську війну в Камеруні між англомовними та франкомовними? Конфлікт розгорівся, вже коли ми були в дорозі, і, як наслідок, в Нігеріїнам довелось протискатись між бандитами на півдні та ісламськими бойовиками на півночі, адже основний наземний кордон в Камерунізакрили для іноземців.

Малі з точки зору британського МЗС

Основні джерела такої оперативної інформації — це групи в Facebook та чати в WhatsApp, в яких є оверлендери, що наразі знаходяться в Африці. Ці чати, звісно, закриті заради безпеки мандрівників. Але хто шукає, той знайде.

Ще один ресурс, на який я опирався — дані британського МЗСдля подорожуючих. Аналогічний є і у Франції, Нідерландів, США та ще кількох країн. Схильність до паніки у них відрізняється, тому треба читати всі, комбінувати з «вістями з полів» та робити висновки самостійно.

Єдине що, додайте до цієї інформації здорову частку скептицизму. Якщо все сприймати близько до серця, то доведеться взагалі сидіти вдома. Але і надто легковажними теж краще не бути — якщо щось зафарбовано на картах у червоний, то це точно привід розібратись у ситуації.

Вибір компаньйона

Чи не основне питання — з ким їхати. Воно було довго відкрите. Я свідомо не хотів умовляти Олену на цей крок, адже зрозуміло, що в дорозі буде важко. Майже гарантовано будуть різні небезпеки, поломки, хвороби, психологічні і фізичні перевантаження. Останнє, що я хотів би почути в якийсь такий критичний момент, — це щось на зразок «навіщо ти мене сюди затягнув».

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

Автомобіль

Хоч я за кермом з 18 років, власне автомобілями мало цікавлюсь. Ресерч почав з нуля, але практично одразу стало зрозуміло, що «золотий стандарт» для експедицій — це «Тойота Ленд Крузер» 70-їсерії. В побуті, особливо в Україні, такі машини не побачиш. Проте в Африці їх використовують практично всі організації на кшталт ООН, Червоного Хреста чи UNICEF.

Перше побачення з Мурзіком. Рівно два місяці до планованого виїзду

Я абсолютно не мав гадки, скільки автомобіль має коштувати, але універсальна порада була вкладати в автівку по максимуму, адже від неї може залежати, чи не застрягнеш ти десь в критичний момент.

Побудувати для себе авто з нуля часу не було, тож розглядались тільки готові варіанти. Це ще більше все ускладнило, бо таких авто є водночас в продажу лише штук 20-30по всій Європі.

Кілька місяців я провів на mobile.de, слідкуючи за цінами та комплектаціями, щоб зрозуміти, що скільки має коштувати. Машини, яка б однозначно мені підійшла, не було. Так прийшов новий рік, а з ним і усвідомлення, що виїжджати через п’ять місяців, а в мене ще навіть і близько нема авто. А ще ж потрібно встигнути його зареєструвати, навчитись користуватись, дообладнати і т. д. Довелось прискоритися і обирати з того, що було на ринку.

Зрештою автівку, яку за всесильність ми назвали Мурзіком (Васильовичем, з п’єси Подерв’янського), ми купили в Німеччині і забрали в продавця лише за півтора місяця (!) до планового від’їзду в Африку. Мурзік був обладнаний на 95% усім, що нам було потрібно, і багато чим, що нам здавалось зайвим. Це був розкішний варіант, який я початково не планував, але часу чекати далі не було, тому вибір зроблено.

Зареєструвати автівку в іншій країні — це була задача із зірочкою. В місцевих бюрократів очі лізли на лоб, адже це ніби був пікап, але тепер за документами — будинок на колесах, мотор замінений на турбований, а закони Німеччини і Словаччини мали різні думки навіть з приводу кількості місць для сидіння. Для проходження техогляду довелось навіть направляти запит в Міністерство транспорту. Я до останнього не знав, чи вдасться зареєструвати авто, але зрештою таки вдалось. Більше про нього є в окремій серії «Африки на колесах» на Ютубі.

Маршрут та візи

Основна дилема маршруту була — їхати Східною Африкою чи Західною. В кожного варіанту були свої особливості. У цілому, Західна Африка — це хардкор, а Східна більш цивілізована і приємна. У результаті ми вирішили їхати Заходом — в умовний Занзібар встигнеш потрапити і літаком.

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

В плануванні самого маршруту на Google Maps в Африці покладатись марно. Я придбав карти Michelin в трьох частинах, що покривали всю Африку, але спробувавши прикинути маршрут далі Сенегалу, швидко зрозумів, що марную час. Через стрімку зміну оперативної обстановки, було марно планувати, як саме ми їхатимемо.

Невідомо було, чи дозволятиме ситуація поїхати, наприклад, в Малі, які будуть справи в Нігерії тощо. Зрештою, я склав таблицю країн, через які ми можемо їхати, відмітив, які з них обов’язкові, а які опціональні, де можна отримати в них візи, та розфарбував рядки в зелений, жовтий чи червоний колір залежно від небезпеки відвідування.

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

На мій подив, наперед нам знадобилось оформити лише три візи — Нігерія, ПАР та Марокко. Всі інші простіше чи дешевше отримати дорогою. Більше за все було мороки з ПАР — три тижні та купа документів... В посольстві хотіли точну дату візиту, яку ми навіть приблизно знати не могли. Нам же туди добиратись 30 000 кілометрів через всю Африку! Але хіба нас естімейтами налякаєш?

Дуже допомогло, що українці можуть мати два закордонних паспорти одночасно. З одним би навіть сторінок не вистачило на всі візи та штампи.

Медицина

Окремо варто згадати медицину. Найбільш очікуваною загрозою була малярія. На жаль, щеплень від неї не існує, і все може закінчитись летально. Я вирішив підійти до питання фактологічно і проглянув статистику ВООЗ. Виявилось, що смертність не надто висока, і в переважній більшості випадків помирають діти. Ми вирішили завжди мати з собою тести на малярію та пігулки для лікування, але не приймати їх профілактично. Півроку прийому таких препаратів завдали б відчутної шкоди для організму.

В нас вже був певний набір щеплень, який ми ще доповнили обов’язковою жовтою лихоманкою та кількома іншими, на кшталт гепатиту А і В, тифу, менінгіту. З собою ми, звісно, зібрали ще купу ліків на всі випадки життя і навіть дезинфікуючий засіб для миття фруктів та овочів... Який так ні разу не використали.

Останні приготування та виїзд

За місяць до старту кожен наш день був наповнений вагоном різних справ посеред намагання по максимуму підготувати роботу до моєї відсутності. По часу все наклалось на головну конференцію року в нашій сфері, на якій ми мали стенд, а мене ще й апрувнули на виступ. Потім одразу офсайт у Карпатах, на який ми збираємо всю компанію щороку, ну і купа іншого. Настільки сильно час в моєму житті ще ніколи не стискався.

Щоб не було сумно, ми вирішили, крім того, зробити і вечірку на честь від’їзду та дня народження, запросивши з сотню друзів і знайомих. Звісно, наївний план виїхати наступного ранку провалився. Наступні дні ми все ще прощались з гостями, докуповували провіант, міняли лампи в фарах та підкручували болти. На третій день відхилення від дедлайну в нас було відчуття, що якщо ми не виїдемо зараз, то вже не виїдемо ніколи.

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

Вечірка перед від’їздом

Мандрівка

Ми і приблизно не мали гадки, що нас чекало попереду. Мозок не усвідомлював, що Мурзік — це тепер наш дім на півроку. Але сам факт виїзду моментально зняв якийсь тягар з голови. Тепер все поділилось на «до» і «після».

Як би ми не сподівались, що покінчили з підготовкою і перейшли в фазу мандрівки, це було не так. У Львові ми ще докуповували шпроти, гречку, сірники, а також «інші необхідні за фінансової кризи і громадянської війни речі». Я кермував до гірських перевалів Карпат, а Олена позаду в автомобілі розкладала все в скрині прямо на ходу.

Такі «необхідні» покупки у Львові...

Забігаючи наперед, скажу, що гречку ми так ні разу і не зварили, але вона не пропала — подарували українським місіонерам у Кенії, які безмежно зраділи цьому дефіцитному продукту. А от кілька консерв, пакунків мівіни, тушонки та іншого провіанту ми провезли по периметру Африки назад до Хмельницького.

Коротше кажучи, брати стільки всього з собою, особливо харчів, було зайвим. Але про це ми ще не здогадувались і вирішили символічно надати «право першої ночі» Батьківщині, звернувши до закарпатського лісу за десяток кілометрів від Угорщини.

Північна Африка та Сахара

За тиждень ми швиденько доїхали до Іспанії, щоб поромом перетнути Гібралтарську протоку в Марокко. В Марокко ми потрапили в інший світ, незважаючи на те, що він усього лише в якихось лічених кілометрах від Європи. На перших порах ми були перелякані і ще звертали увагу на свист та крики людей. Можливо, ми не туди поїхали, чи з автомобілем щось не так? Ні, просто нам постійно хотіли щось продати, попросити чи хоча б поспілкуватись.

На другий же день я мало не скинув машину в кювет на звичайній гірській дорозі. Ситуація була до смішного буденна — рухаючись вгору, зупинився увімкнути понижену передачу і не помітив, що вона не увімкнулась. Так на нейтралці відкочувався назад у спробах рушити вгору і не розуміючи, що відбувається. Коли зрозумів, то одне колесо вже висіло в повітрі, а в нас лишилась остання спроба вибратися з пастки. На щастя, за допомогою каменів, блокування диференціалу та кількох міцних виразів таки вибрались. Добре, що цей урок доля нам дала на самому початку поїздки — хороше щеплення від легковажності.

What do we say to the God of Death? — «Not today».

В Марокко цікаво, смачно і відносно просто подорожувати. Ми заїхали у відоме блакитне місто Шефшауен, імперський Фес, побачили досить пристойно збережені руїни римського міста Волюбіліс, та, звісно, пустелю, ночуючи прямо серед дюн під Алжиром.





Починаючи з Західної Сахари, яка фактично під контролем Марокко, ми познайомились з французьким словом «каду» (подарунок). Військові та поліція не уникали шансу попросити щось в нас, але ми з самого початку твердо вирішили утримуватись від хабарів.

Там же ми зустріли британців Бена і Тома. Хлопці віком, здається, 23 роки, вирушили з Лондона до Кейптауна на бувалому «Дефендері». Ми швидко здружились, і вони вирішили приєднатись до нашого плану проїхати вглиб Мавританської Сахари, вздовж легендарної залізної дороги, якою возять залізну руду з глибини країни до порту.

Це було радісною новиною, адже по плану ми мали рухатись 3-4дні просто по піску і дюнах, там немає жодної дороги. Також, звісно, там нема заправок та є лише два невеликі села на шляху. Щоб було цікавіше, ця територія пофарбована в червоний колір на картах британського МЗС через міни по інший бік колії та небезпеку тероризму.

Ця вилазка вглиб пустелі стала одним з найяскравіших вражень поїздки. Кожен день ми сідали на дно в пісках мінімум двічі-тричі, і те, що ми були на двох машинах неабияк допомагало: витягувати чи відкопувати одне одного набагато швидше.








Наша імпровізована команда дала можливість звикнути до африканських кордонів — разом було простіше розбиратись, куди, за чим і в якому порядку треба пройти, а також протистояти вимогам хабарів мавританцями і сенегальцями за штамп в паспорт... Та і просто було з ким зіграти по рації в гру, «хто перший знайде машину з обома цілими дзеркалами» в Нуакшоті, столиці Мавританії. Дорожній рух там словами описати просто неможливо.

У Гамбії наші шляхи розійшлись, і ми відправились вглиб Західної Африки вже самостійно.




Західна Африка

До Дакарами дістались за не повних 10 000 км і менше ніж за місяць. З Сенегалупочалось знайомство з «більш справжньою», вже не арабською Африкою. Сам Сенегал — доволі проста для подорожей країна. Звісно, це Африка. Навіть місцевих з порту Дакара не випускають до світанку через брутальний розбій і пограбування в темну пору доби. Ніхто абсолютно не звертає увагу на світлофори, і є свої бюрократичні складнощі. Не всі навіть вміють писати. Ми зустріли паркувальника, який говорив англійською, бо вивчив її від туристів, проте не знав, як пишеться власне ім’я. Але нам там було досить комфортно.






В плані їзди, я вже звик пристосовуватись до місцевих порядків. Перші кілька годин в країні йдуть на те, щоб зрозуміти звички водіїв, а далі просто «їдеш з потоком». Тобто, якщо ніхто не зупиняється на червоний, буде нерозумно тобі це зробити посеред трафіку. Так само як і нерозумно очікувати, що в тебе пріоритет на круговому русі, чи чекати, поки тебе хтось пропустить заїхати на те коло... Потрібно просто потихеньку втискатись і рухатись з потоком. Кайф.

Місцевим майже не відоме поняття власного простору. Якось ми, ще подорожуючи з британцями, зупинились на ночівлю в Сенегалі на порожньому полі серед дерев. Ранком нас знайшов місцевий пастух і тупо в двох метрах стояв над головою, поки ми снідали та збирались знову в дорогу. Спочатку він намагався спілкуватись, але перетину мовних множин знайдено не було — він не розумів навіть французьку. Так просто і стояв мовчки з півгодини, поки ми не закінчили ранішні збори та поїхали далі.

Наш «знайомий» у Сенегалі

З Гвінеї-Бісау і далі вже почав наростати хардкор. На мапах були дороги, але в реальності то десь обвалився міст, і потрібно робити крюк в день-півтора, то дощ перетворював ґрунтовку в грязьові ванни, то десь їхати не рекомендували з міркувань безпеки. Але всюди були здивування і часто — приємні несподіванки. В Бісау, наприклад, місцеві харчуються... устрицями. Ціле відро (!) запечених устриць на вугіллі, напевно, найсмачніших, що я їв у своєму житті, обійшлося в 6 євро.

Почались і цікаві зустрічі. В Сьєрра-Леоне ми випадково зустріли генерала британської армії, що у вільний час допомагає жертвам еболи. Він запросив нас відвідати нетрі разом з ним, на що ми, звісно, погодились і зняли там майже цілу серію. Це був один з днів, які сильно міняють світогляд. Ти бачиш десятки людей, які живуть в повній бідності та бруді, ризикують щодня померти від хвороб чи зсуву ґрунту, часто втратили батьків та родичів... Але щиро посміхаються і радіють кожній хвилині свого життя.







Сором’язливі прохання подарунків з часом перетворились на відкрите вимагання, і ми познайомились з новим стандартним питанням, з якого починається відомий фільм (безмежно рекомендую подивитись) Blood Diamondз Ді Капріо: «What did you bring for me?». Проте ми так і стояли на своєму, навіть коли довелось близько години вмовляти поліцейського в Нігеріївідпустити нас безкоштовно.




До труднощів з дорогами, корупцією та візами, оформлення яких забирало величезну частину часу, додалися ще проблеми здоров’ям. Нас постійно кусали комарі, незважаючи на засоби, якими ми бризкали шкіру, і коли в Олени часом з’являлась температура, ми, звісно, підозрювали малярію.

В хід пішли експрес-тести, які не показували хворобу, але температура продовжувалась і в Буркіна-Фасо ми вирішили зайти до лікарні. Можливо, якби ми були не з України, нас би ця лікарня шокувала. Але, відверто кажучи, вона не сильно відрізнялась від наших лікарень на периферії. Хіба що всі говорили лише французькою, а деякі хворі лежали просто неба на землі, де сім’ї опікувались ними.

Там не було якоїсь очевидної реєстратури, де хоча б можна було запитати, де зробити аналіз. Ми за допомогою жестів та уламків французької дістались до лабораторії, де лікар вже збирався додому, але люб’язно погодився нам допомогти. За годину в нас вже були результати аналізів та консультація, на яку він телефоном викликав свого англомовного друга. Лікарі точно не знали, через що температура, і рекомендували випити таблетки від малярії, про всяк випадок. Але Олені вже під вечір стало краще, і вона так і не приймала ці ліки.

Що цікаво, матеріальну подяку лікар Олла відмовився взяти навідріз. Мовляв, як він зможе вимагати від своїх підлеглих поводитись чесно, якщо сам буде брати бакшиш?

В лікарні Буркіна-Фасо

Піком наших страждань стали Нігерія та Камерун. Там чекпоінти траплялись, без перебільшення, 30-50разів на день. На кожному кроці потрібно зупинитись, показати документи та пояснити, що не даси ніяких подарунків. Це надзвичайно сповільнювало темп руху.

В Нігерії оперують одночасно ISIS, пірати, банди, що викрадають людей, місцеві зі зброєю влаштовують нелегальні чекпоінти, а щоб цього не видалось мало, на дорозі неочікувано можна зустрітись з вантажівкою, що їде тобі в лоб по твоїй же стороні магістралі, відділеній бетонним розділювачем.

Ми їхали нон-стоп від світанку до заходу сонця, уникаючи навіть зупинок на заправках на дорогах, які МЗС Британії окремо згадувало в своїх репортах як небезпечні через кіднепінг. У таких країнах, як ДРК чи Нігерія, ночувати можна лише за парканом готелю, де є охорона. Пересуватися також бажано лише під час світлового дня. І справа не лише в підвищеній небезпеці потрапити в ДТП. Навіть у відносно розвиненій Гані трапляються нічні засідки бандитів на дорозі, де грабують (в кращому випадку) і місцевих, і туристів.

Це особливо проілюструвала історія під час нашої мандрівки, коли німецького автотуриста вбили в ДРК. Вони зупинились на ночівлю в кількох кілометрах від населеного пункту, а через кілька годин їх прийшли грабувати. Грабіж пішов не по плану і закінчився вбивством. Ця новина нас особливо зачепила, адже ми всього кілька тижнів тому проїжджали повз те місце, де сталась трагедія.

В Нігерії сталась і наша перша поломка. На гірському бездоріжжі в нас зламалась машина — частково відкріпився бак з водою під дном. Їхати далі без хотфікса ми не могли. Пощастило, що це сталось посеред села, і ми знайшли майстра, який взявся за ремонт.

Там же свою машину ремонтував хлопчина в спортивках, що відрекомендував себе як солдат нігерійської армії. Він курив марихуану зі скляними очима (клей?) і наполегливо вимагав подарунок. Я говорив, що спочатку відремонтуємо машину, а далі поговоримо. Він же стояв на своєму. В ході переговорів він запропонував сфотографуватись, а потім дістав автомат Калашнікова, перезарядив його та запитав, чи не броньована в нас машина.

Цей момент, напевно, входить в топ-5 найстрашніших за всю поїздку. Ми знаходились на території, де ніякий закон не діє і розраховувати можна було лише на себе. Всі ментальні ресурси сконцентрувались на тому, щоб відволікти солдата фотографіями, питаннями, історіями і просто чим завгодно.

Все це відбувалось на фоні сцени, де мою машину розбирають на частини діти (майстер просто сказав їм, що робити, і кудись пішов), я намагаюсь все записати на відео, щоб потім спромогтись скласти докупи, якщо знадобиться. Починається дощ, і ми вже не знаємо, чи встигнемо на кордон (вони в Африці дуже рідко цілодобові) до Камеруну.








На щастя, в якийсь момент на солдата зійшло просвітлення, і він запитав себе в голос: «Стоп, а навіщо я дістав автомат?» — та відніс його в машину. Цієї миті я відчув полегшення не менше за те, що було у мавританському душі після шести днів пустелі. Опис того дня є в Фейсбукта на Ютубі в епізоді про Нігерію.

Як би там не було, ми впорались і урочисто в’їхали до Камеруну. Західна Африка була складною, але залишила і багато хорошого в пам’яті. Кожна країна відрізнялась якимись своїми особливостями, і це все було безмежно цікаво для себе відкривати.

Центральна Африка

Потрапивши до Камеруну, ми думали, що найгірше вже позаду. Але Камерун вирішив нас дотиснути. Оскільки ми заїжджали нетривіальним шляхом через гори, від асфальту нас відділяло ще кілька днів ґрунтовок через джунглі під дощем.

Після всіх нігерійських пригод сили були не на нулі, а просто в мінусі. Ми перебували в червоній та жовтій зоні, на думку Британського МЗС (рекомендовано утриматись від усіх поїздок та поїздок без крайньої необхідності), і часу на відпочинок не було — мали спочатку звідти вибратись.

Потрібно було по максимуму використовувати світловий день, і ми не могли спати стільки, скільки хотіли. Дорога була глиняна, місцями з колією, місцями шириною у півтори машини із заростями бамбуку обабіч. Якщо звернеш туди, незрозуміло, чи втопишся в якомусь болоті, чи доля помилує. Через дощ глина слизька, як лід. Їхати швидко не можеш, але повільно також, інакше за день не доберешся в безпечний населений пункт на ночівлю.




Кілька разів траплялось, що назустріч вилітала автівка, і в цей момент ви самі знаєте, що стискається до міліметра. Ми розминались буквально в 10 сантиметрах одне від одного. Втома, що накопичилась за тиждень Нігерії і ті перші дні в Камеруні, була шалена. Я ставив таймер на 30 хвилин, щоб робити паузи на 5 і просто обійнятись з Оленою.

Менше з тим, настав той момент, коли несподівано посеред джунглів ми побачили китайців і широчезну дорогу, яку вони будували. Багато хто вважає, що китайці — нові колонізатори Африки, і налаштовані до них негативно, але тоді я був готовий їх розцілувати. Це як нарешті зі шлюпки побачити велику землю: «Ми врятовані!!!».

Далі було значно приємніше. Габон — країна, що на 70% вкрита лісом. Там зберегли природу, і ми вперше зустріли диких тварин... Та ще й як! Ми зупинились заночувати в машині в проліску під національним парком, приготували вечерю і лягли спати. Вранці ж прокинулись від якогось шереху поряд і побачили в кількох метрах від машини... Слонів! Вони об’їдали дерево, а ми в повному шоці і захопленні намагались не видати і звука. Адже якщо слон злякається і побіжить не в той бік, ніяка машина нас не захистить. Ця зустріч була просто неймовірною.








В Габоні ми практично всі ночі ночували в дику на природі, і це було прекрасно. Після всієї Західної Африки ми ніби потрапили в інший світ. Знову-таки, неймовірно, кого можна зустріти абсолютно випадково в Африці! Там був і військовий інженер, що служив на британському флоті і показував нам фото їхніх сутичок із сомалійськими піратами, коли вони відбивали в них італійський танкер, і місцевий, що відрекомендувався як шпигун, і американський морський біолог, що рахує лобстерів на дні габонського океану. До речі, що з тими лобстерами робити, місцеві, власне, і не знають — ніхто їх готувати не вміє.

Габон відкрив для нас і трохи історії. Там зберігся госпіталь, який побудував лауреат Нобелівської премії Швайцер на власні гроші ще на початку ХХ століття. Французи його видворяли з Габону через німецьке походження, а він все повертався і зміг розвинути клініку до неймовірних розмірів. Вона і досі функціонує.

Легку напругу нам ще створювали Конго та ДРК попереду, але і їх ми проїхали з мінімальними пригодами та потрапили в Анголу, яка майже невідома туристам — не так давно там ще воювали.










Взагалі війни залишили свій слід по всьому континенту. Якщо розібратись в їхній історії, стає сумно. Часто це були бійки за ресурси або за те, хто буде постколоніальним хазяїном. Так, за Анголу боровся СРСР, але щоб все виглядало міжнародно, направили туди кубинців (WTF? Кубинці воюють в Анголі. За що?). Протистояла їм ПАР, а ще десь надавали допомогу то США, то Китай, то інші. Страждав же, як завжди, місцевий народ.

Ангола порадувала нас природою. Там були простори для кемпінгу подалі від людей. Ми ночували і на неймовірному пляжі прямо на березі океану, і на вершині каньйону, про який ніколи в житті не чули, але він виглядав не гірше, ніж національний парк США. Столиця Луанда в центрі також здивувала рівнем розвитку. Соцреалізм в архітектурі створював відчуття якогось Загребу на океані, але все дуже пристойно.

Нас цілком безкоштовно прийняли на території місцевого яхт-клубу, другого найстарішого в Африці. Його керівництво теж полюбляє подорожі, і всім охочим дають можливість використати парковку як кемпінг, з пристойним душем та туалетом, доступними 24/7. Прекрасний приклад щирої гостинності і доброти, які можна зустріти в будь-якому куточку світу.

Південна Африка

Коли ми нарешті потрапили до Намібії, остаточно стало зрозуміло, що труднощі вже закінчились. Можна видихнути. Намібія — це просто рай для любителів безкрайніх просторів. Країна за розміром більша за Україну, а населення всього 2,5 мільйона.

В Намібії прекрасне м’ясо, яке навіть експортують до ЄС. Великий стейк неймовірної якості можна придбати в магазині за щось типу 100-150 гривень.Супермаркети виглядають краще за українські, а ціни не вищі. Доступні овочі та фрукти з ПАР, молочні вироби... Коротше кажучи, все що захочеш.

Кемпінги — це окрема історія. За $10 ти отримуєш приватне місце, зі своїм душем (часто з гарячою водою), туалетом і навіть іноді дровами для вогнища. Природа теж різноманітна. В Намібії другий за розміром каньйон світу після Гранд Каньйону (а виглядає приблизно так само), скелі, океан і, звісно, пустеля. Крім того, там крутезні національні парки, де без особливих зусиль можна побачити всіх відомих африканських звірів. Більше того, не рідкість побачити орікса, що пробігає просто повз кемпінг.















В Намібії трапилась і невеличка робоча історія. Мій товариш Куба, що теж керує Magento-агенцією, але у Польщі, за півроку до того біг ультрамарафон через пустелю Намібії і, знаючи, що ми їхатимемо в Кейптаун, залишив для нас схованку. Все, що він дав — це координати та засторогу, щоб я обережно заглядав в покришку — там можуть бути змії чи павуки.

Схованка в Намібії

Півроку потому ми дістались цього місця землею — і знайшли «передачу». Це прекрасний приклад того, наскільки наше Magento-ком’юніті більше за просто роботу.

Якби було таке бажання, ми вже могли за тиждень опинитись у Кейптауні — та, звісно, хотілось розслабитись та розтягнути задоволення значно надовше. Ще за місяць до того вдалось домовитись з батьками, щоб вони прилетіли до Намібії і розділили з нами досвід мандрівки. Для них ми окремо орендували кемпери, і всі разом вирушили на 10 днів попередньо розвіданим маршрутом.

Це був прекрасний час, проведений без телефонів і щоденних турбот: безкраї простори природи, щодня вечеря на вогні під зірками та щирі розмови. Вирішити полетіти в невідому Африку, особливо вперше у віці за 60, непросто. Я дуже вдячний, що всі учасники подій зрештою погодились. Це було неймовірно.





Відправивши батьків додому, ми трохи засумували і вирішили рухатись далі. За якихось півтора тижні ми дістались мети — Кейптауна.

Минуло рівно 20 тижнів від виїзду з Хмельницького. Емоції нас переповнювали. Ми досягли мети, пройшовши всі складнощі і випробування. Ми сиділи на скелі над мисом Доброї Надії і навіть не намагались осягнути, скільки всього відбулось і як далеко ми заїхали по землі.

Постало нове питання — що далі? Варіантів було три: відправляти авто в контейнері до Європи, залишити його в Кейптауні на якийсь час і повернутись, щоб «замкнути коло» пізніше, або ж їхати назад Східною Африкою. Порозмірковувавши кілька днів, я зрозумів, що знову вирватись з компанії на довгий час у найближчому майбутньому буде проблематично. Тож оскільки ми вже так далеко забрались, краще швиденько завершити коло, поки є така можливість.




Так ми обрали останню опцію.

В самому Кейптауні ми вирішили довго не затримуватись, адже в це місто повернутись потім просто і без автомобіля. Проте ми скористались пропозицією випадкового знайомого Хенка, котрого зустріли в Намібії, відвідати його ферму в годині їзди вглиб провінції.

Зустріч з Хенкомв результаті стала одним з переламних моментів подорожі. Можливо, ми і вирушили в цю подорож лише для того, щоб з ним зустрітись. Хенк проводить мототури для туристів і місцевих ПАР і Намібією, а також володіє землею та кемпінгом, де відбувається щорічний фестиваль AfrikaBurn, місцевий аналог легендарного Burning Man.

Як ви розумієте, йому, в принципі, є чим зайнятись в житті. Проте з якихось причин він виділив три дні свого часу і покатав нас провінцією, познайомив зі своїми друзями, з якими ми влаштували традиційний південноафриканський браай (барбекю), відвіз на найпівденнішу точку континенту і, звісно, на ту саму Танкву, де відбувається AfrikaBurn.

На ці кілька днів ми просто вилетіли в паралельну реальність. Ми проводили час, спілкуючись з Хенком та його знайомими. Куди б ми не їхали, навіть просто зупиняючись на обід, зустрічали людей, які знали Хенка. На нас дивилися з легкою заздрістю й іноді уточнювали, чи ми розуміємо, як нам пощастило, що Хенк «взяв нас під своє крило».

Ту енергетику і світло, які випромінював Хенк, важко передати. Він також сформулював свою життєву філософію як «найснес». Суть проста. Ти просто повинен бути «найс» до інших, і тобі це повернеться втричі більше. Але є один нюанс — треба почати першим. За словами Хенка, іноді він відчуває себе винним з огляду на те, наскільки багато йому повертає всесвіт. «Сам піпл кол іт карма, бат майн із беттер!» — сказав він зі своїм фірмовим південноафриканським акцентом.





Хтось подумає, що в чоловіка солодке життя, і він може собі це дозволити... Але його історія далеко не проста. Виріс у вкрай релігійній сім’ї, де по неділях йому забороняли навіть купатись у річці. Вивчився на вчителя і працював у школі. Але потім взяв кредит на ферму, який щойно сплатив — через 30 років!, — і з нуля довго будував бізнес з вирощування яблук, агротранспортування, а потім уже влаштовував мототури для душі, коли зміг це собі дозволити.

Вся ця позитивність і спокій Хенка були на тлі смертельної хвороби в сім’ї. Ми ще встигли познайомитись із його дружиною, що проходила хіміотерапію, і ніби виглядало, що все буде добре. Та коли ми вже повернулись до Європи, до нас дійшла сумна новина :(

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

В чому секрет? Я не знаю. Але подумалось, що повністю відчути смак життя вкрай важко не усвідомлюючи його крихкість. Ця поїздка добряче укріпила в нас це усвідомлення, яке рідко культивується в повсякденному рутинному житті.

...Як би не хотілось покидати це магічне місце, та треба було повертатись до роботи. Ми націлились покинути Африку до Нового року, і часу лишалось небагато.

Зворотній шлях

Швиденько відвідавши посольство України в ПАР, ми знову занурились у дорожні будні. Після всього, що ми пережили, Східна Африка була, як кажуть американці, прогулянкою парком. Райські пляжі Мозамбіку, тварини і природа Зімбабве та Замбії, зелень Уганди та Руанди — все це вже було в «розслабленому» режимі.





Переважну більшість віз уже отримували просто на кордоні, люди говорили англійською, були цивілізовані кемпінги та дороги в значно кращому стані. В посольстві України в Кенії нам допомогли з папірцем, який потрібний був для візи до Ефіопії, все йшло гладко.

Східна Африка — вже ближча до того, яким чорний континент уявляє більшість людей. Все не так розвинено, як в ПАР чи Намібії, але тут є тварини, краща інфраструктура, сервіс, і взагалі все простіше.







Проте не обійшлось і без складнощів. Ми знали, що кордон Ефіопії та Кенії — це гаряча точка, де час від часу спалахують міжетнічні конфлікти. Я постійно моніторив ситуацію, на день перетину кордону ніяких інцидентів уже два тижні не було.

Та щойно ми перетнули кордон, просто за кілометр місцеві почали божевільно жестикулювати, потираючи вказівні пальці, мовляв, там «терки». Частина людей махала нам повертатись назад, а частина показувала швидко їхати вперед. Подивившись на горизонт, я зрозумів чому.

По різні боки дороги були групи людей упереміш з поліцією. Вони жбурляли каміння через дорогу один в одного, а в іншій руці деякі з них тримали автомати. Питання, в який момент вони перейдуть з однієї зброї на іншу, було відкрите.

Адреналін впорснувся у кров, і рішення потрібно було ухвалювати швидко. Це практично єдина доступна дорога між Кенією та Ефіопією, і схоже, конфлікт в цей день мав знову набрати обертів. Якщо ми лишимось у Кенії або затиснутими між кордонами, це може затягнутись на невизначений термін. З іншого боку, можна потрапити під шалену кулю прямо тут.

Я під’їхав ближче і вловив поглядом поліцейського. Швидко жестами запитав його оцінку ситуації, на що він дав рекомендацію тиснути газ у підлогу. Це збігалося з підказками інтуїції, тому так і зробив. На щастя, ми проскочили все безпечно, і вже за півгодини назустріч нам їхали армійські вантажівки — уряд підтягував підкріплення.

Нам дуже пощастило їхати саме того дня. Ввечері таки відбувся новий виток конфлікту, і протягом тижня загинули десятки людей. Звісно, ніхто не хотів шкодити туристам — це внутрішні розбірки. Але «потрапити під роздачу» в таких умовах нескладно.

Ефіопія ж виявилась дуже цікавою. Самобутня культура, танці, їжа. На півночі старезні монастирі, цілком видовблені в монолітах. Вони досі діють, і щоранку місцеві в білому приходять на службу. Там абсолютно магічна атмосфера.







Судан здивував рибою з Нілу та смачнющими овочами та фруктами посеред пустелі. Знову ночівлі посеред дюн і кайф. А піраміди? Ви знали, що їх в Судані більше, ніж в Єгипті? І туристів практично нема. Можна насолодитися всім у повному спокої, наодинці з природою.

Особливо ми смакували наші останні ночі в пустелі. Ми знали, що поїздка вже закінчується, і хтозна коли наступного разу ми заночуємо під зірками. Хотілось продовжити ці солодкі миті і не засинати...

Але ситуація в країні була непроста. Розгорілась паливна криза, в черзі за дизелем потрібно було вистояти півтори доби. В людей потихеньку накопичувалось невдоволення через повальну бідність. Інтуїція знову не підвела. Через п’ять днів після того, як ми виїхали з країни, почалась революція (ми ні до чого, запевняю).

Останнім бастіоном став Єгипет, який з вікна автомобіля постав зовсім в іншому вигляді, ніж коли прилітаєш у відпустку. Єгипет «землею» — це справжнє бюрократичне пекло. При перетині кордону на тебе заводять цілу справу. Все арабською, і цей судано-єгипетський кордон став першим місцем за всю поїздку, де ми залучили «фіксера». Інакше там практично нереально без належної і детальної підготовки: потрібно пройти з десяток кабінетів, все написано лише арабською, ніхто не говорить англійською, а інтернету нема.

Не обійшлось без пригод і там. Наш карнет (митний документ) не захотіли приймати, і розвернули до Судану, перекресливши вже поставлений у паспорт штамп про проходження кордону. Це був шок: це означало, що треба повертатись кілька тисяч кілометрів назад і відправляти машину контейнером з Кенії. Звісно, я відмовлявся приймати таку реальність і, позичивши телефон у місцевих, телефонував куди тільки можна. Ось тут знову зіграла підготовка — був телефон єгипетського автоклубу, в якому я таки «знайшов правду», і якимось дивом ми в той же день встигли пройти кордон перед самісіньким його закриттям. Вся історія дня є тут.






Периферія Єгипту виявилась дуже гостинною. Тут тебе не намагаються обібрати. Навпаки — ти гість, і тебе приймають. Навіть небагаті далекобійники в кафе мали за честь пригостити нас колою. Ми були справжньою екзотикою. На дорозі нас зупиняла поліція, просто щоб сфотографуватись з нами на фоні авто.

Вся тутешня культура побудована на хабарах (бакшиш). Коли зайдеш в один зі старих храмів, стає зрозуміло, чому вся сюжетна лінія настінних розписів про те, як смертні носять богам подарунки. Просто боги тепер стали земні.

Ми заради сміху вирішили заїхати в Хургаду на одну ніч в 5* олл-інклюзів. В цих готелях навіть парковки нема, туди ніхто не приїздить машиною, лише туристів звозять автобусами. Коли машину на в’їзді побачила охорона, в них очі неконтрольовано почали збільшуватись. Довго з’ясовували, яким чином ми з України сюди потрапили, а коли дізнались, що це ми не спустились, а по колу проїхали через всю Африку, то довго не могли повірити, що таке взагалі можливо.

Все змінилось, коли ми дістались в Люксор. Туризм там зіпсував ставлення місцевих. Знову тобі намагаються впарити все на кожному кроці і помити машину втридорога.

Фінальною точкою була Александрія, де ми мали загнати машину на вантажний пором до Греції. До останнього ситуація була напружена, тому що в нас замість номеру двигуна в карнеті та свідоцтві про реєстрацію була записана його модель. І взагалі, двигун в машині не рідний і відрізняється від того, що на заводській табличці. Знаючи всю бюрократичну суворість Єгипту до автомобілів, я до останнього тримав подих затамованим.

На руках був квиток на авіарейс, і нам вкрай потрібно було впоратися зі всіма процедурами за півтора дня. Лонг сторі шорт, встигли завдяки хитро придуманій для фіксера мотиваційній схемі. Правильна мотивація творить дива.

У перших днях січня наша машина прибула в Афіни і навіть єгипетський дизель, що замерз у Бухаресті, не завадив нам фінішувати в Хмельницькому вже на Святвечір.

Наша мандрівка, яку почали ще далекого 22-готравня, завершилась там, де і починалась. Це було неймовірно.

Близькі вітають нас на в’їзді в рідне місто

Daily life

Статистично, якщо розділити пробіг на кількість днів поїздки, вийде близько 250 кілометрів на день. Насправді ж ми пересувались не кожного дня, тому в ті дні, коли рухались, пробіг був більшим. Середня швидкість пересування по Африці дуже мала. В деякі дні бувало і 30-40 км/год.Це означає, що переважну більшість часу в нас займала їзда за кермом.

Проте сутеніло практично всюди плюс-мінус о 18:00, і ми намагалися встигнути зупинитися на ночівлю до темноти. Той час, що залишався, здебільшого йшов на побут, роботу, приготування їжі, планування маршруту і віз, огляд місцевості та занотовування вражень за день.

Зв’язок

У кожній країні ми купували місцеві сім-карти. Десь це було просто, десь потрібно було навіть здати відбитки пальців і витратити на процес дві-три години. В Африці ніхто не поспішає.

Ціни на інтернет і його якість всюди різні, і до певної міри несподівані. В Марокко, наприклад, ми очікували кращого зв’язку, адже країна відносно розвинена. На практиці він був геть паршивий. В той же час, посеред джунглів Камеруну раптом засвітився відмінної якості 3G. За можливості ми завжди купували сімки двох різних операторів, щоб мінімізувати ризик промахнутись з тарифом, але не завжди це вдавалося.

Для уявлення, 3-5 ГБінтернету може коштувати приблизно від 2 до 30 євро залежно від країни.

Блог

Спочатку ми планували по ходу поїздки знімати, монтувати та викладати серіал «Африка на колесах» на Ютубі. Пам’ятаю, як перед поїздкою уявляв, що ми сидимо десь посеред савани, палимо вогнище і записуємо на відео якісь історії за день. Взяв навіть додаткове світло з собою. Це було так наївно :)

Записуємо епізод «Африки на колесах». Ще в Європі

І справа не лише в поганій доступності інтернету і тому, що в спокійних місцях ми опинились лише в Намібії. Монтували ми все (і продовжуємо) абсолютно самостійно, а робити це в подорожі виявилось майже не реально. Під час зупинок вільний час йшов на побутові та інші більш пріоритетні справи. Пробували монтувати і на ходу, але ноут перегрівався і переставав справлятись, а обидві руки пасажира часто були зайняті тим, щоб втриматись і не вилетіти з сидіння на ямах.

Знімати теж було складно. В найстрашніші (читай, найцікавіші) моменти останнє, про що думаєш — це камера. Розмови на чекпоінтах, зустрічі з людьми чи якісь об’єкти інфраструктури часто і знімати не можна. В африканців поширена фобія шпигунів, і як тільки військові бачать камеру — це вже довга розмова.

Навіть на поромній переправі в Гамбії я потрапив у конфлікт через кілька знімків автівки, що там застрягла. Після п’яти годин чекання, спроб розвести нас на хабар, через які ми втратили дві години, і повної м’ясорубки в черзі нерви здавали. Я майже накричав (так не можна в Західній Африці) на чоловіка, який виявився начальником безпеки порту, але все обійшлося. Ця історія є у восьмій серії.

Принаймні я взяв за правило публікувати регулярні текстові звіти в Фейсбук та Інстаграм, з чим дисципліновано справлявся. Який би не був важкий день (за певними винятками), я все одно витрачав мінімум годину щовечора, щоб все записати. Так, до кінця поїздки назбирався матеріал на книгу, яка побачить світ наступного року. Збірку постів за країнами можна знайти в описі кавер-фото Фейсбук-профіля.

Ночівлі

На ніч ми зупинялись в абсолютно різних місцях. Коли була можливість і ми думали, що це безпечно, ночували в дику десь посеред природи. Бувало страшно, особливо перші рази. Я клав під подушку ніж (ніби він мені чимось допоможе) і просинався від кожного шереху листя на вулиці. Олена ж спала міцно. Її, як показала практика, ані слон в Габоні, ані група галасливих бегемотів, що гуляла під нашою машиною в Танзанії, не змогли розбудити. З часом і я звик, принаймні до шереху листя.

Якщо були кемпінги, то також ними користувались, але часто зупинялися просто у випадкових місцях. У кращому випадку могли попроситись переночувати десь на парковці кафешки за те, що ми в них поїмо, чи потрапляли безкоштовно в цивільне місце, як-от яхт-клуб в Луанді. В гіршому, бували ночівлі і під стінами поліцейського відділку в Сьєрра-Леоне на кордоні з Ліберією, де і в туалет не сходиш.

Таргани в готелі Нігерії. На фото важко оцінити розмір, але вони були величезні :)

Дуже рідко ночували в готелях. В 70% випадків ми їх брали, лише щоб була можливість ночувати під охороною та сходити в туалет та душ, а самі спали в машині. Готелі іноді траплялись такі, що і в душ ходити не хотілось.

Найкращі спогади залишились від ночівель у пустелі. Зоряне небо над тобою, легка прохолода вітру після спекотного дня, а в деяких випадках — ще щось особливе, як, наприклад, тупіт десятків зебр Хартмана, які йдуть на водопій до джерела.

Харчування

Здебільшого ми готували їжу самостійно. Основними нашими засобами були два портативні пальники, що працювали на будь-якому паливі.

Стандартна страва на вечерю — паста з консервованим тунцем під томатним соусом. Коли сил зовсім не було, вечеряли просто свіжим повітрям. На сніданок зазвичай яйця, хліб, щось із місцевих овочів. Спочатку ми яйця боялись купувати, але потім розслабились. За часом це приблизно співпало з моментом, коли ми взяли приклад з місцевих і перевзулись з трекінгового взуття в крокси.

Сніданок з місцевих продуктів, десь у Конго

Ми завжди купували ті овочі та фрукти, що місцеві продавали при дорозі. Майже всюди є помідори та цибуля. Часто було авокадо, манго, банани, ананаси... В залежності від місцевості сезон був на щось інше.

Коли дорогою траплялись якісь кафешки, що викликали довіру, їли і там. Обід в основному або пропускали, або перебивались чимось з запасів на ходу.

Медицина, безпека, автомобіль

В цілому, лишилось враження, що нам дуже пощастило. Я вважаю дивом, що ані я, ані Олена так і не захворіли на малярію, хоча нас постійно кусали комарі. Бували якісь тривіальні хвороби, на кшталт ангіни в Олени та два рази харчові отруєння, на одне з яких я йшов свідомо, пробуючи сире м’ясо в Ефіопії (національна страва).

Ще одне диво — ми за весь час мандрівки не потрапили в жодне ДТП, при всьому пеклі, що відбувається там на дорогах. Нас також навіть ні разу не пограбували, а автомобіль ламався лише лічені рази і не критично, нам постійно вдавалось його полагодити.

Піт-стоп на ремонт, Гана

Рутинне обслуговування я робив самостійно: змастити шасі та замінити фільтр додаткової системи фільтрації масла раз на 10 000 км, дрібні ремонти на кшталт заклеювання шлангу, що протікає, за потреби. В нормальний сервіс ми потрапили аж в Намібії, де замінили мастило через 30 000 км. В авто стояла система вторинної фільтрації Trabold, яка дозволяє міняти мастило аж раз на 50 000 км. Це врятувало від контакту з горе-майстрами дорогою.

Фінанси

Здебільшого готівку ми здобували в банкоматах, так виходило найвигідніше. У випадках, коли готівки потребували раніше, ніж доберемось до банкомата, або в країні існував неофіційний курс долара, поміняти можна було на кордоні. З собою в нас були і готівкові долари на чорний день, які ми сховали в різних місцях в машині.

Основна стаття витрат — паливо. Воно десь дуже дешеве, як в Судані, Єгипті чи Нігерії, а десь ціна звичайна. В цілому, можна рахувати приблизно по $1 за літр. Ще одна значна стаття — це візи. Все залежить від країни. Наприклад, мультивіза в Анголу обійшлася в цілих $250, а одноразова в Малі — щось близько $20.

Кемпінг для ночівлі в середньому коштував десь $10. Кемпінг в дику — безкоштовний. Готелі в столицях можуть бути дорогими — $70-$100. Десь в глушині Нігерії — $15-20. З харчуванням все просто — локальні овочі та фрукти коштують кілька доларів на день. Паста, рис — як в Україні. Консервований тунець — дешевше.

Мішок апельсинів за 35 грн. ПАР

Інше — зв’язок, квитки туди, де платний вхід чи в’їзд, розваги, кафе тощо.

Бюджет на день значно залежить від швидкості пересування. Чим повільніше рухаєтесь, тим менше витрачаєте. Наш темп був швидкий, тому саме тільки паливо потребувало в середньому $25-30 на день. Той же маршрут люди розтягують на один-два роки. Тоді витрати на паливо та візи в перерахунку на день зменшилися б у два-чотири рази.

Все індивідуально, але в середньому по палаті оверлендери в Африці часто рахують $60-100 на день на пару за більш-менш активних пересувань.

З капітальних витрат — це, звісно, автомобіль і його обладнання. Тут все, знову-таки, дуже сильно різниться. Мінімально розумно обладнане авто, напевно, стане в $20k. Але це не буде «Ленд Крузер 70». Максимальної межі нема. Я бачив люксовий Mercedes Unimog, що коштував $300k.

Хороша новина — такі авто мало падають в ціні. Особливо «Тойота Ленд Крузер» 70-їсерії, як була в нас. Навіть додавши понад 50 000 км на одометр та добряче проїхавшись Африкою, продати якісне авто можна з дисконтом 10-20%.

«Дефендер» Тома та Бена, яких ми зустріли в Марокко, обійшовся їм навіть менше $20k. Більшість обладнання вони ставили самі, а щось взагалі отримували безкоштовно за рекламу в блозі. Взагалі ці хлопці — відмінний приклад реалізації мрії з мінімумом ресурсів.

Їм по 23 роки. Капітал зібрали на різних підробітках влітку, типу інструкторами в дитячих таборах за кордоном. Максимально бюджетно вони зібрали авто і старались жити та пересуватись на менше ніж $50 на день.

Повернення до звичного життя

Відверто кажучи, я хвилювався: раптом мені страшенно припаде до вподоби такий стиль життя і не схочу повертатись до роботи. Так не сталося. Ще не доїхавши додому, я вже потихеньку входив у професійне життя, інколи з курйозними ситуаціями.

Під час поїздки Adobe оголосили конкурс на раду директорів Magento-асоціації. Я вирішив взяти в ньому участь і пройшов до наступної фази, коли потрібно було запланувати інтерв’ю. Ми вже були в Ефіопії, де з інтернетом все сумно. Довелось естімейтити дату, коли буду в столиці Судану. В столиці ж інтернет точно мав бути? Так і сталось, Хартум покритий прекрасним 4G. Проте в останній момент виявилось, що Судан під санкціями США, і Zoom.usдля відеоконференцій там не працює, як і сила-силенна інших ресурсів. Добре, що здогадався протестувати Zoom.usзавчасно. Врятував VPN.

Одразу після фінішу наша поїздка викликала непоганий розголос. Про нас навіть написали статтю ВВС Україна та покликали на прямий ефір на радіо НВ. Офлайн-зустріч ми зробили лише одну, в рідному Хмельницькому, «по гарячих слідах». Зустріч ми не рекламували і нашому здивуванню не було меж, коли на неї прийшло близько 300 людей.

Перші тижні в офісі було важко зрозуміти, що саме з важливого я пропустив. В поїздці я намагався більш-менш слідкувати за подіями та іноді працював, але якісь речі випадали з моєї зони уваги. Десь через місяць звичайної роботи я вже повністю включився, а через два було враження, що нікуди і не їздив.

Неочікувано сама поїздка викликала значну цікавість і в професійних колах. Це тепер відмінний топік-стартер на різних конференціях, а розуміння культур навіть час від часу допомагає закривати угоди з вихідцями з Африки.

Справи ж компанії за час моєї відсутності навіть покращилися. Жоден клієнт від нас не пішов, мої страхи не справдилися. Крім того, Atwix став № 1 Контриб’ютором Magento за рік, наш СТО отримав відзнаку Magento Master, ми провели кілька подій для спільноти.

Напевно, все склалось вдало, бо компанія була вже на тому етапі, коли в ній закріпилась стала культура. Так чи інакше, все зводиться до трьох аспектів — люди, процеси, культура. Звісно, всі три взаємопов’язані, і про всі три потрібно постійно дбати. Я безмежно вдячний усім, хто продовжував рухати компанію вперед за моєї відсутності.

Можливо, якби я залишився, справи були б ще кращими. Але як знати? Ми ж не можемо зробити А/Б тест власного життя з контрольною групою.

Що це нам дало

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

Деякі з цих змін тривіальні. Наприклад, я навчився готувати і отримувати задоволення від побутових справ. Прокачав терпіння з нуля до рівня, коли спокійно міг сидіти в машині шість годин на в’їзді в Габон. Про всяк випадок уточню: це не те ж саме, що чекати в черзі десь на Краковці. В Габоні ми були зовсім одні, без зв’язку і розваг, просто чекали, поки начальник вартового десь в тилу через Воцап дозволить нам проїзд, в той час як інших пускали без проблем. Це було принизливо, але качати права було марно, незважаючи на візу та всі необхідні документи в кишені.

Ми зустріли безмежно цікавих людей, які безповоротно вплинули на нас і наш світогляд. В нашому звичному ареалі проживання ми б ніколи не знайшли Чарлі, що водив нас до нетрів Сьєрра-Леоне, не зустріли б колишнього керівника французьких резиденцій Сваровськи та Ротшильдів, який тепер просто відкрив ресторан та живе в кайф на човні в передмісті Абіджана. Ну і, звісно, не заприятелювали б із Хенком в ПАР, який показав нам свою філософію життя на практиці.

Оселя хлопчини Томаса в Ефіопії, що вирушив з села на заробітки, щоб стати лікарем

В Африці до нас прийшло розуміння локальності проблем. В різних куточках світу постійно відбуваються конфлікти, вирує бідність та безліч інших негараздів. Поки ти не стикаєшся з цими проблемами особисто, відчути їх дуже складно. Точно так само локально живуть і наші звичні проблеми. Виїхавши до Африки, ми залишили вдома майже всі побутові та робочі турботи. Виходить, практично все залежить від того, що ми тримаємо в голові, а що ні. Тепер виклик в тому, як би відв’язати те, з чим стикаєшся безпосередньо в кожен момент часу, від своєї загальної картини світу.

Африка дала нам нову перспективу для порівняння. Після шести днів без душу, коли ми жорстко заощаджували воду, перетинаючи піски Сахари в Мавританії, проста вода з крану здається дивом цивілізації. Можливість вийти ввечері на прогулянку містом і не боятись бути пограбованим, доступ до смачних різноманітних продуктів — все це безмежна розкіш.

Звісно, ця розкіш радувала нас тільки в перший час після повернення. Людина адаптується, як до гіршого, так і до кращого. Минає кілька тижнів, і ти знову в рутині не помічаєш свого щастя... Хоча іноді таки згадуєш, як може бути по-іншому.

Залишилось і дещо довготривале. У важкі моменти нашої поїздки я часто відчував себе як дайвер у печері. В тебе поки що є повітря, але ти розумієш, що у разі чого просто піднятись на поверхню не вийде. Магічної кнопки евакуації нема. За тобою не прилетить гелікоптер, ти не сядеш на літак додому. Найближча лікарня може бути в днях їзди від нас, посеред пустелі ресурси обмежені, ситуація з безпекою часто невідома, а покладатись можна лише на себе і партнера.

Ситуацій, коли виникала реальна загроза життю, було небагато. Ми їх намагались усіма силами уникати. Але за кожну з них я вдячний долі. Щоразу вибираючись з колотнеч, ми зміцнювали дещо найбільш цінне — віру у власні сили і усвідомлення крихкості життя.

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

Висновки

Вже після поїздки я знайшов той самий скріншот з маршрутом у Google Maps, з якого почалась ідея. Магічним чином виявилось, що від скріншоту до дати від’їзду минув рівно один рік. День у день.

Мені це показало, що найсміливіші мрії можуть стати реальністю у доволі стислі терміни. Звісно, все це було непросто, і заради мрії довелось багато чим пожертвувати. Могло вже і в процесі не все так вдало відбутися. Та як би там не було, для мене авантюра виявилась однозначно того варта.

Сподіваюсь, ця історія і вас надихне зробити крок уперед до чогось, про що ви дуже давно розмірковуєте. Найкраща порада, яку я можу дати: якщо ви дійсно чогось хочете, переступіть через страх. Він є в усіх, але тільки через нього лежить шлях до тих самих великих звершень, про які говорив Бернштейн. Тож бажаю сміливості та успіхів!


Історію мандрівки можна переглянути в серіалі «Африка на колесах» (рос.) на моєму Ютуб-каналіта в текстових історіях (укр.) в Інстаграміта описі бекграунд-картинки Фейсбук-профіля.

Agile по-бандитски, регулярная армия, фуражиры и спецназ

$
0
0

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

Привет, я Денис. Тренер по Agile, Scrum Master в Luxoft. Называю себя Agile Coach, потому что лечу неправильное понимание Agile, Scrum, Kanban, XP, Lean в головах команд и стейкхолдеров методами коучинга. Еще я повышаю удовольствие и пользу от работы тем, что учу следовать ценностям Agile. Но иногда меня «несет», и я делаю тренинги или воркшопы или даже пишу статьи.

Сначала меня очень обеспокоила тема, когда заказчик просит команду работать по фреймворку Scrum, не осознавая цену и цели. Потом сюда добежала досада относительно аджайл-трансформаций, особенно в компаниях, где это «налазит» на культуру, как сова на глобус.

Хорошо, что коучи, которых я знаю, делают трансформацию степенно и с расстановкой. Ведь на нашем любимом IТ-ресурсе DOU постоянно встречаются комментарии от инженеров ИT-специальностей, объясняющие, что скрам и аджайл уже «не торт». И они злятся, не понимая, зачем так с ними поступают.

Гравюра. Нью-Йорк, США. 1873. Дети разделывают табак. Photo credit: GETTY

О неэффективности Agile вышло много статей в этом году: The Agile Sweatshop, Open Letter to all the People Being Forced to do Scrum, Mockery Of Agile, Agile Does Not Work!. И вишенкой на торте стала презентация с тщательным объяснением и ссылками: Alexander Much «Agile in automotive».

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

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

Такие компании, как Salesforce, работают с подрядчиками, концентрируются на продвижении и развитии партнеров. А вот, к примеру, в Rozetka или Uber — Software хоть и является главным инструментом, но бизнес заключается в работе с партнерами, поставщиками и клиентами. Поэтому если компания начинает разрастаться, то количество людей, занятых НЕ software-инженерией, увеличивается в прогрессии.

И тут у меня рассказ не складывается без аллегорий.

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

Регулярная армия

Знаете, как двигать город с 200 000 населением вперёд со скоростью 24 км в день? «Supplying war», Martin van Creveld. Это задачка «со звездочкой» для военных. Именно так обстоит дело с перемещением войск регулярной армии at scale. Представьте себе логистику этого двигающегося города, где все хотят еды, развлечений, болеют и нуждаются в услугах.

Процитирую из «Голод и болезни: неразлучные спутники войны»:

«Порядок, принятый в большинстве стран Западной Европы в XVII–XVIII веках,предусматривал, что солдаты должны были получать в качестве ежедневного довольствия от полутора до двух фунтов хлеба, от 8 унций до фунта мяса, рыбу или сыр, пиво или вино в определенных количествах, а также соль, уксус и масло. Это означало, что для армии, состоявшей примерно из 25 тысяч солдат, каждый день нужно было обеспечить сбор и подвоз около 25 тонн зерна и ещё 7,5 тонны дополнительных продуктов для людей, плюс 13 тонн ячменя для примерно 10 тысяч лошадей и обозных мулов».

Представьте себе полвагона зерна, 20 коров, грузовик всякого добра, еще самосвал с ячменем для лошадей, цистерну пива, бочку уксуса (обязательно, иначе холера нападет) — и все это надо где-то взять, распределить и доставить по фронту.

Например, полевая хлебопекарня РККА.

Иногда даже целые тыловые узкоколейки строят для оперативного подвоза провианта, боеприпасов и солдат.

Австро-венгерские вооруженные силы и железнодорожный транспорт

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

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

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




Попросту говоря, это даже не военная служба, а военный фронтовой рэкет. Узаконенное дозированное контролируемое мародерство.

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

Прям получилась отдельная доктрина — Military Supply Chain Management. Там сказано, что Supply On-Demand или Just-In-time — слишком рисковая стратегия, всего нужно иметь про запас, много и рядом. Тогда только и можно воевать. Никакого тебе Toyota Way!

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

Становится понятно: с этим всем добром регулярная армия становится очень неповоротливойи медленно меняет свой план действий. Если же план и меняет, то адаптирует логистику заново. Первые дни солдаты живут на сухпайках, пока опять не подтянется весь обоз с провиантом и амуницией. Иногда из-за этого локальные командиры выполняют приказы с легким отклонением, чтобы всех прокормить и обуть.

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

И тут — никакого аджайла, никакой гибкости, никакого тебе welcome change. Ага, щаззз!

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

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

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

Формирования народно-повстанческих армий (спустя некоторое время — бандитские формирования)

Ключевой фактор успеха этих сил:

  • маленький размер! Не поймаешь быстро — «сквозь пальцы проскальзывают»;
  • фокусировка на месте, времени и на общей важной цели для всех (защитить себя и свое село, губернию или городок);
  • быстрое и маневренное изменение места дислокации, планов, методов и принципов группировок;
  • мгновенное проведение краткосрочных операций;
  • анализ поступающих данных от тех, кто повсюду и наиболее заинтересован в их победе — простые крестьяне, люди, которые все знают, молчат для врагов и все доносят повстанцам.

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

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

Не видя смысловой цели, данные группировки распадаются или выходят из-под контроля и общего порыва энтузиазма. Иногда они становятся просто бандитскими шайками или идут под другие знамена, чтобы продолжать быстрое обогащение, ставшее самоцелью. Когда той еды, что давали добровольно, уже не хватает, приходится отбирать ее силой. А там уже до простой жажды наживы рукой подать. Да, господа, дофамин очень подлый :) Кстати, про дофамин инженеров есть отличная статья: Dopamine Driven Development.

Так может быть с компанией, которая на пике своей звездной части Бостонской матрицы потеряла vision и увлеклась краткосрочными целями. При этом, не предусмотрев всех нужных функций и влияния окружающей среды.

Да, тут сложно все предвидеть, поэтому и существуют многие M&A сделки, или компании уступают конкурентам, или просто перестают существовать, «выпав» из успешного сценария. К примеру, Trello: Почему авторы Trello не смогли создать бизнес на 1 миллиард долларов. Они себя вовремя не монетизировали, а «хавчик» сам-себя не завезет же! Вот и рассыпалось отличное народное формирование, отличная продуктовая компания. Даже если бы начали «давать жару» изнутри, какое-то время бы просуществовали, но превратились бы в бандитов для самих себя. Что-то вроде Valve (Жуткая правда о Valve).

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

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

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

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

В данном случае на общих идеях не поедешь, потому что они у каждого свои. Это 4-7человек могли договориться о целях и миссии. А все остальные — очень разные, и их много. В результате все сводится к общечеловеческому узкому меркантильному кругу потребностей, вернее к пирамиде. Та, которая Маслоу, Маслоу и Хлебоу, как шутят некоторые. Все просто: быть сытым, размножаться, прославиться героем и верить, что так будет всегда. А после — издать книгу, лет через 40, если доживешь. Вот и вся пирамида. Правда, в огромной армии никому до этого нет никакого дела.

Спецназ

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

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

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

Помните Дэниэла Пинка? — Autonomy, Purpose, Mastery. Для спецназа эта часть особенно актуальна, потому что кроме желания «дайте деняк», они почему-то выбрали именно это занятие.

Daniel Pink, Drive, the surprising truth about what motivates us.

Но эти парни очень дорого обходятся.

Blackwater mercenary

Сначала они делают короткое задание, а потом, если его нет, тренируются. Причем без всякого Value и, к тому же, в полсилы. «А вдруг война, а я уставший?!». И если кто-то из этой маленькой группы уйдет, ее нужно сплотить по-новой. Исчезает «чувство локтя» и былая слаженность. Ужасно, но все это время им надо платить зарплату. Иначепойдут работать охранниками в супермаркетпойдут работать в другие формирования, у которых есть важное дело.

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

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

Какая команда может быть самоорганизованной?

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

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

Зачем именно Agile? Почему все туда бегут? В этом ли секрет успеха?

Agile manifesto хотели назвать Adaptive manifesto, но выбрали другое слово, чтобы не повторять название компании одного из его авторов. Представьте, что теперь манифест называется манифестом адаптивности.Давайте с этим жить.

Вызов бизнеса — сделать для кого-то что-то за деньги, и чтобы покупали еще больше. Победить конкурентов и продолжать расти, ведь остановить рост — означает, что конкуренты придавят тебя. Мир, конкуренты, клиенты и способы их восхищения постоянно меняются. И ты меняешься. Это кратко выражено в аббревиатуре V.U.C.A.

Чтобы придумать что-то новое в условиях регулярной вуки, давным-давно описали TRIZ, а консультанты включили его в SixSigma. Простыми словами — постоянно экспериментируй, и ты найдешь хороший способ решения задачи. По-другому это не работает. Так человеки и стали цивилизацией. Постоянно экспериментируя, погибая толпами или развиваясь в мощные империи. Это описано в нашей любимой книге Sapiens.

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

У нас есть уникальное свойство: мы мыслим гипотезами и абстракциями, когда нет точных данных и проверенного опыта. А даже когда есть, мы все равно его искажаем личной когнитивной системой. И называется это — когнитивные искажения.

На этой диаграмме 188 плохо изученных когнитивных искажений, выделенных на данный момент

У существ менее развитых — это умение проявляется в меньшей степени. А у нас — это способ быстрой эволюции. Но эволюция — это кто-то погиб, а кто-то адаптировался и стал сильнее. В общей массе.

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





Пока не покажешь это конечному пользователю, ты не узнаешь, что сделал.

Так часто бывает при разработке программного обеспечения. Это однажды подтвердилось исследованием Standish Group. Майклне верит этой статистике, но всякий раз, когда я спрашиваю своих студентов на тренингах, они подтверждают ее даже в бОльшем масштабе.

В основном, статистика касается Enterprise Solutions. В других проектах, признаю, она не такая драматичная.

О трансформации большой компании

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

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

Вот как это выглядит на схемах:

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

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

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

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

Всю эту «королевскую рать» по канонам традиционного менеджмента тянуть в одном направлении уже сложнее. Но давно появилось уже понятие командной работы. Для этого даже есть термин Team-Based organization. Рассмотрим его ниже.

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

Кому захочется детальнее разобраться, пояснения тут: V.U.C.A.хорошо объясняется через фреймворк Cynefin. Все-таки его сделал Dave Snowden, а он почти 20 лет работал (и продолжает работать) над проблемами tacit knowledge, часть этого времени проработал в IBM.

Для области разработки программного обеспечения, где значительную роль играет изменчивость и непредсказуемость технологического стека, все описанные в Cynefin Framework явления переложены на шкалы в Stacey Matrix.

Список известных малоизученных когнитивных искаженийя уже приводил выше. А основное различие целей индивидов и корпорации я попытался объяснить в своем выступлении еще год назад на Agile Rock 2018.

Почему Team Based Organization

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

Но почти сразу начинали появляться другие конкуренты, которые делали что-то лучше, быстрее или дешевле. И тогда светлым головам менеджеров нужно было придумывать что-то еще, чтобы быть эффективнее, дешевле или качественнее. Но одна голова хорошо, две лучше, а три — это уже «Змей-горыныч». И когнитивный потенциал многих людей стал значительно важнее интуиции умного и опытного менеджера. Поэтому побеждать стали те, кто научился работать в командах, доверяя друг другу, полагаясь на интуицию бОльшего количествава людей, объединенных одной задачей.

Прошу заметить — интуиция, это вполне ощутимый и различимый ресурс. Он зависит от количества релевантногоопыта в когнитивном аппарате того, кто решает задачу. Например, оценки сложности и длительности задач человеческий мозг всегда дает интуитивно. За это Daniel Kahnemanпремию получил. Нобелевскую.

Как это часто начинается, и как это лучше не делать

Тут нужно вспомнить о самом продаваемом фреймворке для ИТ команд — SCUM, ой, нет — SCAM, фу-ты, нет, конечно же, — SCRUM:)

Чаще всего происходило так, что босс большой компании прочел обложку знаменитой книги того самого Джеффа — Scrum: The Art of Doing Twice the Work in Half the Time. Дальше, конечно, читать не стал. И так же все понятно, чего время терять! Потом (или перед тем) послушал слащавые речи консультанта, и решил, что ему и всей его компании надо туда вместе с ним. Правда, сейчас он занят, пусть они сами пойдут первыми. На тренинги сходят и отчитаются о планах по внедрению скрама на следующие пол-года. Прямо все как в той статье про кактусы и розы.

Это же прикольно: чуть процессы поменял, и все, ты первый! Всех конкурентов победил и получил конкурентное преимущество.

Вы сирьознаа-а?

Я управлял мелкосерийной фабрикой кожгалантереи в соответствии с Lean, когда это еще не было мейнстримомкогда еще не знал, как это называется. Я построил один завод по переработке гранитного щебня в Польше и затем ликвидировал его. Сделал три контакт-центра, провернул немного «мелких афер» и начинал парочку не взлетевших стартапов.

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

Возьмем пример самоорганизованной школы, которую построил Alexander Neill.

Если кратко: уставший подросток вырос, повзрослел и создал школу-пансионат, где он не заставлял детей ходить на занятия. Безо всякого ущемления они играли, питались и отдыхали как все. Начинали ходить на уроки только тогда, когда сами этого хотели. Нормы в школе были такие, которые устанавливают сами ученики, и наказания они друг другу придумывали сами, если нарушали права и свободы других учеников. Например, не умываться можно и кричать в школе можно, но только до 21:00, чтобы малыши выспались. Чужой велик взял без разрешения? Ремонтируй свой и давай всем неделю кататься.

Но к общественному утопическому порядку и урокам они приобщались с разной скоростью. Иногда, чтобы ребенок или подросток стал самоорганизованным, прошел спираль молчания в школе (Спираль умалчивания. Канал Youtube Denys Ryzhykh) и принял негласные и гласные ценности других детей, проходило 4-7 месяцев.В сложных же случаях — до 2-хлет.

Были случаи, когда детей, которые не могут трансформироваться, отправляли назад. Чем более жесткой была среда, в которой он до этого находился, тем больше был срок трансформации ребенка (ортодоксальная семья, церковно-приходская школа, строгие гувернеры и т. п.).

У людей в командах тоже есть такой период адаптации. В течение него они не могут физически и психологически разделять ценности Agile-манифеста и быть true cross-functional and self-organized, self-governed, self-learning, self-managing и т. д. В это же время они тоже должны получать зарплату. И ее кто-то должен им платить, представляете?!

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

Преимущество выяснится по ходу работы. Просто подтвердится одна из гипотез, которые выдвинут ваши люди или вы. Но одной головой придумать сложно. Если у вас 20 людей и вам от них надо только рабочие часы, придумывайте гипотезы сами. Тогда эти 20 голов будут не задействованы в вашу пользу. Это все тот же D. Pink.

Вот как распределение мотивации (тот самый «драйв») выглядит на схеме

Схема «директивный менеджмент»:

А вот схема «Team Based Organization»:

Справедливые ожидания от Agile-трансформации

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

Если же посмотреть на это традиционным взглядом управленца, то в самом процессе будет множество «ненужных» действий и недозагруженных людей. Это нормально. Утилизировать «ресурсы» на 100% нельзя. Доказано здесь.

Повышение прибыльности и увеличение удовлетворенности клиента достигается тем, что снизу виднее, где какой Waste (Lean IT Waste) и как его лучше обойти.

А если научились Fail Cheap Fail Fast, то наверняка благодаря усилиям команды снизу. Уж никак не за счет усилий высшего менеджмента. Скорее вопреки.

Как измерять эффект от Agile-трансформации и как ею управлять

Agile — это делай больше полезных вещей и меньше бесполезных.

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

Красивая история описана здесь: «Что делать, если вас копирует Apple».

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

Так какое-же это конкурентное преимущество, где оно и в чем измеряется

Scrum.orgустал от того, что все вокруг пытаются измерить эффективность когнитивной работы в часах или стори-поинтах. Наверное, один из самых значимых моментов в 2019 году стал выпуск доктрины Evidence Based Management от scrum.org для команд разработки ПО. По ссылке есть документ, расписывающий все подробно.

Для читателей статьи приведу всего пару примеров из документа:

Key Value Measure: Current Value

......
Employee SatisfactionSome form of sentiment analysis to help gauge employee engagement, energy, and enthusiasm.
Customer Satisfaction Some form of sentiment analysis to help gauge customer engagement and happiness with the product.
Customer Usage IndexMeasurement of usage, by feature, to help infer the degree to which customers find the product useful and whether actual usage meets expectations on how long users should be taking with a feature.

Key Value Measure: Time-to-Market

......
Lead TimeThe amount of time from when an idea is proposed or a hypothesis is formed until a customer can benefit from that idea. This measure may vary based on customer and product. It is a contributing factor for customer satisfaction.
Time-to-LearnThe total time needed to sketch an idea or improvement, build it, deliver it to users, and learn from their usage.

Key Value Measure: Ability to Innovate

Feature Usage IndexMeasurement of features in the product that are frequently used. This helps capture features that are rarely or never used.
Innovation RateThe percentage of effort or cost spent on new product capabilities, divided by total product effort or cost. This provides insight into the capacity of the organization to deliver new product capabilities.
......

Последняя метрика вообще прекрасна. Этот показатель галантно и экологично намекнет, когда команда under capacity или over capacity. Но без указания причины. Разбираться опять нужно в контексте.

Представляете, какой это произведет эффект? К примеру, приходит big boss, достает тапок и начинает грозно стучать по столу, но в его гневных возгласах не всем привычные формулировки вроде: «Ааа-а! Ваша эффективность стала ниже! Вы делаете меньше стори-поинтов в спринт! Немедленно мне на стол отчет с последних ретроспектив! Пусть скрам-мастера отвечают за вашу эффективность!».

Вместо этого крики могут поменяться на что-то вроде: «Ааа-а! Наши клиенты стали менее счастливыми! А ну-ка покажите мне, как быстро наши гипотезы проверяются?! А почему у нас стало меньше fails + lessons learned за спринт? Ну-ка, пусть народ напряжется и сильнее коллаборирует с аналитиками рынка и владельцами продуктов, наш Feature Usage Rate стал подозрительно низким, скоро от нас уйдет последний клиент, где тогда я вам буду брать деньги на следующие эксперименты?!»

До scrum.org это явление описал Allen Hollub в своей статье.

Представили? Я — да. В GameDev это чаще происходит. А в связке — Customer-Vendor на проектах Enterprise Solutions — почти никогда. Вернее, я пока не встречал. Может у кого-то получится при in-house разработке, если опытный Agile Coach сопровождал рост команд и руководителей.

Какое конкурентное преимущество можно ожидать

А теперь о реальном конкурентном преимуществе. Его не получают те руководители, у которых не хватает решительности и денег, чтобы довериться и оплатить экспериментаторство команд.

Как это определить и в какой момент это обеспечить

Еще во время того, как вы договариваетесь с клиентом. Вот уровни планирования, описанные в различных Agile-фреймворках:

Как правило, big boss выражает свою гипотезу на уровне Vision и принимает участие в планировании бюджета на этапе Roadmap. С этого момента цели принимают форму Carved-in-Stone. В то время, как более адаптивные конкуренты их постоянно меняют.Бюрократии там меньше или доверия больше, разбираться уже надо на месте.

Если компания любого размера может смириться с тем, что на уровне Daily, Iteration или Release возникло что-то такое, что меняет не просто Roadmap, а и сам Vision, — эта компания имеет шансы опередить конкурентов еще и за счет адаптациипод собственные возможности и реалии VUCA World. В стартапах данное явление иногда приводит к такой значимой фазе, как Pivot. В Enterprise solutions это слабо возможно. Там просто OKRмогут пересмотреть. Но тоже может помочь.

Как начать Agile-трансформацию

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

1. Если вы сможете с командами регулярно обрабатывать вот такие шаблоныили такие,или такие, как на рисунке ниже, то есть шанс на конструктивный диалог с руководством.

2.A. Если руководство может сформировать внятную стратегию при помощи лаконичного Lean Canvas.

2.B. Если клиент сможет с вами как с подрядчиком заключить сделку при помощи такого лаконичного Lean Procurement Canvas, то конструктивный диалог в обе стороны получит еще больше шансов.

Если вместо Value Proposition с вами сразу пытаются обсуждать функциональные требования, техническое задание и заложить это все в контракт — от этого как раз и предостерегали создатели Agile Manifesto, когда описали 3 последних постулата.

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
© Agile Manifesto

Извините за Long Read — более лаконично не получилось. MVP по-другому не сложился, и Barely Sufficient-принцип здесь я не выдержал.

Буду внимательно читать комментарии и приглашаю всех к открытой дискуссии. Подписывайтесь на мои странички (LinkedIn, Facebook. Может там что-то интересненькое для себя найдете.

Predictive Software Engineering как шанс для аутсорса повысить качество услуг

$
0
0

[Сергей Кизян — СТО Intetics. 15 лет опыта в разработке ПО, магистр компьютерных наук в Винницком национальном техническом университете. Прошел путь от младшего инженера-программиста до СТО]

Многие компании отдают разработку программного обеспечения на аутсорс. От своих партнеров они ожидают высоких результатов и надежной работы, но в то же время постоянно находятся в неуверенности относительно сроков, качества и стоимости разработки софта. Чтобы снять это напряжение, аутсорсинговые компании должны предложить новый подход к оказанию услуг. В компании Intetics мы создали и используем фреймворк под названием Predictive Software Engineering (PSE), который устраняет «узкие места» в работе аутсорсеров.

Идея PSE

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

  • коммуникация с заказчиком на уровне компании.Весьма часто заказчик оставался один на один с командой и не чувствовал, что он работает с большой компанией, которой мы являемся. Пример: у нас были заказчики, которые приходили и прямым текстом говорили: «Мы не чувствуем, что вы заботитесь о нас как компания. Мы стакиваемся с проблемами и остаемся с ними один на один». Это приводило к весьма неприятным последствиям, которые было сложно устранить и вернуть доверие заказчика.
  • правильный репортинг от команды.У нас было много случаев, когда заказчик не совсем понимал или вообще не понимал, чем занимается команда. Он только надеялся, что все будет хорошо. Хороший результат в таких случаях тоже был не всегда. Обычно команда, которая плохо репортит, плохо и работает. Пример: у нас были менеджеры, которые оказались некомпетентны в своих проектах, и они сами были уверены, что дела на проекте идут отлично, даже в тех случаях, когда проект был на грани провала или был уже провален. Они на словах убеждали наш менеджмент и заказчика, что все отлично. Если бы они вели правильный репортинг с метриками, мы бы поймали проблему еще в самом начале, когда она только возникла.
  • отсутствие стандартных подходов.Мы увидели, что, невзирая на то что мы задекларировали определенные правила разработки и управления проектами в компании, не все менеджеры следовали им и не все понимали их правильно. Пример: знаком всем без исключения людям в нашей индустрии — внедрение Agile-процессов. Добиться, чтобы каждый человек понимал и делал так, как все сотрудники компании — очень сложно. Так и с другими процессами: их внедрение и стандартизация очень сложны, но результат того стоит, как и в случае с Agile-подходами.

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

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

Как работает PSE

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

Это пример формирования новой команды. До внедрения PSE у нас не было никаких метрик по найму для инжиниринг-департамента. Мы измеряли, как работает рекрутинг, но никогда не ставили никаких условий для инжиниринга. Что у нас получалось? Наши менеджеры старались выбирать лучших из лучших, и таким образом мы перебирали 40-50кандидатов на одну позицию! У нас возникла культура тщательного подбора, которая поначалу была весьма неплохой. Но по мере роста компании и усиления конкуренции на рынке труда и в работе с заказчиком (заказчики стали работать с несколькими компаниями одновременно) мы начали проигрывать нашим конкурентам. Конкуренты были более гибкие, нанимали быстрее, работали эффективнее, а наши менеджеры продолжали искать идеальных кандидатов. Проблему надо было решать быстро и кардинально.

Мы начали проводить беседы, делать тренинги, чтобы улучшить ситуацию, но это все не имело видимого эффекта. Единственное, что помогло — это введение процесса по найму и строгих метрик. На данный момент у нас есть процесс, который четко расписывает роли и ответственность в процессе найма. Вся его суть сводится к следующему правилу: на каждые десять подходящих резюме должен быть найм и/или каждые пять собеседований должны заканчиваться наймом. Мы строго измеряем каждый найм и следим за выполнением этой метрики. Те менеджеры, которые не следуют этим правилам, должны быть отстранены от найма на проект и заменены более эффективными людьми.

Это один из небольших аспектов, которые мы решали в рамках PSE, но его влияние на бизнес компании трудно переоценить. Таких процессов мы создали десятки, и они сформировали фреймворк под названием Predictive Software Engineering.

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

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

PSE не стал первой и единственной методологией для нашей компании — наоборот, это, можно сказать, дополнение к существующим мировым практикам. Для проектов мы используем методологии Agile. Это Scrum, Kanban, Lean SD — смотря что лучше подходит для конкретного проекта. Для управления компанией мы выбрали методику Disciplined Agile. Она дает рекомендации, что делать на высоких уровнях, чтобы быть Agile Enterprise. Ее мы приняли за основу, но потом поняли, что этого недостаточно. Недостаточно именно в условиях аутсорсинга, когда мы постоянно собираем команды, нанимаем новых людей, когда у нас меняются проекты, меняются заказчики, когда нам приходится каждый раз убеждать заказчика в том, что мы способны это сделать, что мы лучше конкурентов и т. д. Тогда мы поняли, что нам надо создать дополнительный фреймворк (надстройку над disciplined agile), который будет сфокусирован на проблемах и боли аутсорсинга. Мы начали работать над ним. И в результате сформировали свод правил о том, как руководить и как правильно создать порядок в аутсорсинге.

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

В чем ценность PSE для клиентов, компании, команды

PSE обеспечивает прозрачность, а также делает процесс разработки софта на аутсорсе управляемым и предсказуемым по своей сути. Первое, что необходимо понять клиенту, это то, как он работает. Поэтому мы проводим тренинг для всех клиентов о наших процессах. Раньше этого не было, и мы имели несколько случаев, когда на определенных проектах появлялись проблемы, которые должны были решиться с помощью PSE. Мы начали разбирать эти ситуации, и увидели две проблемы. Первая: наш менеджер не совсем понял наши процессы и выполнял их по-своему. Вторая: клиент был не в курсе изменений на нашей стороне и не понимал значение определенных процессов. Таким образом, не было правильного взаимодействия между компанией и заказчиком. После этих случаев мы решили проводить тренинги для всех наших клиентов о том, как мы собираемся управлять их проектом. Теперь клиент понимает, что такое PSE. Понимает, что методика создана именно для того, чтобы наша работа для него была более предсказуемой. С такой позиции недооценить PSE сложно.

С точки зрения компании, PSE привнес стандарты, лучшие практики, измерения и порядок. Конечно, мы не считаем, что PSE — это панацея. Есть много моментов, которые фреймворк не описывает или не затрагивает. Также, я думаю, многие наши процессы не идеальны. Поэтому мы всегда говорим, что PSE — не статичный фреймворк, мы его все время дополняем и адаптируем. Другим компаниям, которые начинают использовать PSE или думают об этом, мы рекомендуем адаптировать процессы PSE под себя. Наш личный результат таков: у нас уже не бывает, что работа на проекте зависит от одного человека или группы людей. Второй плюс от внедрения PSE — это разгрузка топ-менеджмента компании и возможность обратить взор вне компании, вместо того чтобы постоянно смотреть внутрь и «тушить пожары». Сейчас, если у нас возникает какая-то трудность, и ее можно решить правильным выполнением процессов PSE, мы просто направляем людей по процессам и учим их делать работу правильно. Мы учим людей решать проблемы системно и стараемся не внедрять частных решений.

Вот пример подобного решения: у нас был проект, где у клиента возникали постоянные жалобы на качество работы команды. Каждый раз, когда клиент жаловался, мы общались с ним по частному случаю и пытались понять, кто прав, а кто виноват. Параллельно у клиента была вторая команда, которую он считал сильнее нашей. В PSE есть целое направление, посвященное качеству и продуктивности. Мы пришли на проект, внедрили всевозможные метрики качества и продуктивности и начали измерять работу команды. На подобные измерения понадобились определенные ресурсы, но оно того стоило. После того как мы получили системные результаты, мы увидели, что наша команда работает весьма качественно и быстро, и что проблемы возникают, в основном, когда идет интеграция. Дальше заказчик попросил нас измерить его вторую команду. И мы увидели, что люди из нашей компании почти в полтора раза продуктивнее. Как результат, мы выделили ресурс в команде на постоянное измерение и поддержание метрик, и проблема была улажена раз и навсегда. Теперь заказчик видит все показатели работы и делает выводы из метрик, а не субъективных суждений.

Что дает PSE для сотрудников?Ответ очевиден. Давайте представим, что вы работаете в коллективе, где каждый за себя и нет четкой организации. Кто-то делает что-то правильно, кто-то — не очень. Через некоторое время вы понимаете, что такой коллектив не прогрессирует, и вы не развиваетесь в нем как профессионал. В целом, ситуация выглядит бесперспективно. Другое дело, когда вы приходите в команду профессионалов с четкими процессами. Каждый день вы учитесь у них и видите, что они тоже не стоят на месте и постоянно развиваются. PSE — это процессы, процессы — это порядок и законы нашей фирмы. Так же, как законы в государстве, мы меняем наши процессы и адаптируем их под реалии конкретного времени. Но основа остается той же. Все же хотят жить в государстве, где верховенствует право и граждане законопослушны. Это применимо и к компании. Первое применение PSE — фреймворк устанавливает правила и заставляет их выполнять.

Второе применение фреймворка — взаимодействие с людьми. Процессы, описанные в нем, помогают сотрудничать эффективнее. Это повышает качество работы и увеличивает удовлетворенность сотрудников.

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

Как вывод: PSE для людей — это упрощение их жизни в компании и порядок в деятельности. Поверьте мне, это те два момента, которых нам очень не хватает в современном мире.

Как происходит внедрение PSE в компании

Это достаточно сложный и трудоемкий процесс. Думаю, многие сталкивались с переходом компании на Agile-методологии. Те, кому пришлось пережить это, помнят, как было тяжело. Самое главное в таком переходе — заставить людей мыслить по-новому и отойти от устоявшихся стереотипов. Это очень сложная задача, требующая усилий на всех уровнях управления компанией включая топ-менеджмент и СЕО. Если у менеджмента нет такого желания, процесс будет провальным с самого начала. PSE — это, можно сказать, надстройка над Agile-процессами, и его внедрение не так уж сильно отличается. В первую очередь, нужно иметь решение руководства компании о внедрении новых процессов. Дальше необходимо адаптировать PSE-процессы для нужд конкретной компании. Мы стараемся писать обобщенные процессы, которые могут быть адаптированы для конкретной компании с большей эффективностью.

Хороший пример — наш процесс и метрики по рекрутингу. Нам подошли цифры 10 резюме и один найм, а у кого-то будут другие цифры. В нашем случае мы описываем, что ответственность за найм несет деливери-менеджер, у другой компании это может быть специальный отдел или рекрутинг компании. Специфика разная, но найм есть в любой компании. И этот процесс необходимо стандартизировать. Иначе результата не будет. Вот об этом PSE. Мы выделяем стандартные моменты в деятельности аутсорсинговой компании и создаем процессы, которые их стандартизируют и делают эффективными.

В нашей компании все началось с импульса от руководства. Основатель и глава Intetics является идеологом PSE, так что он в первую очередь был заинтересован в его практической имплементации. Я продолжил начатое президентом, и вместе с командой коллег мы дописали и довели до конца идеологию PSE вместе со всей библиотекой процессов. Следующим шагом был тренинг для всех сотрудников компании о том, что же такое PSE. Я несколько месяцев объезжал все наши офисы и собирал сотрудников на тренинги по PSE. Мы должны были убедиться, что все в компании понимают, какие наши процессы и как им следовать. Это очень нелегкая задача, но совместными усилиями мы справились. У нас было много сессий и итераций, как и в любом другом Agile-процессе. В принципе, работа над PSE не останавливается никогда. Мы постоянно доделываем процессы, дополняем библиотеку процессов новыми и т.д.

Решает ли PSE все проблемы аутсорсинга

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

Мы создали веб-сайт, где будут опубликованы все статьи и процессы по PSE. Их можно будет прочесть в публичном доступе и начинать внедрять описанное в них в своих компаниях. Также мы сделали открытое комьюнити, куда приглашаем всех желающих. Наша коллега Сандра Шнейдер — лидер этого комьюнити. Все желающие специалисты и компании могут добровольно присоединиться к созданию и развитию PSE. Этому фреймворку нужна реклама и поддержка не только одной компании для того, чтобы он стал стандартом индустрии. Это наша цель, мы хотим, чтобы все больше и больше компаний начинали использовать принципы и процессы PSE.

Что дальше

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

Когда в сутках достаточно часов, или Почему стоит научиться грамотному планированию

$
0
0

[Павел Обод — основатель Growth Factory — обучающей платформы для IT-предпринимателей, организатор конференции Outsource People, CEO Sloboda Studio — RoR agency]

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

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

Планирование: почему и зачем

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

Как хаотичному человеку, мне очень нужно планирование. Соотношение удовлетворенностью результатами спланированного и хаотичного дня по ощущениям — примерно 10:1. Часто план даже не обязательно записывать — достаточно, что он есть в голове и задает структуру будущего дня.

Почему, на мой взгляд, люди не планируют:

  • Не умеют и не знают, как это делать.
  • Не понимают, как это использовать.
  • Не хотят себя напрягать, ограничивать.
  • Заменяют результат процессом: «Я буду что-то делать, и что-то получится». Потом вы полдня проверяете почту, а денег все так же нет.
  • Наша человеческая природа — отчасти против планирования. Миллионы лет существования человечества никаких планов мы не составляли.

Есть мнение, что только 10% людей пишут планы, но 90% из них — самые успешные и богатые. Мне кажется важным, что планирование коррелирует с достатком. Наверняка есть богатые люди, которые не планируют свое время. Но тем, кто добивается успеха своими усилиями, в том числе с помощью бизнеса — очень полезно планировать.

Зачем я планирую свое время:

  • 10 минут планирования экономят мне несколько часов работы за счет расстановки приоритетов.
  • Спокойствие и фокус — иногда я тревожусь, что забыл что-нибудь важное. Выписать все свои задачи по приоритету на обычном листе А4 очень успокаивает и упорядочивает.
  • Планирование помогает явно расставить приоритеты, например, по принципу Парето 20 на 80.

Планирование на день

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

Поэтому у меня договоренность с Сашей Гаврилюк (моим партнером по проекту Growth Factory Academy), что до 10 утра я скидываю ей свой план на день. Гораздо легче придерживаться дисциплины, когда другой человек помогает ее контролировать. Если не присылаю план вовремя — то перечисляю деньги в пользу благотворительной организации.

Мой план на день выглядит примерно так:

Задачи я распределяю по приоритетам A, B, C.

Buffer — время на те задачи, которые появляются в течение дня.

Watchdog — задачи, выполнение которых нужно проконтролировать за другими людьми.

Entertainment — разные веселые ссылки, которые мне присылают.

Small — мелкие таски, которые нужно не забыть сделать, тоже с приоритетами A, B, C.

Итак, мои принципы составления списка:

  • Не привязываться ко времени.
  • Заполнять до 10:00 ежедневно.
  • Заносить в него задачи, которые занимают порядка 30 минут. Более крупные — делить, мелкие — укрупнять.
  • 40% времени оставлять свободным на случай непредвиденных дел.

Такой подход называется гибкое планирование — мои задачи не привязаны ко времени.

Раньше я был очень против планирования с жесткими привязками ко времени — зачем прописывать все это в календаре, если потом обязательно случится какая-то незапланированная фигня? И она случается. Но планировать все равно важно. Как и смиряться с тем, что иногда запланированное выполнено на 10%.

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

Можно оставить пустые окна на случай срочных задач.

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

Если в течение дня все же случилась какая-то фигня и забрала у вас полдня — то вы просто садитесь и снова переставляете блоки времени.

А главное — иметь немного буддистскую уверенность в том, что все равно всё ты не успеешь, и главное — успеть сделать важное.

Карта жизни

Один из инструментов, которым я активно пользуюсь — это карта жизни. Я делаю ее примерно с 2009 года. Никакой мистики, она просто работает как элемент целеполагания. Такой картой вы ставите себе наглядные цели — чего бы вы хотели достичь в течение 2-3-5-10 лет.

В классическую карту жизни включают такие пункты:

  1. Бизнес/работа — лучше писать конкретные цифры/показатели, которые отражают желаемое состояние, например: количество сотрудников, новый офис, направление или бизнес.
  2. Духовное развитие — не обязательно речь о мистике или религиозных целях. Это внутреннее состояние, которого вы стремитесь достичь.
  3. Семья ваших родителей и что бы вы хотели для них сделать.
  4. Путешествия и учителя/менторы — страны, в которых вы хотите побывать. Менторы, с которыми хотите пообщаться — тоже здесь.
  5. Обучение — это и классическое образование, и языки, и бизнес-образование.
  6. Творчество и дети. Они объединены в один раздел. Это любое творческое развитие, например театр или музыка. Тут же — что бы вы хотели сделать для своих детей и любые социальные проекты в помощь детям.
  7. Личная жизнь — дети и родители уже были в предыдущих пунктах, а здесь — ваша супруга/супруг, отношения, понимание, путешествия вдвоем. Даже если у вас есть дети — отдых без них тоже иногда нужен.
  8. Материальные вещи — такие как машина, дом, квартира, гаджеты.
  9. Здоровье — разные виды спорта, активности, в которых вам бы хотелось участвовать.

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

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

Посчитаем затраты времени

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

ВсегоСобственник бизнесаСотрудник своего бизнесаСпортсмен/Здоровый человекМуж и отецСынСтудент
100%10%40%15%15%10%10%
часов936141499

Количество свободных часов в неделю я считал исходя из 7 часов сна в сутки плюс 4 часа на текущие дела — еда, транспорт и т.д. У меня остался 91 час, которым я реально могу распоряжаться. В вашем случае эта цифра, вероятно, будет другой, зависящей от индивидуальной ситуации.

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

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

Как это работает для меня

Сейчас у меня порядка 6 проектов, которыми я активно занимаюсь. Больше всего времени уходит на Growth Factory Academy, в частности, сейчас очень много времени требует подготовка к январскому Growth Factory Academy Camp.

Второй мой проект — своя IT-компания Sloboda Studio. Сейчас она требует не так много времени — там прекрасный операционный директор.

Третий — учу немецкий язык.

Четвертый — спорт — бег, альпинизм, раз-два в неделю йога и иногда плавание.

Пятый — активно занимаюсь инвестированием.

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

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

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

В целом жизнь выглядит как жонглирование: уделяешь время детям — не хватает на здоровье, уделяешь здоровью — забираешь у работы или образования.

Мне очень нравится идея, которую, я надеюсь, вы вынесете из этой статьи: не говорить «У меня нет на это времени», а говорить «У меня другие приоритеты».

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

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

Итог

Если вы решили попробовать планирование, советую подход «от крупного к мелкому» по такой схеме:

  1. Подумайте, что вы хотите видеть в жизни через 3-5лет и любым способом визуализируйте это. Мне удобно пользоваться структурой «Карты жизни» — она разносторонняя и наглядная.
  2. Посчитайте, сколько времени в неделю у вас занимают разные роли и подумайте, как вы хотели бы распределить это время через 2-3 года.Запишите желаемое распределение.
  3. Составляйте план на каждый день с распределением задач по приоритетам и старайтесь выполнить хотя бы самые важные дела.
  4. Нельзя успеть всё, но можно успеть очень многое — гораздо больше, чем без планирования.

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

Мотивація програміста. Як приборкати внутрішню мавпочку

$
0
0

Після тридцяти (а в декого й раніше), коли для нових проектів є вже все: і вміння, і час, і можливості, раптом виникає ситуація, що усього того, що планував на життя, усіх тих проектів, які стриміли попереду дороговказною зіркою, раптом перестає хотітися взагалі. Енергія, що раніше текла бурхливим потоком, з’являється зовсім ненадовго. І в короткі миті просвітлення хочеться тільки одного: знову чітко знати, чого хочеш. Хотіти хоч чогось.

Багато людей у цей період пускаються берега: записуються в секту, їдуть до Індії шукати гуру чи купують кілограмами мотиваційну літературу. Якщо ви колись почувалися так, заощадьте трохи часу й грошей і прочитайте спочатку цю статтю.

Якщо поки ні, то трохи інформації про те, як працює наш мозок, вам теж не завадить. Хоча б для того, щоб розуміти, що відбувається з оцими всіма «вигорілими» навколо, і не перетворитися на одного з них.

Мотивація сама собою виникла на світанку історії, коли одні люди (яких потім назвуть пролетаріатом) почали працювати на інших людей (яких потім назвуть злісними експлуататорами). І від самого початку цих відносин «експлуататорів» почало цікавити, як примусити «пролетаріат» працювати більше й краще, але водночас особливо їм не платити. Це й назвали мотивацією.

Спочатку основним мотиватором було насильство

Не будеш працювати — дістанеш нагайкою по ребрах. Або крокодилам тебе згодуємо, якщо що. Пізніше до мотивацій додалися платня, тривалість робочого дня, наявність відпустки — і так аж до сьогоднішніх безоплатних масажів і зустрічей із СЕО за обідом.

Але незмінним лишалося одне: для мотивації потрібні двоє. Є рабовласник, а є раб. Є власник фабрики, яка виготовляє деталі, і є робітник, який готовий ці деталі робити за певну винагороду. Саме на такому підґрунті побудовано більшість наукових теорій мотивації, які розглядають різні способи примусити робітників працювати більше й краще.

Але двадцять перше століття разом із глобальним потеплінням та інстаграмними сторіз принесло ще один доста парадоксальний концепт — самомотивацію. Тепер робітникам доводиться самим не тільки працювати, а ще й мотивувати себе! Дуже зручно, чи не так?

Відсутність бажання працювати тепер вважають за хворобу. Лікувати її пропонують книжками й відеозаписами виступів «гуру мотивації», а закріплювати прогрес — читанням «надихаючих цитат» відомих людей, бажано поверх чорно-білих фотографій із Джейсоном Стейтемом на тлі новенького «ферарі».

На перший погляд, звучить абсурдно. Адже бажання мотивувати себе до чогось автоматично передбачає наявність бажання це робити, інакше для чого мотивуватися? А якщо ти вже хочеш це зробити, то для чого тобі мотиваційна література? Просто бери й роби, ні?

Повсюдно рекламований «вихід із зони комфорту» й узагалі відгонить мазохізмом. Людям, яким конкретної миті «комфортно», пропонують із цього стану вийти й навмисне погіршити собі життя, щоби їм, бачте, чогось захотілося. Може, якщо чогось не дуже хочеться, то не дуже то й треба?

Що ж, насправді, звісно, не все так просто. Увесь цей абсурд має цілком просте пояснення, якщо ми згадаємо, що в будь-яких стосунках, де є місце мотивації, є два учасники. Фабрикант і пролетарій. Замовник робіт і виконавець. Хоч як це дивно звучить, але в самомотивації учасників теж двоє.

Ілюзія контролю

Фабрикант у цьому разі — ви самі. Те, що ви вважаєте собою, принаймні. Кора головного мозку — невеличка надбудова, призначена для пристосування до різних умов і причетна до виникнення мови, культури, ядерної зброї й мови програмування Piet, де програмний код нагадує картини абстракціоністів.

Другим учасником — робітником, виконавцем усіх завдань — є ваш організм, включно з усіма іншими, древнішими частинами мозку. Правила, за якими він працює, формувалися мільярди років і мають у собі частинку всіх наших попередників, аж до перших одноклітинних. Найбільше, звісно, ми успадкували від наших прямих предків, тому мені подобається уявляти собі цю нашу частину як симпатичну мавпочку.

Попри впевненість кори у своєму домінуванні, численні дослідження показують, що цілковита більшість наших рішень іде саме від мавпочки, незалежно від нашої свідомості. Якщо говорити про Канеманівське «швидке» й «повільне» мислення, то на її плечах лежить 100% «швидкого», тобто десь 99% наших рішень протягом звичайного дня.

Ну хоча б «повільні» рішення ми ухвалюємо самі? Так. Але й ні. Тому що, зрештою, будь-який ланцюжок логічних думок рано чи пізно натикається на факт, що жодне з наших рішень не має жодного сенсу, різниці між нашими життєвими виборами немає ніякої, а ще рано чи пізно всі помруть і навіть сам Усесвіт закінчить свою історію тепловим колапсом. Тому будь-яке питання через вервечку логічних перетворень зводиться до головного: «Вбивати себе зараз чи зачекати, поки вийде новий сезон улюбленого серіалу?»

Тут нам на допомогу приходить мавпочка, яка викидає дурні думки з голови й скеровує роздуми в потрібному їй напрямку. Ми цю мить називаємо емоціями й часом ставимося до неї доволі скептично, мовляв, одні проблеми від них. Проте хворим на клінічну депресію, коли мавпочка хворіє, тільки й лишається валятися в ліжку цілими днями, навіть за повного збереження раціонального мислення. Адже, як ми вже зрозуміли, ні бажання, ні мотивація нічого раціонального в собі не мають.

Звісно ж, наша свідомість не хоче визнавати своє підлегле становище й часто намагається раціоналізувати дії мавпочки, приписуючи їх собі. Наприклад, в одному експерименті людей гіпнотизували й примушували лягати на підлогу. Коли їх питали навіщо, ніхто не відповів: «Не знаю, що на мене найшло». Втрачати контроль над собою страшно. Тому один поважний чоловік «вирішив оцінити, наскільки в кімнаті м’який килим, щоб купити собі такий самий». А порядна матрона, виявивши себе на підлозі, заявила, що «просто перевіряла, як добре в кімнаті прибирають».

У середині ХХ століття лікарі навчилися лікувати епілепсію, розрізаючи мозолисте тіло й розриваючи зв’язок між двома півкулями головного мозку. Водночас свідомість лишається тільки в одній півкулі, а друга половина мозку зостається повністю функціональною, продовжуючи керувати своєю половиною тіла. Таке бузувірство допомогло їм, зокрема, провести низку захопливих експериментів.

В одному випадку лікарі просили хворих закрити одне око, кероване півкулею зі свідомістю, і показували картинку-жарт. Друга півкуля жарт розуміла, і хворий починав сміятися. Але свідомість не знала, звідки такі емоції. Тому, коли лікар запитував: «Із чого сміємося?», хворий відповідав, що оце просто зараз пригадався смішний анекдот або що краватка в лікаря, виявляється, дуже веселого кольору. Просто сміхота.

Ситуація, коли ми ніби чогось хочемо, але водночас потребуємо мотивації, дуже схожа. Кора головного мозку тоді вважає, що треба щось робити, але мавпочка, не довго думаючи, накладає на це рішення вето. І це насправді досить прекрасно.

Наша кора дуже молода за мірками еволюції: їй усього кілька сотень тисяч років. Конкретно наш досвід, на основі якого вона намагається ухвалювати якісь рішення, і взагалі обмежується кількома десятками років. Суто статистично мавпочка краще знає, що нам насправді треба в абсолютній більшості випадків. Звідси випливає доста парадоксальний, як для статті про мотивацію, висновок: якщо вам чогось не хочеться — отже, на це є серйозна причина.

Куди розумніша за вас істота вирішила цього не робити. А хто ви такі взагалі, щоби сперечатися з кимось, на сто мільйонів років старшим за вас? Не виходить вам чимось зайнятися? Ну й не треба, значить. Відкладайте ту книжку, згортайте мольберт і закривайте Курсеру. Підіть натомість поспіть.

Хотілося б і закінчити статтю на цьому «позитивному моменті», але насправді є один нюанс. Існує щонайменше два чинники, що нівелюють усю мавпоччину мудрість, яку вам, як розумній корі, доведеться компенсовувати кожного бісового разу.

Чому не варто покладатися на мавпу

По-перше, мавпочка занадто стара. Її досвід, її завчені й передані вам у генах правила мали сенс мільйони років тому. І сотні тисяч років тому. А то й десятки. Але сучасна епоха рухається вперед настільки шаленими темпами, що еволюція як основне джерело знань мавпочки просто не встигає оновити операційку. Тому дані, зашиті у вас генетично, можуть бути не те що не корисними, а можуть і шкодити!

Мавпочка кидає вас на солодощі й калорійну їжу, не знаючи, що в наших умовах ожиріння вбиває більше людей, ніж голод. Мавпочка заощаджує енергію, коли її варто витрачати на повну. Умикає режим «бий або тікай» у ситуаціях, які в сучасному світі прийнято вирішувати діалогом. Та й взагалі досвід мисливця чи збирача ягід дуже важко переноситься на життя білого комірця в мегаполісі. Звідси такий високий рівень депресій і психічних розладів попри високий рівень життя.

Але й це ще не найгірше. Ураховуючи, що мавпочку всередині має абсолютно кожен, її слабкостями давно навчилися користуватися різноманітні шахраї: маркетологи, політики, релігійні сектанти й навіть продавці пилососів. Є цілі підручники про те, як викликати в жертви ту чи ту емоцію. Правильно підібраний набір лозунгів може примусити цілі нації божеволіти і вбивати людей у промислових масштабах або обирати на виборах популістів, що приводять державу до незворотного краху.

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

І от у деяких випадках виходить так, що кора, обдумавши теперішню ситуацію, вважає, що треба щось робити. А мавпочка опирається. Річ у тому, що недостатньо ухвалити якесь рішення, а треба ще пояснити його мавпочці. Перекласти зрозумілою їй мовою. Довести мавпочці корисність наших цілей.

Уся наука про мотивацію — своєрідний перекладач з людської мови на мавпячу

Ну справді, скажете ви, придумаєш таке! Не вистачало мені ще з якоюсь мавпою всередині миритися. Як не буде слухати, можна ж примусити її. Узяти себе в руки, зібрати всю силу волі. Зробити ривок.

Так, звісно, можна. Тільки дуже ненадовго.

Ви, напевне, не раз чули про експеримент із зефірками, коли дітей просили потерпіти й не їсти солодощі зараз в обмін на більше солодощів у майбутньому. Дослідники простежили за майбутнім цих дітей і виявили, що ті, хто зміг утриматися від спокуси, досягли потім у житті куди більше. Вдалий приклад того, як сила волі допомагає нам досягати високих результатів у житті...

Насправді не зовсім. Інші дослідники копнули трохи глибше, і виявилося, що діти, котрі змогли себе стримати, були просто з багатших сімей. Для них солодощі були звичною річчю, як і довіра до батьків. Бідніші діти натомість знали справжню ціну обіцянкам і правильно вирішували, що краще брати, що дають, поки воно є. Особливо якщо це щось настільки незвично смачне. Ну а результат експерименту просто показував, що в багатших батьків діти досягають більшого. Уже не так цікаво, правда?

Горезвісне тренування сили волі — нонсенс

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

До того ж примушування себе до роботи взагалі не працює для творчих процесів, які потребують координації всіх відділів мозку. А без творчих прозрінь жодного прогресу досягти неможливо ні в навчанні, ні в реальній роботі, якщо вона у вас хоч трохи складна. Результат завжди буде лінійно залежати від кількості витрачених зусиль і впаде на нуль, щойно ви добряче стомитеся.

Натомість, коли бажання йде зсередини, людський організм здатен на справжні подвиги. Люди підкорюють полюси, засновують і розвивають багатомільярдні бізнеси, пишуть операційні системи й літають у космос. Водночас мотивація тільки підсилюється після кожного етапу, починаючи своєрідну ланцюгову реакцію, у якій результати роботи ростуть за експонентою. Адже плисти за течією куди простіше, ніж постійно гребти проти неї.

Як же тоді взаємодіяти з мавпочкою і як пояснити їй потрібність цілей, визначених корою? Для цього спочатку треба зрозуміти, як мавпочка мислить і якими правилами користується, щось вирішуючи.

Найпростіший стимул — негативний

О так, еволюція не любить слабаків, і між пряником і батогом в абсолютній більшості випадків вибирає останній. Пішов кудись не туди? Загруз у болоті, задихнувся й помер. Поїв не тих ягід? Отруївся й помер. Не дав ради з мамонтом? Тримай бивень у живіт. Привіт, смерть.

Але, звісно, цього недостатньо. Слабкі особини, може, і вимерли, але як сильнішим знати, що можна робити, а що ні? Тут на допомогу приходить моделювання майбутнього.

Джеф Хокінс, автор відомої книжки «Про інтелект», стверджує, що все наше мислення — не більше ніж постійне передбачення майбутнього й безперервна перевірка цих гіпотез на практиці. Але деколи результати моделі й перевіряти-то не хочеться. Якщо ти впевнений, що в цьому озері крокодили, не варто туди лізти взагалі. Якщо ти знаєш, що після втрати роботи помреш голодною смертю на вулиці, краще тобі не байдикувати на робочому місці.

Саме через потужність негативного стимулу став таким популярним підхід «вийти із зони комфорту». Адже часто ми опиняємося в ситуації локального максимуму, коли кожен крок за межі гарантовано погіршить ситуацію. Потім, за якийсь час, стан речей унормується та зрештою стане навіть краще, ніж було до того, але страх перед цим перехідним періодом паралізує мавпочку й не дає їй зробити ні кроку.

У ці миті дуже важливо зробити оцей короткий ривок, кинути себе у воду й не залишити мавпочці жодного шансу повернутися туди, де тепло. Тоді вона, зрештою, вигребе, бо виходу вже не буде. А ви тим часом досягнете своєї мети. Ну або зрозумієте, що не дуже вона вам була й потрібна. Теж хліб.

Рутина — це зрозумілий мавпочці мотив

Якщо щось повторюється з дня в день, отже, воно має сенс. Якщо ми вибирали щось щодня й досі живі, цей вибір має бути правильним. Мавпочка взагалі не любить думати. Мозок і так витрачає непропорційно багато енергії, тому менше думок — вищий шанс на виживання. Робити те, що робив учора, не задумуючись — ідеальний приклад такого заощадження.

Учення Дао стверджує, що для вироблення якоїсь звички потрібно повторити потрібну дію щонайменше сто разів. Сучасні психологи зазвичай обмежуються тридцятьма днями. Якщо цілий місяць ви повторювали якийсь процес, то тридцять першого дня примушувати себе вже не доведеться.

Окрім регулярності, мавпочка непогано вміє прив’язуватися до часу доби. Якщо ви кілька тижнів робили розминку о восьмій вечора, а потім один раз пропустите, десь о дев’ятій м’язи вам почнуть натякати, що щось у цьому житті йде не так. Те саме працює з їжею, зі сном, роботою й переглядом серіалів.

Ба більше, тренуватися короткими, але частими інтервалами набагато ефективніше працює для закріплення якоїсь навички, ніж робити довші сесії, але рідше. Самі плюси, одно слово.

Проте рутину ще треба встановити, а перші кілька разів ви, швидше за все, зіткнетеся із серйозним спротивом мавпочки. Особливо якщо вона не до кінця розумітиме, навіщо вам здалися ті м’язи, нова робота чи роман про космодесантників-зомбі. Може, краще заощадити енергію й залізти в редит? Там допаміном, кажуть, годують...

І тут дуже важливо зрозуміти правила, за якими мавпочка вирішує, що їй потрібно в цьому житті, а що ні. Вони, на щастя, дуже прості.

Як ми вираховуємо користь від дії

Корисність певної винагороди, яку для себе вираховує мавпочка, прямо залежить від потрібності і ймовірності отримання цієї винагороди. І обернено пропорційна ціні її досягнення. Я навіть формулу оце намалював, щоби вдати, що стаття хоч якоюсь мірою наукова. Ось, милуйтеся:

Пройдемося пунктами. Із ціною все зрозуміло. Якщо вам до спортзалу їхати годину громадським транспортом, то ходитимете ви туди куди рідше, ніж коли спортзал розміщено у вашому будинку й, щоб потрапити туди, достатньо спуститися ліфтом.

Працюють навіть абсурдні оптимізації: досвідчені педагоги радять батькам, діти яких уперто відмовляються робити домашку, просто розкласти всі зошити й підручники на столі розгорнутими. Тоді бажання дітей щось робити зростає практично вдвічі. Адже мавпочка всередині них вважає, що половину роботи вже зроблено й залишилося зробити один останній ривок.

Імовірність досягнення — трохи складніший концепт. На перший погляд, мавпочка взагалі з відсотками не дружить: імовірність побачити динозавра на вулиці п’ятдесят відсотків (або побачиш, або ні). Звісно, числа — це занадто важко для мавпочки, але якраз імовірності вона рахує доволі непогано. Просто формулюються вони мовою мавпочки трохи інакше.

Для того щоб зрозуміти, наскільки ймовірною ви оцінюєте подію, уявіть, що вона сталася, і замисліться, наскільки ви здивуєтеся? Нехай одного жовтневого ранку просто після вашого виходу з дому почнеться дощ. Ви дуже здивуєтеся? Та навряд. Імовірність дощу восени доста висока. А якщо дощ почнеться в лютому, після двох тижнів мінусової температури? Це здивує вас трохи більше. А що як дощова хмара матеріалізується безпосередньо у вашій спальні?

Гроза у вашій квартирі, як і поява динозавра на вулиці, не просто здивує вас: ви, найпевніше, у це не повірите, списавши на якісь кінематографічні ефекти. Це означає, що ймовірність такої події для вашої мавпочки — надзвичайно низька. І аж ніяк не п’ятдесят на п’ятдесят.

Але як мавпочка визначає цю ймовірність, особливо для досягнення тієї чи тієї мети? Для цього в неї є кілька критеріїв.

Самооцінка: підпишіться на Ілона Маска

У голові кожної людини є чітке уявлення про те, що вона може, а що ні. Часом це уявлення може бути викривлене (12% американських чоловіків вважають, що зможуть узяти гейм у грі із Сереною Вільямс), а часом — вигнуте в протилежний бік («та чого я туди резюме слатиму, я ж тупий»).

Як правильно себе оцінювати — тема для іншої статті, а тут лише скажу, що самооцінка теж підвладна ланцюговій реакції. Після перших перемог уявлення про себе росте, а це зі свого боку підіймає рівень цілей, які ти перед собою ставиш, а заразом і результати. І, звісно ж, навпаки: після кількох поразок самооцінка падає, а з нею і цілі, і результати.

Велике значення мають успіхи групи, до якої зараховує себе мавпочка. Причому розміри групи обмежені зверху числом Данбара: сотня-дві, не більше. Саме тому, до речі, навчання в топових університетах значно корелює з подальшими успіхами навіть для тих, хто вчився так собі. Знань ти можеш і не здобути, але бачити, що люди, подібні до тебе, отримують роботу в топ-корпораціях, засновують стартапи й реалізують амбіційні проекти — надзвичайно важливо для віри в те, що й у тебе вийде не гірше.

Так само впливає й негативний чинник. Якщо ти «найрозумніша мавпочка в кімнаті», отже, прагнути особливо й нема чого. Представники групи, з якою ти себе асоціюєш, вважає мавпочка, зазвичай нічого вищого й не досягають. Тому дуже важливо вчасно рухатися вперед, не затримуючись у середовищах, які тягнутимуть тебе донизу.

Якщо ти не можеш просто сьогодні затоваришувати з Ілоном Маском, не переживай. Часом достатньо підписатися на його інстаграм. Як показують дослідження, мозок реагує на фотографії знаменитостей так само, як і на фотографії власних друзів. Логіка проста: я бачу когось щодня, отож це мій знайомий. Відповідно, представник моєї групи. А раз він може посилати ракети в космос, то і я одного дня зможу.

З чітким планом — простіше

Звісно, самого чужого прикладу недостатньо. Для високої ймовірності досягнення якоїсь мети мавпочці життєво потрібно розуміти, як саме ми зібралися її досягати. Процес із чіткими інструкціями підсвідомо здається простішим, ніж «піти туди, не знаю куди й отримати те, не знаю що».

Ба більше, коли перші кілька пунктів плану вдається виконати, імовірність досягнення зростає шаленими темпами. Якщо тобі вдалося залізти на вербу, то й груші з неї ти знімеш без зайвого напруження.

Особливості розрахунку ймовірності мавпочкою дуже люблять маніпулятори. Практично нульова ймовірність отримання виграшу в лотереї нам такою не здається, бо новини постійно розповідають історії переможців. Є й тонші стратегії. Якщо для отримання певної знижки треба купити десять товарів, то картку, на яку ставити штампи, обов’язково видадуть із дванадцятьма полями, два з яких уже відмічено. Мовляв, прогрес уже почався, дивися, усе реально!

Проте навіть висока ймовірність досягнення якоїсь мети зовсім не означає, що мавпочка нею зацікавиться. Можна легко підняти на вулиці й принести додому випадковий камінь. Можна дуже просто вивчити мнемонічне правило, щоб відрізняти між собою рознімачі на старих мікросхемах. Кажуть, навіть можна доста швидко навчитися дихати ротом і носом одночасно. Але навіщо?

Про різні види потреб і їхню класифікацію є кілька десятків повноцінних теорій, з книжками, захищеними дисертаціями й цілими школами послідовників. Ви, швидше за все, чули про одну з них — так звану піраміду потреб Маслоу. Її означення, звісно, було проривом, але пізніше виявилося, що ця модель абсолютно непридатна для використання в повсякденному житті.

Категорії, згадані там, занадто розмиті, нечіткі й банальні. Їхнє розташування в піраміді, з одного боку, передбачає залежність кожного рівня від попередніх, а з іншого — додаткові матеріали недвозначно натякають, що ніякого базування насправді немає, кожен рівень існує незалежно й сам собою. Голодні художники Парижа міняють на самовираження всі попередні рівні аж до базового. Опитані в Німеччині старші люди абсолютною більшістю схиляються до того, що вони б радше терпіли фізичний біль, ніж самотність. Ну й таке інше.

До того ж затятий ідеаліст Маслоу деколи занадто добре думав про людську істоту й мавпочку, котра сидить усередині неї.

Натомість я пропоную вам інші три категорії, ознаки яких кожен може знайти у своїх повсякденних рішеннях і стосовно яких значно простіше оцінювати свої прагнення. Категорії ці абсолютно не залежать одна від одної, їх задоволення відбувається одночасно й паралельно. Але кожна з них головно впливає на те, чи вважатиме ваша внутрішня мавпочка вашу мету хоч трохи корисною.

Еволюція: розмножитися й вижити

Починаючи від перших одноклітинних та аж до сьогодні в кожного із живих організмів є ці два завдання. Усе, що пов’язане із цими двома цілями, мавпочка автоматично вважає важливим.

Бажання вижити мотивує працю більшості населення земної кулі. Не побудуєш будинок улітку — узимку замерзнеш. Не підеш сьогодні на завод — утратиш роботу, а за тиждень помреш від голоду. І твої діти помруть, перетворюючи на прах усі твої зусилля розмножитися.

З кожним роком ситуація у світі поліпшується, а некваліфіковану працю забирають на себе механізми, залишаючи людям гуманніші й більш творчі заняття. І хай конкретно вашу роботу виживання, напевно, мотивує не сильно, не забувайте, що там, на іншій частині планети, ваш айфон складають докупи китайські підлітки, які, може, і хотіли б займатися в цьому житті чимось іншим, але навряд чи їм це колись світить. Хоча живуть вони однаково краще, ніж усі покоління їхніх родин, а їхнім дітям житиметься ще краще. Для цього, власне, і потрібен технічний прогрес та ваша робота зокрема.

Розмноження, утім, часом мотивує навіть сильніше, ніж виживання. Тіло конкретної істоти рано чи пізно однаково зіпсується. А ось гени, які воно несе, можуть прожити куди довше.

Річард Докінз вважає, що весь біологічний організм — це не більше ніж керована машина для передання генетичного матеріалу й абсолютно всі наші рішення так чи інакше випливають із цього завдання. Я б таким категоричним не був, але вплив репродуктивних бажань недооцінювати явно не варто.

Причому тут працює як пряма біологічна мотивація, коли кров перетікає від мозку до інших органів та люди втрачають здоровий глузд, так і зовсім побічні. Як-от коли користувач форуму з жіночою статтю в профілі за статистикою отримує вдесятеро більше корисних відгуків, ніж із чоловічою. Водночас кора може прекрасно розуміти, що шансів на розмноження немає й навіть імовірність того, що за аватаркою ховається справжня тян, близька до нуля, але мавпочка не проминає скористатися навіть мінімальною можливістю збільшити свої шанси на розмноження.

Прагнення статусу

Беручи свій початок у тих самих виживанні та розмноженні (низькорангові особини не мали права передавати свої гени, а часом їх могли й викинути з племені, що гарантувало швидку смерть), прагнення до статусу переросло свої початкові мотиви та перетворилося на річ у собі.

Статус проявляє себе в абсолютно різних формах. Ніцше називав його «жагою до влади» й визначав основною рисою своєї надлюдини. Біологи пов’язують важливість статусу з рівнем тестостерону, причому для обох статей. На основі статусу будується вся система керування державами, корпораціями, та що там — будь-якими людськими групами.

Статус — основний драйвер економіки споживання. Новий айфон, дорога машина, шикарний будинок з підстриженим газоном — більшість товарів, які впихають нам маркетологи, не потрібні нам для виживання. Їхня основна функція — демонстрація вищості або принаймні не нижчості серед нашої соціальної групи. Прагненням до статусу маніпулюють роботодавці, коли замість підняття зарплати дають чергову безглузду личку.

Статус може як зберігати традиції («не виділяйся, що люди скажуть?»), так і руйнувати їх, коли власник певного статусу прогинає навколишній світ під себе.

Зі статусу напряму випливає вся мораль («доброго члена суспільства» поважають більше) і навіть безумовний альтруїзм. Кора, може, і не чекає подяки від об’єктів нашого милосердя, але мавпочка знає, що добро дуже часто повертається та збільшує наші шанси отримати щось навзаєм.

На статусі базується все без винятку мистецтво. Кожен «пише винятково для себе», але потай мріє стати відомим, хоча би після смерті. Жага до статусу тримає на собі весь опенсорс, Stack Overflow і вікіпедію. Прості циферки на екрані, ніяк не пов’язані з реальною користю, мотивують людей на безоплатну роботу тисячами годин.

Модерні психологи навіть радять відповісти собі на запитання «Чи робив би я це, якщо ніхто про це не дізнається?» й визнають, що абсолютна більшість діяльності відбувається тільки для демонстрації своїх успіхів сусідам із соціальної групи.

Високий мотиваційний складник статусу викликає парадокси, коли заради славнозвісного імпакту працівники готові безоплатно працювати довше, погоджуватися на нижчу платню та взагалі відкидати власні бажання заради високої мети. І це прекрасно!

Бажання, як відомо, мають властивість тільки нескінченно зростати й рано чи пізно призводити до вигорання рецепторів задоволення. А служіння високим ідеалам і визнання соціальної групи здатні тримати на плаву ціле життя.

Проте в цьому разі дуже важливо спочатку зрозуміти, чи справді йдеться саме про зміну світу й допомогу людям, а чи ви, піддавшись умілій маніпуляції, просто реалізуєте чиюсь іншу мрію, до того ж пов’язану лише з грошима. Мавпочку можна обманювати досить довго, але розплата за обман, коли вона його усвідомить, буде дуже й дуже болючою.

Ну й про останній чинник, який сформувався найпізніше, але якраз і дозволив людям стати тими, ким ми є зараз. Чинник цей насправді зовсім неоднорідний і складається з кількох, доста різних процесів. Але об’єднує їх гормон, який при цьому виділяється в людському мозку.

Допамін та жага до пізнання

Зачатки статусу є в багатьох тварин. Вони діляться на вожаків і послідовників, але тільки для вищих ссавців характерна емоційна винагорода за щось, напряму не пов’язане ні з виживанням, ні зі статусом — за дізнавання нового й розв’язування задач.

Багатьох тварин можна надресувати, коли вони робитимуть трюки заради смачної їжі. З іншими можна досягти вищого прогресу, застосовуючи електрошок і болючі удари батогом. Але тільки невеличка частина розв’язуватиме завдання, поставлені перед ними, суто для власного задоволення.

У повсякденних робочих завданнях програміст рідко мотивується фінансово, адже платню відсунуто в часі від самого завдання, та й навряд чи доведеться голодувати, якщо не вдасться його розв’язати. Статус впливає трохи більше, але часом і на нього плювати. Завдання хочеться робити лише тому, що воно цікаве. Тому, що ніколи раніше ти його не робив. Тому, що його виконання розширить якісь горизонти свідомості й навчить чогось нового.

Мавпочка рідко розуміє, чого саме ти навчився під час виконання завдання. Але навіть вона знає: той, хто вчиться нового, а не будує однакові мурашники мільйони років, отримує зрештою владу над усіма іншими видами.

На нашій жазі до пізнання теж непогано вдається маніпулювати: соцмережі навчили маскувати безглузді картинки й шматочки тексту як нову отриману інформацію. Дурнуваті ігри прикидаються життєво важливими завданнями й забирають усю мотивацію на себе. Але це помірна ціна за всі ті плюшки, які ми отримуємо натомість.

Усю науку створено не жагою до виживання, навіть не погонею за статусом, а простим бажанням розібратися, як працює світ. Для вченого запитання «Для чого ви змішали ці дві речовини?» звучить абсурдно. Що значить «для чого»? Щоб подивитися, що буде!

Я казав, що статус породив і мистецтво? Що ж, я збрехав, бо допаміновий складник там не менший, а то й більший. Деколи щось робиться не тому, що приносить користь, а просто тому, що це має бути зроблено. «Я пишу, бо не можу не писати». Знайомо?

Та що там, будь-який політик, бізнесмен, релігійний діяч, може, насамперед керується статусом, але неодмінною частиною його мотивації є постійне розв’язування все складніших проблем, які виникають у процесі. Борис Щербина на момент Чорнобильської аварії вже мав повноту влади й в результаті не отримав її більше. Проте саме розв’язання проблеми потенційного апокаліпсиса давало йому сили рухатися далі й робити неможливе, ламаючи бюрократичні стіни та рубаючи один за одним політичні гордієві вузли.

У повсякденному житті наслідком роботи допамінового центру є нудьга. Леви, заваливши здобич, просто сплять цілими днями, заощаджуючи енергію. Людський мозок не припиняє працювати ні на мить. Усе тисячолітнє вчення про медитацію призначено для однієї мети: хоча б на кілька хвилин зупинити мисленнєвий процес і припинити розв’язувати уявні задачі. Насправді це дуже важко й удається не всім.

Завдання, до речі, бувають не тільки особисті, але й колективні. Увесь тоталітарний устрій працює на зміщенні мотивації з власного добробуту на досягнення високих цілей. Часто вони апелюють до передання генів («майбутнє наших дітей»), але переважно жодного сенсу в собі не несуть. П’ятирічку — за чотири роки. Чому? Ну як чому, круто ж, хіба ні?

Як ви вже здогадалися з попереднього прикладу, допамін зрештою перестає працювати сам собою й тоталітарним державам доводиться вдаватися до цікавіших методів, на кшталт масових розстрілів. Так само тільки до часу мотивує статус, і навіть виживання деколи перестає бути чинником: «Краще померти, ніж попрацювати на цій роботі ще один день».

Зате їхня комбінація працює завжди. І наша формула зрештою має ось такий вигляд:

Наступного разу, коли дискутуватимете з мавпочкою, що робити зараз: посидіти в соцмережі чи додивитися курс про новий фреймворк, можете переформулювати свої цілі так, щоб вона зрозуміла.

Насамкінець

Хочу додати ще одну ремарку.

Не лише мавпочка всередині нас така сприйнятлива до різноманітних маніпуляцій. Вашу кору головного мозку теж обманути не так складно, як здається.

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

Саме так, можна не вчитися грати на гітарі, не вчити японську, не відвідувати всі країни світу, можна взагалі за кордон не виїжджати, якщо вас це не впирає. Можна не читати книжок і не знати математику, не бігати марафон та не виступати перед людьми. Можна навіть статей на DOU не писати і їх не коментувати (хоча про останнє я не певний).

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

А як ні, то ні. Може, воно вам просто не треба? Підіть краще поспіть.


Ілюстрації Каталіни Маєвської


ІТ в Україні: куди ми рухаємося

$
0
0

[Дмитро Овчаренко — CEO & Founder at Alcor, віце-президент з юридичних і фінансових питань Асоціації IT Ukraine, 15+ років в оперативному управлінні ІТ-бізнесом, допоміг десяткам іноземних технологічних компаній відкрити R&D-офіс в Україні]

IT-сфера в Україні — одна з найдинамічніших і найперспективніших. Її вже давно називають локомотивом розвитку української економіки, але так було не завжди. Понад десять років я працюю в українських ІТ-компаніях і разом з колегами розвиваю екосистему, тому для тих, кому цікаво, що було й що буде, підготував короткий екскурс.

За даними DOU, зараз в українській ІТ-індустрії працює понад 190 000 фахівців. Як зазначено у звіті IT Ukraine Association, податок, який вони сплатили, у 3,7 раза перевищує середні показники по країні. Тільки за 2018 рік ІТ-послуги принесли майже 10 млрд грн податків в українську скарбницю. Рік від року ці цифри зростають у середньому на 20–25%,завдяки чому економіка України зможе дістати поштовх для розвитку.

Темпи розвитку ІТ вражають. 2012 року внесок ІТ в економіку країни становив 0,8% ВВП України, а нині — уже 4%. На сьогодні експорт ІТ-послуг України приносить більше як 5 млрд доларів на рік, тоді як 2013 року ця позначка ледь сягала 2 мільярдів. Крім цього, 2017 року ІТ-сектор вирвався в трійку найбільших галузей економіки України з експорту послуг, і ось через рік сфера ІТ вже впевнено посіла другу позицію в цьому списку (зі звіту IT Ukraine Association).

З аутсорсингу в сервісний консалтинг

Українська ІТ-індустрія розпочала свій активний розвиток з аутсорсингу, який дав нам поштовх у непрості для пострадянського простору часи. Тоді, наприкінці 1990-хі початку 2000-х,на вітчизняний ринок вийшли перші аутсорсингові ІТ-компанії: ELEKS, SoftServe, Miratech та інші. Іноземні корпорації тільки починали відкривати для себе Україну, тому віддавали на аутсорс лише окремі свої функції, зазвичай ті, що не вимагали глибокої технічної експертизи. Це природний етап, який також пройшли Індія, Польща, Латвія й Румунія.

Але українських розробників явно недооцінили. Вони вирізнялися професіоналізмом і якістю своїх послуг, тому почали відходити від слова «аутсорсинг» і перейменували свої послуги в «ІТ-сервіс». На цьому етапі традиційний аутсорсинг в Україні починає видозмінюватися. Іноземні технологічні корпорації розгледіли в Україні потужний потенціал і стали передавати українським розробникам не просто деякі свої функції, а й розробку інноваційних технологій із цілісними рішеннями. За розумну ціну іноземні технологічні компанії отримали гідну якість, що спонукало їх активно заходити на український ринок.

Наступним етапом еволюції став «сервісний консалтинг». Українські ІТ-компанії почали пропонувати комплексне рішення бізнес-завдань клієнта, фокусуючись на індивідуальному підході. Ця модель спрацювала «на ура» й створила величезний попит на нетехнічних фахівців. Бізнес-аналітик, менеджер продукту, HR-фахівець, юрист, бухгалтер, менеджер з продажу, маркетолог — це тільки невелика частина нетехнічних професій, які потрібні в ІТ. Усі вони мають не просто розуміти ІТ-ринок, а й володіти англійською мовою мінімум на середньому рівні.

R&D-офіси — вигода для всіх

Відтоді кількість ІТ-фахівців у країні починає різко зростати: з 89 тис. фахівців ​​2015 року до 190 тис. — 2019-го.Тепер українці можуть створювати, просувати й продавати ІТ-продукти на глобальних ринках. Вони зацікавлені не просто у створенні продукту, а й в активному його розвитку. Як наслідок, усе більше й більше українських розробників хочуть бути частиною того, над чим працюють. Саме це дає початок розвитку центрів розробки програмного забезпечення — R&D-офісів.

R&D-офіс — це офшорний центр досліджень і розробки, в якому замовник і виконавець є однією компанією. По суті, R&D-офіс — це підрозділ великої продуктової ІТ-компанії в розвитковій країні. Водночас у ньому збережено всі внутрішні функції й політику компанії. Для розробників основна перевага полягає в тому, що вони мають доступ до процесу створення продукту «від А до Я». Як працівник компанії, ви будете знати все про процес маркетингу й продажу ІТ-продукту в західних країнах, зможете безпосередньо взаємодіяти з С-level-менеджерами та підійматися кар’єрними сходами. До того ж працівників локальних центрів розробки дуже часто запрошують у штаб-квартиру компанії, де вони переймають досвід, корпоративну культуру й відвідують тренінги разом зі своїми американськими або європейськими колегами.

Центри R&D істотно впливають і на ринок праці в країні. Допомагаючи західним ІТ-корпораціям відкривати свої офіси в Україні, ми водночас спонукаємо їх облаштувати повну інфраструктуру. Для забезпечення R&D-центрів потрібно залучати місцеві ресурси, і в цьому полягає додаткова економічна вигода для нас усіх. Експерти IT Ukraine Association підрахували, що один працівник в ІТ-індустрії створює 3-4робочих місця в суміжних галузях. За умови зростання індустрії до 400 тис. професіоналів до 2024 року будуть створені приблизно 2 млн робочих місць в Україні. Це має вирішальне значення для нашої країни, де майже 9% населення — безробітні. Можна сміливо стверджувати, що сфера ІТ — найперспективніша в боротьбі з безробіттям.

Це вигідно й самим ІТ-компаніям. По-перше, працюючи з програмістами за цивільно-правовим договором, іноземні компанії економлять на податках. Наприклад, якщо в Каліфорнії сумарно доведеться заплатити майже 30% податків за кожного працівника, у Великій Британії — трохи більш як 20%, то в Україні — лише 5%. До цього варто додати схожість менталітету, адже все більше молодих українців мають прогресивні погляди й додержуються європейських цінностей. Але найважливіше — люди. Українські розробники славляться своєю компетентністю й винахідливістю, і це — наш головний магніт.

Потенціал українського ринку IT

Однак тепер на глобальній арені Україна залишається незначним гравцем з величезним потенціалом. Основна частка світового ІТ-ринку припадає на США (36,8%), за ними — Китай (11,3%) і Велика Британія (5,8%). Як зазначено у довіднику агентства Top Lead, за обсягом ринку ми змагаємося з Румунією й Польщею, відчутно поступаючись Індії й Китаю. Якщо поставити себе на місце американця, то Україна все одно буде привабливою точкою розвитку ІТ-бізнесу серед країн з розвитковою економікою. По-перше, ринки праці в Польщі й Румунії вже істотно «перегріті» (якщо потрібна команда з 10 осіб, можна йти й туди, але вже на рівні 50–100осіб явно будуть проблеми). По-друге, в Україні дуже вигідне оподаткування. По-третє, компетентність і культурна близькість ставлять українських розробників набагато вище за індійських.

ІТ-екосистема України особливо сприяє розвитку технологічної індустрії. На регіональному рівні бізнеси об’єднуються в ІТ-кластери, де власними силами створюють потрібні умови для зростання й активно підтримують один одного. У звіті від UNIT.City й Western NIS Enterprise Fundзазначено, що натепер уже понад 20 міст України створили свої місцеві ІТ-ком’юніті. У масштабах країни функціонує IT Ukraine Association — найбільше об’єднання ІТ-компаній в Україні, в яке входять 60+ топових гравців вітчизняного ІТ-ринку. Активну роль відіграють також IT-комітети в American Chamber of Commerce (ACC) й European Business Association (EBA). Завдяки цим організаціям нам вдається лобіювати інтереси всієї української ІТ-спільноти, навчати новачків і підтримувати стартапи.

На жаль, політичне питання залишається нерозв’язаним, хоча в цьому напрямі є багато планів. На сьогодні головне завдання — налаштувати діалог з владою. З цього приводу IT Ukraine Association у червні 2019 року зустрічалася з Президентом Зеленським, а у вересні — з Прем’єр-міністром Гончаруком. Ідеться про те, що поточні умови роботи дають змогу індустрії динамічно зростати і, якщо не буде радикальних законодавчих змін, 13 млрд доларів експорту щорічно й 10% ВВП країни — в межах 5—7-річної досяжності.

Майбутнє українського IT

За прогнозами експертів IT Ukraine Association, ІТ-ринок України стабільно зростатиме на 22–30%щороку, а кількість фахівців збільшиться у два рази до 2024 року. Цей сценарій може стати ще оптимістичнішим, якщо на ринок заходитиме все більше ІТ-бізнесів з власним продуктом.

Але куди ж без ложки дьогтю. Усе може піти й не за таким позитивним сценарієм.

Уже тепер в Україні запит на програмістів істотно вищий за пропозицію: якщо не розвиватимемо ІТ-освіту й не випускатимемо більше фахівців, нас чекає «перегрітий» ринок. Серед проблем також еміграційне питання: чимало висококваліфікованих фахівців виїжджає, і це стосується не лише ІТ.

Хвилюють й обіцяні реформи. Потрясіння, спричинені різкими трансформаціями, зокрема й законодавчими, можуть негативно вплинути на галузь загалом: призвести до незадоволення й відмови від співпраці. До того ж перевести найбільш гнучку й прогресивну галузь на Кодекс законів про працю — не найліпша ідея.

Чи не втратить тоді Україна свою перевагу на світовому ринку?

Щоб уникнути негативного розвитку подій, треба створити надійну інфраструктуру й налагодити механізм взаємодії між усіма учасниками ринку. Вірю, що в нас усе вийде.

Від слів до діла

Чому я впевнений у позитивному фіналі? Бо як віце-президент з фінансово-правових питань IT Ukraine Association я бачу реальні дії та зміни, що відбуваються в екосистемі.

Основними напрямами роботи Асоціації та її членів 2020 року залишається вдосконалення законодавства й освітні ініціативи.

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

А от убезпечити бізнес від замовних обшуків точно потрібно. «Маски-шоу» вже давно турбують український ринок і грають не на руку нам, адже псують репутацію на світовому ринку: хто ж захоче ризикувати власними грошима й майном.

Тому ми підтримуємо законопроект № 2740, або «Маски-шоу стоп — 3», що допоможе у встановленні чітких і зрозумілих «правил гри», забезпечить справедливе правосуддя, поліпшить інвестиційну привабливість України й створить основу для подальшого розвитку IT-індустрії.

Ще один пріоритет — розвиток освіти, зокрема неформальної. І, окрім, власне, реформування навчальних програм для ІТ-фахівців і створення нових можливостей для їхнього професійного зростання, ми зацікавлені в розширенні кола спеціальностей. Зокрема, уже вдруге разом з НаУКМА ми проведемо курс програми Information Technology Law: KMA & IT Ukraineдля майбутніх ІТ-юристів. Адже галузь розвивається не тільки завдяки програмістам, а й тим, хто працює разом з ними.

Уже доброю традицією стала щорічна фінансово-правова конференція, що збирає найліпших менеджерів і правників для обговорення й планування нагальних та стратегічних питань розвитку українського ІТ-ринку.

Ми завжди відкриті до діалогу й співпраці, беремо активну участь у побудові успішної екосистеми та, головне, готові брати на себе відповідальність. Тому впевнений, що наступне десятиліття для українських ІТ-компаній буде проривним.

Канада для IT-шника. Aлгоритм и стоимость переезда

$
0
0

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

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

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

В этой статье я собрал всё то, что хотел бы знать два года назад, и то, что знаю сейчас. Это меньше, чем хотелось бы. Это больше, чем ничего.

Сколько я получу на руки?

Упрощенная табличка:

РаботаЗарплатаUSD/мес. после налога
Кассир в Монреале22k CAD/год 1202
Миддл в Монреале70k CAD/год3119
Синьор в Монреале93k CAD/год4029
Тимлид в Монреале в прыжке110k CAD/год4622
Кассир в Харькове7000 UAH/мес.293
Миддл в Харькове1800 USD/мес.1800
Синьор в Харькове3500 USD/мес.3500
Тимлид в Украине в прыжке5500 USD/мес.5500

В таблице очень усредненно. В одной строке и синьор-делфист с двадцатилетним стажем и низкой зп, и питонист-ML с экстравысокой. По-хорошему, здесь нужно делать интерактивный виджет, который будет сравнивать совсем по-умному — это без меня. Ну и пока писал — пришло предложение на Ruby Team Lead в Calgary на 150к (6674 USD на руки), так что числа о-о-очень условны.

Зарплаты взяты с DOU, glassdoor.ca. Говорят, что можно еще на levels.fyiглянуть. Канадский налог подсчитан через neuvoo.ca.

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

Занизил ты как-то зарплаты в Монреале. Мы в Шопифай платим значительно больше. © Alex Topalov

В середньому зарплата Seniora у Торонто і Ванкувері 100-150к. Якщо ви вирішили переїхати, то перший рік будьте готові бути в категорії underpaid. Чому? Роботодавець фінансує вашу релокацію та іміграційні процеси для вас та вашої сім’ї, а це приблизно 20-30к, і немає жодних гарантій, що ви підійдете або не поміняєте своє рішення. Також важливим фактором є soft skills та знання мови. © Yuriy Dmytrash

Единственное, что на глассдоре сильно меньше реальности, на ДОУ иногда больше. Но на общие выводы это никак не влияет. © Кирилл Мельничук

Что-то мне стало жаль монреальских сеньоров (наши в таких нечеловеческих условиях долго не протянут). © Денис Оскорбин

Мой вывод: в Канаде низкоквалифицированные получают сильно больше, чем в Украине, а высококвалифицированные — если и больше, то не на много. Страна среднего класса.

Сколько стоит жить?

Цены можно глянуть Numbeoи тут.

Финплан

Финансовое планирование здесь намного сложнее:

  • Медицина формально бесплатна, но лекарства по рабочей визе — за деньги, если не вошли в соцпакет. И госстраховка не покрывает глаза, зубы, кожу. Госстраховка начинается через три месяца после переезда, до этого — коммерческая. Как я понимаю, это «нефиг переезжать с острыми болезнями».
  • Куча компенсаций придет через полгода после окончания налогового года. Детские деньги, например.
  • Налоговый год совпадает с календарным. И некоторые налоги прописаны в формате «n%, но не более $KKKK в год». Это значит, что сумма «на руки» к концу года растет, и выгоднее приезжать в начале года.
  • Школа начинается в сентябре, и дети, приехавшие в ноябре с нулевым языком, будут тупить до сентября, чтобы начать сначала с новым набором. Поэтому выгоднее приезжать в августе.
  • Весьма ощутимые деньги экономятся на акциях, скидках и кэшбеках. Но всем этим еще нужно научиться пользоваться. И иметь возможность дотерпеть до черной пятницы, к примеру. Пищевая корзина тоже меняется. Хлеб и пельмени — это дорого, мясо и овощи — дешево. Ягоды и мандарины зимой — дешево. Бананы — вообще почти бесплатно. У меня хоть какое-то понимание «вот это дёшево, а вот это — дорого» появилось через несколько месяцев. А некоторые покупки, типа специй, я и сейчас вспоминаю с дрожью.
  • Долговременная аренда начинается с 1-гоиюля, в другое время — цены и выбор значительно хуже. Для арендатора люди без местной кредитной истории подозрительны, ведь могут удрать в любой момент. Поэтому риски заложены в цену. Долговременная аренда — это пустая квартира. Ни стола, ни стула в общем случае. Это значит, что нужно срочно купить примерно всё. И да, скорее всего, месяц-другой аренды нужно будет оплатить заранее как залог. Жилье в Монреале обойдется где-то от 900 за «приемлемо» до 2400 за «отлично». Желающие могут углубиться в дебри ценообразования.
  • Привезти с собой любимый кухонный комбайн не выйдет, другое напряжение. То есть почти всю бытовую электронику придется купить заново. Оставшуюся — втыкать в пожароопасные переходники.
  • При покупке машины сверху будет примерно 15% налогов плюс еще сколько-то фиксировано. То есть купить и тут же продать — это сразу же процентов 20 уйдет, а скорее — больше.
  • Нужно будет пересдать на права. Это тоже пара сотен баксов выйдет. А еще потребуется время на чтение этих самых правил.
  • Если переезд не по рабочей визе, то поиск первой работы может занять месяцы.
  • При общей доброжелательности расслабляешься, но обмана и мошенничества тут хватает. Например, мы купили поломанный холодильник б/у. Вообще покупка б/у, особенно машин — это риск. Магазины: ценник один, а в чеке — другая цена. Wallmart этим грешит. Банки в договорах мелким шрифтом пишут скрытые платежи. Страховки — очень много жалоб, что страховые компании хороши в сборе денег, но не в выплатах. И если твоя машина попала в аварию, то её страховая-то починит, но будет запись об аварии в CarFax, и продать её потом получится только заметно дешевле. Есть и телефонное мошенничество с карточками. Причем угадали, что нужно звонить на английском, это на квебекский-то номер. То есть кто-то базу слил.
  • Детские развлекалки и особенно развивашки могут стоить ну совсем ой. Пара сотен в месяц — запросто.
  • Одновременно начать работать обоим супругам получится очень вряд ли. И даже если супруг выйдет на минималку, после налогов это будет больше тысячи в месяц. И эта тысяча будет очень сильно влиять на уровень жизни.

Фазы

Итого, каждый переезжающий айтишник проходит через фазы:

  1. Элита.Переехать могут только миддлы и синьоры, так что это верхняя часть среднего класса в Украине.
  2. Понаех.Всё дорого, деньги разлетаются, доходы не сходятся с расходами. И если раньше хорошо разбирался в гаджетах-флагманах, то теперь — в скидках на мясо и хлеб.
  3. Средний класс.Интуитивно, это от полутора лет до пяти.

Откуда деньги?

Переезд может быть оплачен из:

  • из запасов. Явно больше $1,5к, явно меньше $5к на человека. См. ниже подробный расклад. Некоторые компании, вроде MS и Amazon, говорят, могут дать 10к на переезд.
  • проесть украинскую квартиру. Если есть что проедать, конечно.
  • за счет падения уровня жизни. Машина попроще. Жил в большом новострое — переехал в маленькую старую квартиру с тонкими стенами и запахом жареной селедки и пряностей. При этом — далеко от работы. Покупал околоэлитные сыры и вина, а тут — «нет, мороженое слишком дорого». И праздничный обед — в ТимХортонсе/МакДональдсе.

Vladimir Zheleznyak, судя по фото, приходится подрабатывать в муниципалитете на уборке снега ;) © Евгений Румянцев

За и против переезда

на пути к успеху
множество преград
постоял у первой
и иди назад
© не моё

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

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

Vladimir Zheleznyak:не надо ехать. Я серьезно. Ехать надо тогда — когда надо. А если не надо — так нефиг )) Ваш кэп )))
При сравнении преимуществ и недостатков базарчика и супермаркета в Харькове один парень когда-то привел аргумент: «Если что не так на базарчике, я всегда могу дать в морду». Вот для меня это было недостатком, а для него — преимуществом. Кстати, у него было ПТСР, а потом он спился. Люди разные, и приоритеты — тоже разные.

Ну, і на кінець добавлю, якщо ви розглядаєте переїзд в Канаду лише з фінансової точки зору, то не варто починати :) Після сплати податку, оренди житла і ще багатьох інших оплат ваші заощадження будуть суттєво нижчими, ніж в Україні. Автор навів доволі багато аргументів ЗА, тому якщо ви наважились, то це лише питання часу. © Yuriy Dmytrash

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

Немножко быта

Медицина

Зарегался в очередь к семейному доктору. Без назначения врача здесь в аптеке продадут только аспирин, витамины и лейкопластырь. Ну, и каннабис можно купить не в аптеке.

Так вот, на официальном сайте статистика говорит, что к врачу я попаду в среднем на 351-йдень после регистрации. Срочные случаи обрабатываются иначе, хотя там тоже ждать надо.

Говорят, есть и платная медицина, но уж очень дорогая.

Читайте все комменты тут.

Погода

Кошки не одобряют суровый январский дождь в Монреале.

Впрочем, следующей ночью −5, утром каток на дорогах, днём всё в снегу.

Дороги

Я понял за дороги: если ехать строго на максимальной скорости — всё ок. Если превышать на 10 км/ч — не штрафуют и так ездят примерно все, — будет трясти. Если превышать еще больше, то дороги — да, не очень.

Короче, дороги поддерживают на уровне «можно хорошо ехать в соответствии со скоростным режимом для этого участка».

Горка

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

Катя съехала и с первой попытки нырнула в огромную лужу внизу двух линий из пяти. Зимы здесь по-настоящему суровы в конце декабря.

Промокла насквозь, аварийное возвращение.

Река дымится

Эта фотка не моя, я тогда подошел к реке только на следующий день, эффект почти закончился.

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

Квартиры с видом на парк

В Монреале легко купить квартиру «с видом на парк», читайте треди комменты — это по всему миру.

Монреаль-Тимченки

Был две недели в Украине, путевые заметки:

  • Когда дорогу ремонтируют, а гугл не в курсе — в Монреале тебе трындец. Минус час кругами по тянучкам, пока гугл настойчиво пытался вывести к перекрытому съезду. Потом возвращение почти домой и навигация по внутриквартальным дорогам параллельно хайвею. Пробуем Wase.
  • Амстердам. Русская попса из мобильников нескольких групп пацанчиков в аэропорту меня раздражает. Хотя объективно по громкости разницы с разговорами и объявлениями нет.
  • КЛМ:рейс перегружен, сдайте ручную кладь в багаж. Я:в прошлый раз вы мне так рюкзак покоцали. КЛМ:ладно, чемодан небольшой, проходите.
  • КЛМ:Эта очередь для скай-приорити. Пассажир, громко на общепонятном:заколебали, блд!
  • Борисполь аэропорт -> Борисполь ж/д. Не верьте гуглу про общественный транспорт. Или такси, или через Киев. Я час мёрз на остановке, и я не один там был.
  • МакДональдс всё еще дешевле канадского. Примерно 63 к 100 грн за гамбургер.
  • Оказывается, вопросы к незнакомцам я теперь формулирую в голове по-английски с приветствием на французском.
  • В экспрессе больше места и есть интернет, а в боинге не трясет, да и почище. Но и там и там сидеть по 7 часов, ой.
  • Тимченки намного меньше Монреаля.

Тимченки-Дергачи-Харьков-Киев

  • Выхлопные газы. Я отвык.
  • Появилась доставка «Глово», я раньше их не помню.
  • Случайно услышанные разговоры понятны. Непривычно.
  • Как же много курильщиков! Особенно на остановках и у входа в здания. Вроде как и свежий воздух, но дышать нечем.
  • Дороги таки намного хуже, чем в Монреале, специально смотрел в разных районах Харькова. И если покрытие на проспектах вполне ок, то периферия — ой.
  • Тротуары ужасны и обрываются/тонут/заболачиваются в самых неожиданных местах. И если плохой асфальт я могу объяснить экономией, то отсутствие съездов для колясок — это идиотизм.
  • Гривневый чек в кафе вырос раза в полтора с мая по декабрь. Впрочем, кмк, в общепите сейчас кого ни спроси, все смогут разъяснить разницу между Java и JS.
  • Алкоголя много в магазинах. Вот овердохрена. Еще чуть-чуть, и пора будет переименовывать из супермаркетов в «алкоголь и ещё что-то».
  • На Холодной Горе весьма симпатичный автобусный терминал сделали.
  • Вокзалы под чемоданы на колесиках не оптимизированы. Плитка убойная.
  • Рынок и магазины живы, массовых сдам/продам нет. Реклама — продажи, а не микрозаймы. Так что экономика жива.
  • Dinners на вокзале в Киеве лучше, чем Пузата Хата. Проще подойти, есть камера хранения, больше места. Возможно, ассортимент чуть меньше.
  • Погранец: «Тут написано, паспорт без обложки должен быть!» — и тычет в мелкие буквы, видимые только после того, как зашел к погранцу. Ну, то есть про обложку он прав, только надпись бы чуть заранее.
  • KLM задержал вылет из Амстердама, а потом вообще отменил. Обработали очень профессионально: с репортами каждые полчаса-час, отличной гостиницей и едой. Безвиз сэкономил мне пару часов. Без этого с гостиницей было бы сложнее. Потом Airhelp помог, за несколько недель вернули 434 USD. Это при том, что за билет туда-обратно я отдал 727 USD.

Улыбки

Мой рейс Амстердам-Торонто задержали на полчаса, «сломался переключатель».

Через полчаса капитан объявил «продолжаем ремонтировать». Потом тестировать. Потом что-то не понравилось и переделывали. Потом не работал водопровод. Потом электрика взглючила. Короче, через три с половиной часа рейс отменили, и начали распихивать пассажиров на ночевку.

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

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

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

Представляете внезапную задачу? Впятером накормить и поселить 300+ человек? Часть из них не говорит на доступных языках. Большая часть — устали и злятся. Почти всех нельзя поселить в ближайшем отеле, так как у них нет визы. У многих дети. Многие дети орут и дерутся между собой. Очередь, волнение, усталость и злость пассажиров. Усталость и злость персонала. Только персонал не имеет права показывать злость, а должен работать и гасить злость чужую. И они улыбаются. Улыбаются весьма формально. И это помогает. В такой напряженной обстановке одна неудачная фраза — и начнется конфликт. Две неудачные фразы — и ты звезда ютуба с вполне вероятным баном на профессию.

Улыбка искренняя — гораздо лучше формальной. Но когда нет сил или желания для искренней — формальная лучше, чем отвращение/гнев/презрение/покерфейс.

Запрет на улыбку сродни запрету на ремень безопасности — такая же глупость.

Пощелкайте картинки и почитайте старую статьюна эту тему. В статье можно еще и мышкой навести:

Обратите внимание на морщинки — это небольшие мышцы, которые сознание не контролирует.

Фото из книги «Теория лжи».

Индусы

Кстати, в самолете разговорился с двумя индусами, летели в Канаду на ПМЖ.

PM — э-э-э, ну, моё собеседование не прошел совсем :)

Инженер-электрик — очень позитивный парень в чалме. Летел бы в Монреаль — возможно бы, и подружились. Так вот, с его слов, 99% населения Индии хочет уехать. Причины:

  • экология — тупо нечем дышать;
  • правительство, которое убивает бизнес.

Вопрос на права

Ваш младший брат начал буянить и драться на заднем сидении, когда вы ведете машину. Ваши действия? © типичный вопрос экзамена на права в Квебеке. В деталях я не уверен.

Вот даже не знаю... При таком братике времени у меня очень мало...

CTO Meetup

Был на CTO-митапе в Монреале. Сырые мысли:

  • похоже, с ростом проекты меняют скорость, гибкость и экономичность на широкий фронт и предсказуемость;
  • проблемы с людьми везде, и проблемы одинаковые;
  • при росте компании теряется подстройка (гугл в помощь) между сотрудниками;
  • «всё было проще, пока у нас не было клиентов»;
  • люди на старте и позже нужны разные;
  • интересно, есть ли инстаграм-каналы по менеджменту? TikTok? PornHub?
  • values, vision — неизмеримы. То есть смысл в них мистически-религиозный до момента, пока они не превращаются в действия-ритуалы :)
  • легко сказать collaborate. Сложно сделать.

Монреаль

Забыл сказать о главном недостатке Монреаля. Здесь в самом центре города огромное старое кладбище.

Один толковый некромант или зомби-апокалипсис — и всё...

Дети

Оказывается, мне нравится, когда дома семеро детей.

И когда ими занимаюсь не я.

P. S.: кошки в эвакуации у меня в кабинете.

Умный дом

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

Меня только смущает, что в систему включены пять хомо в качестве исполнительных элементов.

Одежда

Было у нас совещание по скайпу с потенциальными партнерами. Наш СЕО в костюме и при галстуке, я в водолазке. Думаю, нормально ли это? Финтех, все дела. Звонок начинается, с той стороны появляется парень в бейсболке и футболке. Придвигает к себе картофель-фри и начинает хрустеть.

«Пофигизм» — самое правильное слово про одежду в Канаде. Удобно — и ок. Нужно выбежать из машины на пять минут? Ну так накинул, что под руку подвернулось, и всё :)

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

И это всё причудливо сочетается с французской элегантностью.

Белый порошок

Изучаем на практике разные способы полёта: в стиле Бабы Яги, Будды и барона Мюнхгаузена.

VF:а что это за белое вещество на земле?
VZ:какой-то порошок, который позволяет летать. Химия чистой воды.

А если серьезно, то тёплая зима — это не проблема. Я слышал только об одном проблемном исходе, когда какие-то жучки-короеды, которые обычно за зиму вымерзали почти целиком, стали выживать и грызть деревья в ноль. Проблема — летом, когда сухо, как в Крыму, а систем мелиорации нет. Или когда ночью +37 две недели подряд, а днём теплее, и начинают умирать старики и младенцы, а кондиционеры не у всех, и не везде на кондиционеры рассчитана проводка.

Алгоритм и цена переезда

Не имеет значения, сколько шагов вы сделали перед дверью, если вы так и не вошли © не моё

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

Все числа приведены примерно, а некоторые — очень примерно. Большинство чисел приведены из расчета на один нос по примерному курсу USD.

Disclaimer:я не специалист. Я говорю, что знаю, но не владею всей картиной.

Оценка прохождения по разным программам: бесплатно, часов 2-10

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

Для анкеты нужен уровень языка, проще всего его проверить на курсах английского.

Резюме, деньги и прочее неочевидное: неделя

Иммиграционный офицер ищет ответы на «а не собирается ли этот человек остаться нелегально?» и «а не врет ли он? Например, о профессии и умении зарабатывать?» Заодно и «а не нищий ли к нам собирается?» Напрямую это не проверишь, а вот косвенно можно:

  • Для визы нужно резюме. Даже для турвизы. И есть непроверяемое подозрение, что они сверяют его по базе налоговой, Linkedin, профилям в соцсетях и т. д.
  • Они знают про ФЛП 3-югруппу и прочие особенности Украины. Поэтому налоговые отчеты хорошо бы держать в порядке и приложить.
  • Счет в банке — это важно. «За неделю до проверки положил 3000, потому что не доверяю банкам» — выглядит подозрительно, в Канаде банкам доверяют, поэтому позаботьтесь заранее. Если есть в собственности квартира/машина — тоже стоит упомянуть, лишним точно не будет. Опять же, они хотят быть уверены, что вы выгребете, если что-то пойдет не так, типа как у меня было: «фирму продали, сотрудники по командировкам внезапно остались без карточек и юридической поддержки».
  • Для рабочей визы, если сможешь показать запас денег, как на Express Entry — то хорошо. Если не сможешь... они дают поблажку, но они должны быть уверены что у тебя будут деньги на месяц подергаться и на обратный билет, если вдруг тебя уволят. Короче, хорошо бы написать: за прошлый год заработал столько-то, в наличии столько-то, квартира, машина. Если рабочая виза, то наверняка это будут вести юристы работодателя, не стоит сильно в это вникать сейчас. Но, если есть возможность, положи в банк деньги. Если больше чем 200 тыс грн — в разные банки.
  • Список родственников, включая бывших жен/мужей, тёть и дядь, умерших, нелюбимых и иностранных. Имя, как в загранпаспорте, телефон, где работают и т. д. Ага, фантастически сочетается с обработкой персональных данных.

Есть масса консультантов, которые готовы помочь. Но те, с кем я общался, узко заточены на то, чтобы продать тебе обучение в вузе. Если бы я сейчас начинал с нуля, возможно, посмотрел бы на CanadaVisa. Опять же, если по рабочей визе, то, скорее всего, вам на работе всё расскажут и организуют.

На некоторых официальных сайтах, как я помню, были проблемы с Google Chrome.

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

Многие платежи будут в CAD. Поскольку в Украине я не нашел банка со счетом в CAD, курс конвертации будет веселый.

Анализ рынка труда и собеседования: от недели до пары месяцев

Что нужно знать про рынок труда в Канаде? Он скрыт — много вакансий просто не опубликовано, ищут через друзей. Он медлителен — это в Украине бывают наймы за несколько часов, а тут можно и подзастрять. Ну и нет Djinni, это вообще ужас и непривычно.

Если переезжать через работодателя, то ему нужно доказать иммиграционному офицеру, что такого человека на месте не нашли. Нельзя перевезти дешевого — нужно доказать, что з/п будет выше рынка. Опять же, фирмы-однодневки перевозить не могут. В итоге, работодателю нужно исписать пачку бумаги. Крупным корпорациям вроде MS, Google, Amazon, Shopify — это не проблема. Стартапам — сложнее.

Основные сайты, как я понимаю: Linkedin, Monster, Indeed, Glassdoor. Фейсбучные друзья тоже очень часто бывают полезны. Рекрутеры чаще звонят, чем пишут. Поэтому, возможно, будет хорошей идеей иметь местный номер на +1. Не знаю, насколько это важно и как сделать удаленно. Более чем в половине случаев на поданные резюме рекрутеры не отвечают вообще — ничего личного, тут такая норма.

Менеджеру переехать куда сложнее, чем программисту/QA.

Самый быстрый путь для айтишника — податься на работу в Эдмонтон/Калгари/Виннипег. Там сейчас кадровый голод, и берут многих. Как стартовый трамплин — очень даже удобно. Инфраструктура похуже, чем в более благополучных городах, но лучше, чем в Украине. После получения вида на жительство — можно переезжать в другую провинцию.

Note: опубликовать своё резюме и подать кандидатуру на вакансию — это самый психологически сложный этап. Тут нужно сказать публично: «Да, я хочу переехать и прикладываю к этому усилия». И тут нет простого однозначного шага, как «оплатить WES», тут есть много маленьких решений и шагов.

Язык: 150 USD, подготовка и ожидание, потом два раза по паре часов плюс ожидание результата

Сдать IELTS. Экзамен здорово отличается от реальной жизни, лучше к нему готовиться заранее с преподавателем. Например, я погорел на скорости письма ручкой по бумаге. Тупо времени не хватило. В этом году уже можно и на компе сдавать.

Компанию-проверяльщика стоит проверить в списках тут. Подробности по пересчету IELTS в CLB смотреть тут. Если есть сомнения и вы не понимаете — по умолчанию цельтесь на Federal Skilled Worker Program.
Можно сдать в Канаде, говорят, что терпимей относятся, и нет проблем с австралийским/британским акцентами.

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

Перевод документов личных: ~50 USD, несколько дней

Я обращался в «Гольфстрим», очень понравилось. Нотариальное заверение мне не понадобилось, штампа агентства было достаточно. Сразу заказывайте экземпляры с запасом. Что нужно: паспорта, свидетельства о рождении и браке, о смене фамилии, разводы на всех, дипломы и школьные аттестаты. Потом для детей еще понадобятся табеля из школы и прививки. Ну, и справка о несудимости, но она действует не очень долго.

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

Дипломы и аттестаты: 550 USD, месяца три-четыре

  1. Перевести школьный аттестат и диплом
  2. Зарегаться на WES, оплатить и скачать Academic Records Request Form.
  3. Минобороны Украины, прокладка «Апостиль». Важно: «Апостиль» не посылает за рубеж. WES не принимает документы, полученные не напрямую. Поэтому:
  4. Получаем из «Апостиля» конверт. Не распечатывая(!!!), упаковываем его в конверт побольше. Туда же засовываем скан своего загранпаспорта, переводы документов о смене фамилии (свидетельства о браке) и, на всякий случай, переводы аттестата и диплома. Отправляем TNT / DHL в WES.

Получение визы: несколько месяцев

«Канадцы рождаются по всему миру. Просто иногда им нужно какое-то время, чтобы добраться сюда» © Wayne Potoroka, Mayor of Dawson City, Yukon

Если визу оформляете сами, то нужно зарегаться на офсайтечерез GCKey. Система, с одной стороны, удобная, а с другой:

  • мало времени. Отвлекся — логаут. Не дозаполнил анкету — удалили. Незасабмитил за год — удалили;
  • нельзя уже заполненную анкету скопировать;
  • формы меняются, поэтому заполненные анкеты от предыдущей визы не факт, что можно использовать для новой;
  • нужен Adobe Acrobat Reader для заполнения большинства PDF;
  • масса повторяющихся вопросов в анкетах. Забодаешься и запомнишь номера паспортов и даже дни рождения наизусть. Если уже есть все документы, то просто перевбить их — это полдня;
  • мы для ускорения процесса оформили сначала визу на меня, а потом уже на жену и детей. Это была ошибка, им в визе отказали: «А чего так раздельно?», у нас пропали дорогие билеты, и им визу дали только со второй попытки. Короче, не покупайте билеты, пока нет штампа в паспорте.

Виды виз:

  • Тур-виза — нельзя работать. Если есть возможность — лучше слетатьпосмотреть заранее, походить по собеседованиям, возможно — сдать язык. Нам обошлось в 2000 на каждого с билетами на Оттаву-Монреаль-Эдмонтон-Торонто. Если бы не Эдмонтон, было бы 1300. Кмк, это окупится.
  • Обучение — можно учиться и подрабатывать. Путь для 23-летнегосиньора без семьи.
  • Рабочая виза — нельзя учиться, можно работать супругам. Рабочая визана конкретного работодателя. Можно и без рабочей визы, а сразу вид на жительство, особенно для тех, у кого хорошие языки, возраст до ~35, синьор, и есть запас в несколько тысяч долларов на человека.
  • Вид на жительство — почти как гражданство, но нельзя голосовать. Квебеки остальная Канада. Проще получить с канадским опытом на рабочей визе, но можно и так податься. Заранее можно подсчитать шансы. И да, скорее всего, поиск первой канадской работы займет несколько месяцев, в течение которых нужно на что-то жить.
  • Гражданство — после экзаменов по истории и правоустройству и стажа жизни в Канаде и присяги.

Дети: 150 USD

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

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

Отпуск

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

Медкомиссия: 400 USD с перелетом и проживанием

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

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

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

При планировании учтите месячные. И да, медкомиссия для всей семьи.

Биометрика: 70 USD

Через какое-то время после медкомиссии взрослым придет приглашениесдать отпечатки пальцев и фото. До получения приглашения записаться на биометрику нельзя.

Паспорт (штамп): 50 USD

Загранпаспорт относите/отправляете в VFS Global, они переправляют в консульство, потом обратно. Самому отнести нельзя, за утерю паспорта почты не отвечают, виза привязана к паспорту. Проверьте свою удачу.

Кошки: 450 USD

Основное, что нужно знать при перевозке кошек и собак:

  • это задача не профильная ни для авиакомпаний, ни для аэропортов, поэтому много непроработанного на каждом этапе;
  • правила всё время меняются, гуглите изменения. На местах правила тоже трактуют по-разному. Не нравится трактовка? Попробуйте в другом заведении или в другой смене :)
  • если в каком-то аэропорту по маршруту погода ожидается ниже −12°C или выше 29°C, то кошек просто не пустят. Поэтому кошек лучше везти весной или осенью;
  • все цены — исключительно для масштаба;
  • задача вполне решаемая, и совсем не ужас-ужас-ужас.

Свалка ссылок: LOT FAQ, требования Канады, Украина, тынц, старая история, история новее.

  1. Паспорт гособразца. Иногда нет бланков, оформляйте заранее или ищите по райцентрам. Иногда паспорт портят, если что берите и старый с собой. Иногда можно получить паспорт без кошки. Вклейки от прививок должны быть в паспорте. Ставьте породу «метис», или будет нужна родословная. Обязательно поставьте где-то отметку «стерилизована» на английском, иначе это обойдется по прилёте в деньги и время.
  2. Прививка от бешенства и т. д. — 700 грн. В госклинике дешевле, если доверяете. Говорят, что нужен именно Нобивак, гуглите и ищите. Прививке вроде бы должно быть от месяца до года.
  3. Чипы. Лучше после прививки, чтобы данные о прививках ушли в базу чипов сразу.
  4. Выбор способа перевозки:
    • С собой ручной кладью. Сейчас мы бы выбрали этот способ, кошка с переноской должна весить 8 кг и влезать под кресло. Как говорят, «восемь» нужно читать как «меньше девяти».
    • В багаже, одна кошка на пассажира. Мы везли так, в багаже AirFrance. Не отвечают на почту и телефон, но до них можно добраться через чат фейсбука. Отвечают часа через четыре, истории сообщений не видят, так что к каждой реплике нужно прикладывать сразу все подробности: «Мы (список с паспортами, днями рождения и номерами паспортов) летим таким-то рейсом тогда-то, номер бронирования такой-то. Забронируйте, плз, двух кошек беспородных, даты рождения такие-то, вместе с нами». Они забронируют, но деньги и окончательное решение — на стойке регистрации в аэропорту. Проверьте удачу.
    • General Broker / ChpAero. Отвечают быстро и по делу. $730 на двоих.
    • Turkish Airlines. Долго перекидывали между менеджерами, недели две у меня ушло, чтобы выйти на человека, готового отвечать на вопросы. $655 на двоих.
    • Petsvoyage. Отвечают быстро и по делу. $820 на двоих.
    • Эйрлайн Бизнес. $680 на двоих.
  5. Переноска. IATA, если в багаж — то на болтах, иначе будут проблемы в аэропорту пересадки. Поилка формально нужна, фактически — из нее вода тут же выльется, и кошка будет мучиться от жажды на мокрой подстилке. На помощь сотрудников авиакомпании... ну, я бы особо не надеялся — оно им надо, руки совать к потенциально опасному животному, которое еще и не пожалуется на плохое обращение?
  6. За две недели — в госклинику для анализов «я лечу в Канаду».
  7. Успокоительное для кошки купите, ей будет страшно.
  8. За три дня — в госклинику «я вылетаю» — форма 1. Ага, при покупке билетов нужно учитывать праздники, рабочие дни и прочие отговорки «мы на выезде» или «принимаем в четверг по новолуниям 29-гокаждого февраля».
  9. Рамку безопасности кошка проходит отдельно, переноска — отдельно. Кошка наверняка будет испугана, и, возможно, станет царапаться и вырываться — заранее даже для самой домашней и смирной кошки предположить нельзя. Если не хотите видосиков в стиле «а вот я, разбрызгивая кровь, пытаюсь прорваться за кошкой в закрытую зону аэропорта» — возьмите шлейку и толстую кофту и держите подальше от лица.
  10. Ветеринар в аэропорту. В аэропорт нужно обратиться заранее, за пару часов до начала регистрации — человека может не быть на месте. Можно даже за пару дней. Забирает форму 1 и выдает международную.
  11. Таможенная декларация на кошек за полчаса до начала регистрации.
  12. Несмотря на то что мы сдали кошек в багаж — в Париже нам их всё равно выдали. Формально, чтобы мы могли их погулять. Фактически — при трехчасовой пересадке времени было минут десять, и то бежали. Что делать без безвиза или при малейшей накладке — без понятия.
  13. В Канаде: регистрация на таможне. Со стерилизованными — гораздо меньше мороки. Потом регистрация по месту проживания. Это не обязательно, просто если убежит — чтобы знали, кому звонить. Иначе усыпят. Да, чип и ошейник с брелоком — очень желательны.
  14. Страховка в Канаде очень хитро устроена. Ты платишь вполне вменяемые 30-40 CAD вмесяц за молодого-здорового. Но после болезни страховой взнос резко возрастет. И если ветеринар скажет «Это у вас хроника обострилась, которая была до страховки», то страховая откажет. Перефразируя: если ваш кот не умрет внезапно, то он вам обойдется в пару тысяч на лечение в конце его жизни. Мой вывод: проще откладывать деньги самостоятельно «на черный день».

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

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

Аренда

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

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

Квартиру можно снять и через инет. Будьте готовы внести задаток за первые месяцы.

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

Билеты: 560 USD туда или 720 туда-обратно

Мы из Харькова, так что для нас схема была: отправить вещи Новой Почтой -> ночной поезд до Киева -> забрать с Новой Почты -> Борисполь.

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

Обычно AirFrance Киев-Монреаль-Киев стоит 720 USD с человека в обе стороны, между рейсами туда и обратно может пройти год. А вот летом билеты в Канаду безумно дороги, могут быть раз эдак в пять дороже. Кстати, агрегаторы этот рейс не находят, и искать его нужно строго на airfrance.ua.

Страховка временная: 200 USD

Купить медстраховку на три месяца. Я брал тут.

Врачи

Пройдите заранее стоматолога и своих профильных. Следующий раз на приём по хроническим болячкам вы попадете не скоро.

Доверенности: 100 USD

Стоит оформить доверенности на кого-то остающегося:

  • для органов власти, банков, учебных заведений. Обговорить с нотариусом тему закрытия ФОПа и выписки из квартиры;
  • на вывоз детей, если родители едут раздельно;
  • на продажу квартиры/машины.

Закрыть ФОП: 150 USD

У меня этот процесс пошел наперекосяк, так как Фидобанк когда-то разорился, а у меня там был счет, а инспектору лень заниматься такой фигней.

Продажа собственности

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

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

Большие деньги

Если продали квартиру или машину, то возникает вопрос, как перевести деньги.

Можно наличкой, тогда нужно декларировать на обеих таможнях. Плюс карманники. Или если задекларировать, то на карманников уже умножать надо? И точно умножить на джетлаг и пересадки. В общем, самый простой способ — это перевести их потом во время следующего визита. То есть открыть счет в USD в Канаде, а потом при следующем визите в Украину — перевести. Если оба счета на одно и то же имя, то быстро и сравнительно дешево.

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

Сборы

Проверьте долги: наши родственники видели, как погранцы в Борисполе завернули мужчину за просрочку 3,75 грн. Срочно бежал из аэропорта в город, чем окончилось — не знаю.

Я не нашел вменяемой компании, которая везет крупные посылки. Возможно, плохо искал. Из альтернатив была Укрпочта, они три месяца везли морем одну посылку. Либо можно в стандартные коробки Новой Почты, 70×40×43, и авиабагажом. Если по две коробки на человека, то точно можно перевезти всё. В принципе, можно и всё на месте купить, но привезти у меня вышло дешевле. Ручную кладь, скорее всего, тоже в багаж отправят — перепаковка багажа может занять время, приезжайте в аэропорт заранее. Всё, что кроме ручной клади, время от времени теряют. Подписывайте чемоданы: телефоны, мэйлы, рейсы. Чтобы понять важность подписи, достаточно посмотреть на свалку утерянного багажа в каждом аэропорту. То есть бумажка штрихкода оторвалась — и всё. Подписывайте.

Стоит заранее проверить, что ваша электроника работает от 110V 60Hz — у меня один системник не завелся. И купить переходников с US-розетки на евровилку на алиэкспрессе, иначе тут будет дорого — в BestBuy по 5 СAD за переходник, на Амазоне — 13 за пять штук.

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

Еду с собой везти нельзя. Точнее, категорически нельзя мясо/сало/мясопродукты, и с большими вопросами — молочку. Кошачий корм — чуть-чуть, на полраза могут пропустить.

У меня всегда при посадке болит левое ухо, поэтому у меня еще нафтизин в списке.

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

Перелет и посадка

Самое приятное после трансатлантики — это бюрократия. Ты в некотором охренении от долгих перелетов, уставших детей, джетлага, нехватки кислорода в самолете выходишь в аэропорт, где тебя ждут люди, принимающие окончательное решение — пустить тебя или нет. Этапы:

  1. Автоматизированный киоск для заполнения анкеты и фото.
  2. Иммиграционный офицер, который проведет собеседование со всеми взрослыми. Ага, даже если не знают языка.
  3. Иммиграционный офис там же. Получаешь номерок, ждёшь у табло, интервью. Получаешь Work Permit. Бумагу очень (!) тщательно проверить. Два раза. Одна опечатка — и после выхода из офиса у вас будет занятие на несколько месяцев. Если вдруг будете вылетать из страны, то эту бумагу нужно возить с собой.
  4. Забрать багаж с карусели.
  5. Таможня. Обычно всё просто и по зеленому коридору, но бывает и весело при выборочной проверке. Ну и кошки — сюда же.
  6. Убер.

Я еще проработал вариант «мобильник сдох» — поэтому у каждого была аварийная бумажка с адресами, телефонами и рейсами на двух языках. Про дропбокс молчу. Мой чеклистдля жены as is, она летела отдельно с детьми и кошками.

Мобильный и проездной: 90 USD

Как выспитесь — купить проездной и местную симку. Проездной на детей может быть сложнее.
Убер нужно тут же переключить на местную симку.

SIN: час

Получить «карту греха» (SIN card).

Банк: час

Оформить счет в банке. CIBC сейчас самый дружественный для свежеприехавших. Начать нарабатывать кредитную историю. Кстати, если сопрут/скопируют дебитную карточку — это твоя проблема. PIN-код и 3D secure не помогают. Поэтому — кредитка везде, где возможно, там Visa защищает.

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

Подтверждение адреса: неделя

Конверт из банка и счет-коммуналка за постоянную квартиру, пришедшие по почте — очень важны. Они являются аналогом прописки, без этого не получится ни школа, ни Costco.

Школа: пара часов — пара дней по паре часов

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

RAMQ: день

Оформить RAMQ не позже двух недель после прилета, иначе медстраховку придется докупать. Когда через пару месяцев придут карточки страхования — зарегаться в очередь к семейному врачу.

Costco / Kijiji / IKEA

Освоить бегло местные способы экономить: Costco == Metro Cash and Carry, Kijiji == OLX, IKEA — это понятно.

Машина

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

Страховка

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

Права: 200 USD

Записаться на сдачу прав. Это станет критичным через 3-6месяцев после прилета, и с первой попытки крайне мало кто сдает и теорию и практику, а между попытками — месяц.

Возможно, стоит записываться еще до перелета. Как раз почитаете двухтомник правил в свободное* время перед вылетом.

* сарказм

Социализация

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

Преподаватели обычно про это не говорят, но, судя по программам Израиля и Канады, освоить незнакомый язык с нуля — это год full-time до «начал говорить» и два до «говорю свободно». Конечно, с учетом личных особенностей и особенностей языковой пары.

Full-time — это когда пять дней в неделю занимаешься языком как работой. Понятно, что есть часы более эффективные — с преподавателем 1×1, а есть часы тупнячка над д/з.

Позже

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

О чем вновь договорились ІТ и государство. Коротко об итогах встречи

$
0
0

[Об авторе: Эдуард Рубин, сооснователь харьковского ІТ-кластера, депутат Харьковского облсовета, инициатор ряда независимых образовательных проектов]

Последнее время в сети разгорелась дискуссия о налоговой политике в отношении ІТ-отрасли. Последние пятнадцать лет эта тема поднималась не раз: и ІТ-ассоциации, и комитеты, и кластеры уже давно принципиально согласовали своё видение развития отрасли таким образом, чтобы развивалась инновационная отрасль и повышались налоговые отчисления государству. Но к государству есть вопросы по части того, в чём оно должно помогать отрасли, а именно развитием инфраструктуры и образования. Ни для кого не секрет, что ІТ-отрасль много делает для развития образования, помогая, а иногда и заменяя государство.

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

Дискуссию начал замминистр Минцифры Александр Борняков. Страсти в сети накалилась, и мы договорились встретиться у министра экономики Тимофея Милованова. И 6 февраля эта встреча состоялась. Со стороны ІТ-отрасли были представители ІТ-комитета ЕБА, ІТ Украины, Спілки українських підприємців, AmCham и Харьковского ІТ-кластера.

Со стороны государства — министр Министерства экономразвития, замминистра Минцифры, замминистры Минэкономразвития, представители офиса БРДО.

Хочу немного рассказать, что было на встрече, и о чем обе стороны договорились. Основная мысль — взаимовыгодное партнерство бизнеса и государства.

Амбициозные цели

Александр Борняков сделал довольно детальную презентацию тех цифр, которые сегодня есть в министерстве. В Украине сегодня около 200 тыс. программистов, оборот за первое полугодие 2019 вырос на 30% и составляет 1,64 млрд долларов. Налогов в бюджет было уплачено 6,1 млрд гривен, а рост составил около 30%. Казалось бы, солнце всходит и заходит, и главное его не трогать.

Но цели у государства амбициозные: доход от экспорта довести до 13 млрд долларов, количество ІТ-специалистов до 650 тыс. человек, а долю ІТ в ВВП государства довести до 10%.

Круто. Мы только «за». Но амбициозные планы не выполняются кнутом, их должны акцептировать все стороны процесса, почувствовать и вместе строить план выполнения. Тарас Кицмей рассказал о наших наработках и видении для достижения этих результатов: создание отдельной группы ФОП для ІТ, которая будет регулироваться по инновационным принципам.

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

Что входит в этот план

Изменение налогового законодательства:постепенное повышение налогов на ФОП для ІТ-специалистов, которое позволит плавно повысить доход государству и не будет мешать бизнесу (детали будут обсуждаться в рабочих группах).

Украинская система налогов для IT работает более 20 лет. Именно она позволила IT-индустрии вырасти с нуля до таких объемов, что стала третьей по экспортному потенциалу в стране. Украина также занимает 5 место по объему аутсорсинга в мире. В этой системе есть много своих проблем. Одна из них — устаревшие инстанции, например, инспекция по труду, которой не дают покоя ФОПы. Эта ситуация надоела всем: и компаниям, и государству. Поэтому создание 5 группы ФОП даст возможность легально выстроить для ФОПов контрактную систему и дать им право работать хоть с одной фирмой, хоть с десятком.

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

Будет переход на ФОП-5 и будет IPbox для продуктовых компаний. При этом люди могут оставаться и на ФОП-3 и иметь трудовые отношения.

Смена трудового законодательства,которое узаконит контрактную форму сотрудничества. На сегодняшний день мы работаем с законодательством бывшего СССР, которое не отвечает современным темпам развития. Современный тренд Gig Economy, который уже используется во многих странах, а у нас работает почти 20 лет (но мы не знали, как это называется :), перехватили западные экономисты и внедряют у себя. Именно поэтому нам теперь необходимо привести законодательную базу к современному тренду. И в этом плане мы сравняемся с мировыми экономиками.

Введена квота на иммиграцию высококвалифицированных ІТ-специалистов.Первый год на 5 тыс. человек. По аналогии с Green и Blue-картами, я бы назвал нашу «жовто-блакитною картою» :) Этот закон позволит легко получать вид на жительство и право на работу высококвалифицированным специалистам, которых наши компании могут приглашать на работу. Также стартапы смогут создавать и граждане Украины, и зарубежные специалисты. Они смогут находиться в Украине, здесь вести инновационную деятельность в течении необходимого времени, платить налоги. Я считаю, что это очень интересный шаг. Квота на 5 000 человек — это эксперимент на первый год, чтобы отработать процессы.

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

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

Дорогу здолає той, хто йде, а гуртом і державу змінювати легше.

Как измерить программиста

$
0
0

[Об авторе: Руслан Дмитракович — разработчик ПО и предприниматель, в ИТ-индустрии с 1994 года. Пионер интернет-рекламы в Украине: основатель Украинской баннерной сети, рекламного агенства «Интернет-эксперт». Создатель проекта Code X-ray —повышение эффективности работы команд разработчиков на основании статического анализа кода]

Решил свой рост узнать удав!
И в этом он, конечно, прав.
Ведь это важно очень!
Возможно, он длиннее всех!
Во много раз длиннее всех!
«38 попугаев» Г. Остер


Некоторое время тому назад у меня возникла задача оценить группу программистов, работающих над проектом. Задача показалась мне необычной и интересной. Ситуация напоминала мультфильм «38 попугаев»: нужно измерить удава, но как это сделать — неизвестно. В результате появилась методика, которую я хочу представить в этой статье.

Иллюстрация Ульяны Морозовой

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

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

Не все программисты «одинаково полезны»

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

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

В работе программиста не все так однозначно. Что является «продукцией» в данном случае? Например, программист Николай, решая задачу, будет, не вставая со стула, стучать по клавиатуре три дня и создаст множество кода.

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

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

И всё-таки любой, кто сталкивался с разработкой, знает, что не все программисты «одинаково полезны». Эта разница может быть ощутима. В реальности чаще всего такая оценка делается интуитивно. Интуиция — это часть опыта человека, соответственно, у менеджера проекта и техлида интуиция будет давать разные результаты. Менеджер проголосует за пыхтящего Николая, техлид — за Василия, решившего задачу, с его точки зрения, лучше. Но кто же из них прав?

Оцениваем качество работы

Оценить действия ближнего своего люди пытаются с давних времён. Решая эту проблему, индусы придумали понятие «карма»: последствия твоих действий влияют на твоё будущее. Та же идея применима к программисту, работающему над проектом. И в данном случае кармой является та сложность, которую программист привносит в проект. За это он и его коллеги будут расплачиваться в последующих итерациях потерянным временем и ошибками.

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

Понятия «легаси» и «говнокод» прочно вошли в лексикон разработчиков ПО. Надо понимать, что говнокодом принято называть код, несущий избыточную когнитивную нагрузку. Чем меньше эта нагрузка, тем быстрее разбирается программист с кодом и тем меньше ошибается. Почему так происходит, можно почитать, например, у Даниэла Канемана в книге «Думай медленно, решай быстро»или у Дэвида Рока «Мозг. Инструкция по применению».

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

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

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

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

Пример

Наконец удав почувствовал, что его дёргают за хвост!
«Ага! — подумал удав. — Начали измерять!»


Чтобы не быть голословным и показать, как это работает, рассмотрим реальный проект примерно на полмиллиона строк кода. Возьмём трёх программистов, сделавших в проект значительный вклад.

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

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

Для построения графиков использовались цикломатическая сложность, средний размер метода (в строчках кода), композитные метрики: weighted methods per classи сопровождаемость кода (maintainability).

Как видно из графиков, синяя кривая находится выше, что означает более сложный код, написанный программистом DEV-1. Программисты DEV-2 и DEV-3 пишут код примерно одинаковой сложности. Формально все они имеют одну и ту же квалификацию, но анализ показывает, что между их кодом есть ощутимая разница. Особенно интересны эти данные, когда тебе известен опыт людей, отношение к ним в коллективе и их самооценка.

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

Измеряем производительность

А как насчёт производительности? Есть мнение, что измерить ее в масштабах всего бизнеса невозможно, и с этим я спорить и не буду. Однако если оперировать не деньгами, полученными от работы ПО, а артефактами внутри программного проекта, то кое-что измерить можно. Корреляция между объёмом кода (строк, классов, методов и т. д.), написанного программистом, и функциональностью программы есть. Однако значимость кода в проекте не одинакова.

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

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

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

Однако как определить формально, какой код имеет больший вес? В своё время похожую задачу решали создатели Google по отношению к документам в интернете. И если мы можем использовать Page Rank для определения важности документа, то почему бы не применить его к коду?

Итак, вкладом программиста в проект я буду называть объем написанного кода, умноженный на его PR. Следует понимать, что считать его также можно по-разному, и дело не в абсолютной точности, а в возможности сравнения.

Пример

И снова посмотрим, как это выглядит на примере нашего проекта.

На рисунке показаны пакеты, в которые вносили изменения разработчики. Размер сектора диаграммы соответствует проценту строк кода в пакете, написанных программистом. Как видим, разработчики довольно часто работали в рамках одних и тех же пакетов.

Диаграмма ниже отображает суммарный вклад разработчиков в проект.

Те же данные в виде таблицы:

РазработчикиСтрок кодаСтрок кода, %ПакетовВклад, %
DEV-150К9366.94
DEV-236К7288.37
DEV-323К4156.2

Больше всего пишет DEV-1 (50 тысяч строк, или 9% кода проекта), но его средняя ценность почти в два (!) раза меньше, чем у DEV-3. Если учесть, что этот код ещё и более сложный, то можно понять, откуда берётся легаси — чем сложнее код и чем его больше, тем тяжелее его сопровождать. В какой-то момент может оказаться, что лучше такой код вообще не трогать...

И напоследок посмотрим, как выглядит вклад разных команд (по три разработчика в каждой).

Как видим, команды более-менее сбалансированы, вклад в проект у них примерно одинаковый.

Однако, похоже, закон Паретоприменим и к разработке. Видно, что практически везде есть свой «локомотив», который реализует большую часть функционала, разрабатываемого командой. А также то, что одни разработчики в разы отличаются от других с точки зрения вклада в проект.

Ну, и любопытный вывод для команды 2. Очень похоже, что техлид в ней действует по принципу «Хочешь сделать хорошо — сделай это сам»...

Выводы

— Теперь, — воскликнул удав, — когда приедет моя бабушка и скажет:
Ну, внучок, ты, кажется, вырос!" — я ей отвечу: «Да, бабушка, я вырос».
И я скажу ей свой рост в попугаях!


Если вы посмотрите полюбившийся многим «Чистый код»Боба Мартина, вы не найдёте чёткого определения, что этот самый «чистый код» собой представляет. Это свидетельствует о том, что у большинства есть только интуитивное представление, «что такое хорошо, и что такое плохо» по отношению к коду. В ходе данной работы я попытался объяснить это показателями, которые можно измерить.

Попытаюсь резюмировать. Чистый код — это код с минимальной когнитивной нагрузкой. Когнитивная нагрузка может быть оценена при помощи метрик сложности. Хороший программист (для долгосрочного проекта) — тот, который «инвестирует» в будущее — увеличивает количество кода, который можно переиспользовать и минимизирует сложность, которая тормозит развитие.

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

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

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

10 инструментов эффективной работы, или Забудьте о многозадачности

$
0
0

[Павел Обод — основатель Growth Factory — обучающей платформы для IT-предпринимателей, организатор конференции Outsource People, CEO Sloboda Studio — RoR agency]

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

1. Контроль затрат энергии

Есть такие таски, которые занимают не очень много времени, но требуют много энергии. Для меня это монотонная, рутинная работа, например, набирать текст. Она утомляет, хотя мозг в процессе почти отключается.

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

Учитывайте энергетические затраты на задачи в своем плане на день. Для продуманного распределения своих запасов энергии можно планировать жизнь на 5–6недель вперед. Так, чтобы в это время обязательно были вещи, которые вас заряжают, даже самые простые. Например, побыть наедине с собой, отдохнуть, куда-то съездить.

2. Так ли нужна многозадачность, как принято считать

Давайте сделаем небольшое упражнение.

Включите секундомер и напишите от руки: «Съешь еще этих мягких французских булок». Засеките время, которое вы потратили на написание. Теперь подумайте, во сколько раз быстрее или медленнее вы напишете ту же фразу, если будете одновременно писать ее в две строки, но по одной букве: вначале в обеих строках букву с, потом твердый знак, потом в каждой строке буквы е, ш и т. д. Снова включите секундомер и теперь пишите два предложения одновременно по букве. Я потратил примерно в 4 раза больше времени.

Не верьте в многозадачность. Если вы делаете один таск — делайте только его. Кроме того, когда вы делаете один таск и получаете результат, вы радуетесь. Это тот самый отчасти медитативный процесс, творческий поток, когда вы глубоко погружаетесь в разработку или создаете концепт.

Люди очень легко отвлекаются. Во время работы над сложными задачами убирайте от себя соблазны — отключайте мессенджеры, уносите телефоны в другую комнату. Выделите себе дома «кресло без вайфая», сидя в котором вы обязуетесь не пользоваться интернетом. Когда я арендовал квартиру, то первый год не подключал интернет вообще. Мобильный интернет тогда был дорогим и медленным. И это было круто: вернувшись домой, я мог углубиться в важные, интересные задачи.

По отношению к отвлекающим факторам предлагаю делить задачи так:

  • Коммуникации и мелкие задачи: мессенджеры и прочее — ок.
  • Сложные задачи: отключайте мессенджеры, а в хард-моде — и телефон.

3. Принцип лягушки

Это классика тайм-менеджмента, поэтому простите, если вы уже знакомы с таким подходом.

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

  • задача-лягушка потом не будет квакать и напоминать о себе;
  • вы будете чувствовать себя победителем, знать, что вы молодец и смогли съесть лягушку.

4. Метод прогрессивного джипега

Раньше, во времена медленного интернета, jpeg-картинки грузились полосами сверху вниз. Потом изобрели прогрессивный jpeg, который вначале подгружал целую картинку с низким разрешением и постепенно прорисовывал детали. Тогда это было довольно удобно.

Смысл метода — не стараться сделать каждую часть задачи идеальной до перехода к следующей. Вначале вы делаете все как-нибудь, а потом постепенно улучшаете. И даже если не хватит времени закончить, у вас в любой момент будет готовая версия, просто определенного качества. То есть лучше сделать 100% задачи с качеством 2 из 10, чем сделать задачу на 20%. Лучше пусть у вас будет машина, которая плохо едет, чем только идеальный руль. Подход может быть удобным, когда вы составляете договор, пишете концепт или даже разрабатываете софт. Собственно, это MVP (minimum viable product) любой задачи.

Иногда не знаешь, как сделать хорошо, а плохо делать не хочется, потому что потом будет стыдно перед собой и другими. Или боишься, что вообще не сможешь сделать. В итоге прокрастинируешь и совсем не делаешь нужную задачу. В этом случае надо сказать себе: «Ну давай сделаем максимально плохо. Сделай самый ужасный договор, какой только можно». По собственному и чужому опыту знаю, что даже создание нового документа с нужным названием помогает начать работу и получить исходную версию. В 99% случаев потом вам захочется улучшить MVP.

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

Такой подход нужен, когда у нас ограничено время, или вы не знаете, сколько времени займет задача, или когда задача может занять значительно больше времени, чем запланировано. Бывают случаи, когда результаты непропорциональны затраченному времени. Например, 1 час уходит на то, чтобы сделать задачу с 80-процентнымкачеством, а потом еще 4 часа на то, чтобы сделать 100%. В таком случае часто можно пойти на компромисс и не делать задачу на 100%.

5. Правило Чехова, оно же правило паровоза

Когда у Чехова спросили: «Антон Павлович, а как вы себя заставляете писать?» — он ответил, что просто берет ручку и начинает писать то, что приходит в голову: «Вот что-то не хочется писать. А писать-то и надо. Надо бы и героя обрисовать, внешность ему сделать». Начав записывать свои мысли, он постепенно вовлекается в процесс и делает что-то полезное.

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

6. Правило 2 минут

На мой взгляд, несколько спорная, но все же рабочая идея. Логика тут такова: если вам нужно что-то сделать и это займет меньше 2 минут, лучше сделать это сразу. Потому что иначе вам придется записать задачу или держать ее в голове, постоянно к ней возвращаться и потом все-таки делать, в итоге потратив гораздо больше 2 минут.

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

7. Метод виноградинки

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

Как метод применим в жизни? Например, вы хотите повысить кого-то из сотрудников или выбрать одного из кандидатов на вакансию. Даже если они очень близки по всем критериям, все равно один будет «крупнее», будет лучше подходить для вашей цели.

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

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

8. Сколько стоит ваш час

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

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

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

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

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

Мои подходы к работе с ассистентом:

  • доверие очень важно. Ассистент будет иметь доступ к вашей почте, соцсетям и, вероятно, банковскому счету;
  • скринкаст — очень удобная штука, которая помогает быстро сформулировать задачу. Например, я записываю короткое видео с инструкцией о покупке авиабилетов. Неважно, где находится ассистент, он может посмотреть его позже, может возвращаться к скринкасту при необходимости, и главное, мне больше не нужно будет объяснять, как заказать билеты;
  • таск-менеджер помогает быстро и наглядно давать задачи ассистенту;
  • где искать ассистента: это может быть джун, ваш сотрудник, знакомый студент. Можно попросить рекомендации у знакомых.

9. Принцип слона, или Искусство маленьких шагов

Основа принципа — «Молитва» Экзюпери об искусстве маленьких шагов. Ее идея в том, что мы часто хотим получить все быстро, а нужно регулярно и постепенно двигаться к результату. Меня сейчас расстраивает мой медленный прогресс в немецком, а когда-то огорчал медленный прогресс в английском. Но я понимаю, что шаг за шагом я иду к хорошему уровню. Не всегда развитие стремительное. За историями о one night success очень часто стоят многие часы труда.

Как съесть слона? По маленькому кусочку. Многие сложные вещи нужно просто резать на кусочки и делить на части.

10. Метод стрелы

Это мой авторский метод :) Так мы работаем со спикерами для конференции. Если менеджеры будут писать напрямую докладчикам, им зачастую просто не ответят. Поэтому я пишу спикерам первым, а когда они соглашаются, передаю работу менеджерам.

Я выступаю наконечником стрелы, делаю небольшую, но самую важную часть работы, а менеджеры — как древко стрелы — выполняют остальное. Не нужно брать на себя все, но и не стоит отправлять своих сотрудников делать работу с пустым древком.

Итог

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

Удачи в выполнении ваших задач!

«Если бы у вас был миллион долларов, вы бы не работали в аутсорсинге». Почему не стоит забрасывать мечты о своем бизнесе

$
0
0

[Дмитрий Скороход — iOS-разработчик, с 2012 по 2019 год работал в аутсорсинге, сейчас — в продуктовой компании Readdle. Автор проекта «Що має знати Senior» на DOU, в прошлом — автор iOS дайджеста]

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

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

Иллюстрация Ульяны Патоки

Преданные мечты

Если бы у вас был миллион долларов, вы бы не работали в аутсорсинге. И не эмигрировали на любых условиях. Я пробовал и то, и другое, потому что у меня тоже нет миллиона. И я не д’Артаньян, который хочет похвастаться и упрекнуть вас. Мы с вами выбрали более безопасный путь, потому что люди, которые вышли из бедности, боятся рисковать из-за страха оказаться в нищете. Да, я боюсь рисковать, и вы тоже, поэтому мы зарабатываем не созданием стартапов и продуктовых компаний, а продажей человеко-часов. А сколько стоит ваша человеко-жизнь?

Я готов поверить, что вы любите программирование. Я тоже. Но признайтесь сами себе: имея выбор, пилили ли бы вы свой проект? Аутсорсинговая индустрия забрала у вас этот выбор в обмен на стабильность. И вы выдохнули с облегчением. Все наши pet-проекты — это бизнесы, которые обречены по причине нехватки времени.

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

Простая математика показывает, что, если продать человеко-время 200 тысяч программистов по 2000 долларов в месяц, к нам в экономику за год зайдет 4,8 миллиарда. Доход Facebook составляет 55 миллиардов при 40 тысячах сотрудников. Это шах и мат.

Компания, которая в 10 раз меньше Facebook, способна генерировать больше, чем вся IT-отрасль Украины, вместе взятая. Но у нас не появится такой компании, потому что наши руки связал аутсорсинг. Потенциальные фаундеры променяли бизнес на смузи и мохито, которые исправно поставляют заморские заказчики.

Я не просто ратую за развитие культуры предпринимательства среди IT-сообщества Украины. Я хочу сказать больше. Может быть, вы всю жизнь мечтали стать художником? В таком случае мне хотелось бы прочитать на DOU вашу историю, как программист стал художником и уехал в Сингапур по визе для творческих талантов. Зачем продавать свое время, если можно идти к своей мечте?

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

Исследованияэкономистов показывают, что повышение уровня доходов не приводит к росту уровня счастья после определенного порога. Для США этот порог — 75 000 долларов в год. Нет смысла гнаться за деньгами, если ваша цель — счастье. Но есть смысл построить свой бизнес, сколько бы он ни приносил. Издание Inc. писало, что предприниматели более счастливы, чем наемные работники, и имеют меньше проблем со здоровьем — как соматическим, так и психическим. А если свое дело построено вокруг собственной мечты, то, я уверен, такой человек, будь он предпринимателем, художником или поэтом (ха-ха), будет еще более счастливым. И не нужен вам тот миллион, чтобы делать то, что вы бы делали, будучи миллионером. Дверь на самом деле и так открыта.

Проблема заключается в том, что стать крутым художником гораздо сложнее, чем плохим программистом. При этом любой плохой программист найдет рано или поздно свое место на рынке труда. Ни один слабый художник, поэт, писатель или предприниматель не сможет выжить на Земле. Чтобы достичь независимости, нужно стать в своем деле гораздо круче, чем вы есть сейчас. Буквально прыгнуть над своей головой. Когда все и так хорошо, для этого может попросту не быть мотивации. Ее нет у вас и нет у меня, вот почему мы с вами останемся до конца жизни наемными программистами. Или все-таки нет?

Четыре <не>простых шага

Что я предлагаю? Самое меньшее, что вы можете сделать, это перейти из аутсорсинга в стартап или продуктовую компанию, чтобы набраться опыта работы с продуктом. Но самое главное — набраться вдохновения. В прошлом году я сделал этот первый шаг и, поверьте, больше никогда не вернусь в аутсорсинг ни за какие деньги. Атмосфера, когда люди вместе несут ответственность за бизнес, несопоставима и несовместима с психологией исполнения, царящей в аутсорсинге: моя работа отвечает требованиям, а как она связана с прибылью заказчика, не мое дело. Если вы не понимаете экономику проекта на работе, не стоит удивляться, что ваш pet-проект не взлетает.

Следующий шаг — не опускать руки, делая свои pet-проекты. Однажды я вложил в личный проект около 5 тысяч, а получил на выходе доход в 5 долларов. Это очень разочаровывает. Даже разбивает. Сейчас я понимаю, что полученный опыт таки стоит потраченных денег.

Имея более тысячи загрузок в месяц, я не нашел способ, как монетизировать свои iOS-приложения. Но получил ценную информацию: поиск App Store способен дать органический трафик без вложений в рекламу. И я могу примерно оценить объем трафика для приложений, релевантных тем или иным поисковым запросам. Эти знания я использую, работая над своим следующим проектом. Мне нравятся нишевые вещи. Я верю, что в своей нише вы можете быть интересны. Если у вас не получилось, надо все равно идти вперед: вы не теряете деньги, а вкладываете их в получение опыта.

Третий шаг — купите квартиру. Никогда ее не закладывайте. А в будущем используйте для того, чтобы целый день работать над своим проектом. Почему большинство эмигрантов всю жизнь остаются наемными работниками в Эльфиях? Потому что вы не можете остановиться, пока выплачиваете ипотеку. Но в Украине с зарплатой программиста квартиру можно купить относительно быстро, необязательно в Киеве. И использовать ее для работы фултайм над своим проектом. Так что хватит смеяться над нашими бетоно-метрами! :)

Конечно, кроме жилья, вам понадобятся деньги, чтобы кормить себя и семью (если она есть). Но здесь все зависит от запросов. Зарплата джуниора находится в пределах 500-1000 долларов.Люди как-то живут на эти деньги. Если, будучи мидлом или синьором, вы зарабатываете 2-4 тысячи,вам достаточно отказаться от кафешек, одеться один раз на Седьмом километре, а потом год ходить в потертых джинсах; и вы сможете за этот год собрать денег еще на год такой жизни. Ваша мама не откажется от вас из-за потертых джинсов. Ваша жена будет даже более счастлива, если вы компенсируете экономию вниманием. А настоящие друзья всегда познавались в сложных ситуациях. Если же говорить еще более откровенно, то всем нам придется однажды выживать на государственную пенсию.

Четвертый шаг — саббатикал. У меня есть опыт перерывов в наемном труде от 2 месяцев до года для того, чтобы позаниматься самообразованием и поработать над своими проектами. Вы знаете, это сложно. Как организационно, так и финансово. Но реально.

Основная сложность — действительно работать. К сожалению, не сразу удается войти в рабочий ритм, не имея начальства. Отпуска в 2-3месяца хватает только на то, чтобы отдышаться, подумать и прочитать художественную книгу. Действительно эффективный отпуск — это год. Готовиться к такому перерыву в наемной работе нужно 1-2 года.Чем больше у вас сбережений, тем лучше, потому что, когда заканчиваются деньги, начинаются нервы и ваша эффективность падает.

То, что вы гарантированно приобретете, это дисциплина. Проекты имеют свойство не взлетать. Но вероятность успеха не нулевая. Допустим, 1%. Это значит, что, если хотя бы 2 тысячи программистов возьмут по саббатикалу, результатом станет возникновение 20 новых прибыльных продуктовых компаний. Для Украины даже это будет ощутимым успехом.

Драйв, кайф и счастье

Аутсорсинг напоминает мне какую-то нефтяную отрасль в маске IT. И не только сырьевой сущностью, но и гордостью за высокие зарплаты. А на самом деле это продажа своей «человеко-жизни» за фантики, которые стали для вас фетишем. Психологическая травма бедного детства дает о себе знать. Ведь давайте скажем честно: в IT все из бедных семей. Иначе, почему вы не учились в Гарварде?

Делать компьютерные программы — это драйв, кайф и счастье. Но! Когда вы в детстве мечтали создавать игры, вы ведь хотели на самом деле определять их сюжет, правда? Своим умом делать их как можно более захватывающими для игроков? Вы хотели посвятить себя своему проекту. Почему же вы отошли от этой цели?

Забудьте о деньгах настолько, насколько это возможно. Важны ваши чувства. Давайте доверять себе. И пусть для каждого из нас сегодняшняя мечта завтра станет делом всей жизни. А все остальное приложится.

Учимся чувствовать себя лучше, или зачем нам wellbeing

$
0
0

[Об авторе: Михаил Завилейский — Organisational Architect в DataArt. До прихода в компанию 10 лет работал программистом и менеджером]

Чувствовать себя лучше — лучше.Лично у меня нет в этом сомнений. Почему мы хотим чувствовать себя лучше и насколько это повышает производительность труда в каждом конкретном случае, по-моему, не так уж важно. Мы взаимодействуем в различных обстоятельствах, стремясь достичь целей, которые у нас не всегда совпадают. Достигая целей, мы радуемся. Но вскоре выясняем, что радость достижения непродолжительна, и окончательного счастья для нас не наступило. Это понятно: терминальная стадия только одна — смерть, которую вряд ли можно ассоциировать со счастьем. Именно по этой причине проблема благополучия упирается в вопрос, сумел ли ты сам процесс движения к цели сделать таким, чтобы он доставлял удовольствие.

Зачем велбиинг компаниям

Некоторые совместные действия синергичны по сути, они безусловно предполагают удовольствие для всех участников. Скажем, приятный разговор с друзьями или совместные занятия спортом. Но существуют и ассиметричные активности, когда одни люди удовлетворяют потребности за счет других — побеждают и доминируют. Это неотъемлемая часть жизни, такие формы поведения возникают естественным путем, просто потому что так устроены человеческие стада, которыми остаются любые организации.

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

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

Иллюстрации Каталины Маевской

Самый классический пример: спросите человека, доволен ли он зарплатой. Очень многие задумаются, связан ли этот вопрос с возможностью ее повышения. Т. е. его постановка подсказывает ответ «недоволен»: в худшем случае все останется, как было, в лучшем — можно ждать прибавки. Конечно, мы проводим регулярный опрос коллег — каждый год мы спрашиваем, насколько они довольны работой и что хотели бы изменить. Но здесь важна динамика — сравнение с результатами прошлого года и ранее: если показатели вдруг начнут падать, нужно что-то менять. В абсолютных цифрах единичный опрос все равно не может выявить, насколько люди довольны жизнью.

Что нам остается? Опираться на авторитетные суждения и мировой дискурс. Этим как раз вызван наш интерес к теме велбиинга и «счастливого образа жизни».

Мы предполагаем, что в мире есть люди более компетентные в гуманитарных областях, чем мы — инженеры. Мы также можем надеяться, что следовать в кильватере мировых трендов скорее полезно, чем вредно. Наконец, нет пророка в своем отечестве, а здесь есть на что опереться — какие-то вещи, о которых мы раньше говорили просто в силу внутренних убеждений, вдруг оказались важны и во внешнем мире. Из всех ответов на вопрос об эпидемии коронавируса мне больше всего нравится один: «Мы следуем рекомендациям ВОЗ». Просто потому, что лучшего варианта, чем прислушаться к мнению компетентных людей, пока никто не придумал. Особенно в зашумленном мире, где отделить подлинную информацию от пены чрезвычайно сложно.

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

Культура организации не полностью и не эксклюзивно, но существенно зависит от лидеров. Среди них могут преобладать те, кто движет компанию вперед уровнем своих амбиций — будь то желание заработать больше денег, потребность в самореализации и стремление изменить мир. Они видят полезные свойства людей, но все остальные их свойства кажутся им скорее проблемой. Есть другая категория лидеров: они ориентированы на людей, хотят как можно больше людей обслужить или вовлечь в работу. Им нравится смотреть на каждого человека в комплексе и думать, как максимальное количество его свойств приспособить к делу. Конечно, если забота о коллегах — часть вашего мировоззрения, поддерживать ее уровень будет легче. Одну из концепций DataArt его основатель Женя Голанд сформулировал на самом раннем этапе: «К нам присоединяются люди — от этого нам польза». Эта базовая вводная остается с нами и, даже покупая на рынке труда конкретные скиллы, стараемся смотреть не только на них, когда человек выходит на работу. В значительной степени это институциализировано. Например, любая группа внутри компании у нас вправе не принять того, кто ей не подходит, но не вправе его уволить. Согласно нашим политикам, компания обязана потратить усилия, чтобы найти ему новое место.

Но ключ к собственному благополучию все равно остается в руках каждого человека.

Зачем велбиинг лично вам

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

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

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

Итак, у нас имеется неопределенное духовное Я, к которому прилагается неполный и неточный словарь для обсуждения. Есть у нас, кстати, и Я физическое, ясности с которым как будто больше. При этом к последнему люди часто относятся с меньшим трепетом. Мало кто сомневается, что лишившись, скажем, конечности, он не перестанет быть собой. Хотя на самом деле мироощущение при этом поменяется очень сильно. Остается ли человек самим собой при изменении гормонального фона или когда стареет? Вроде бы да. Хотя никто не сомневается, что такие изменения чрезвычайно сильно на нас влияют. Самым продуктивным подходом мне кажется один — расслабиться по поводу собственной идентичности в пользу оценки фактов.

Менять собственное восприятие мира страшно, потому что это кажется покушением на внутреннюю сущность человека. Объектом сохранения при этом становится то самое Я — чистая абстракция. Чтобы прогрессировать, куда продуктивнее опираться на факты — то, как я взаимодействую с людьми, или то, что происходит вокруг, помимо моей воли. Например, у меня есть набор мыслей, которые я думаю, если хочу заснуть. Это просто эмпирический факт, я просто знаю, что вот эту мысль еще ни разу в жизни не додумал — засыпаю. И отлично! Если я перепил кофе или в интернете кто-то опять не прав, эта мысль поможет мне отправить себя в сон, сэкономив время и силы.

Благополучие на работе

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

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

Если ты устал и сил явно не хватает, лучше не браться за сложный кусок работы. Зато можно обратиться к простым действиям, которые каждый называет по-своему. Допустим, рутинки или регулярные активности. Типичная задача рутинки — уменьшить количество флажков, расставленных в почтовом ящике, вдвое. Это тот случай, когда можно позволить внутреннему Я повести себя трусливо — выбрать самые понятные письма и на них ответить. Было 100 неотвеченных писем, стало 50 — ты сразу почувствуешь, что работал не зря.

На самом деле, работа эта относительно бесполезна. Оттого, что ты ответил: «Да-да, хорошо, давайте! Извините, что вовремя не отреагировал», — мало что изменится. Но людям будет приятно: ты о них не забыл, да еще и признал ошибку. Наверное, стоит осознавать, что, отвечая на эти письма, ты просто прятался в кустах — ну и что? Выспишься или поешь, почувствуешь себя бодрее и приступишь к делам в непростых зонах.

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

Сортировка задач

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

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

Легкомыслие против перфекционизма

В такие же игры с требованиями можно играть с самим собой. Например, ты вписался сделать презентацию к определенной дате. Точно так же, как и в программистском прошлом, нужно поставить себе дедлайн, отвести определенное количество часов, которое нужно на подготовку. Чтобы упростить задачу, дальше ты сам с собой устраиваешь конвейер. Пишешь тезисы (тут уж как получится). Поскольку ты знаешь, что презентация в отрыве от тезисов — это некрасиво, ты переносишь их в структуру слайдов. Затем эти слайды наполняешь. Остается дополировать результат, но эту часть работы нужно дозировать. Взаимодействие докладчика с аудиторией — метафизический акт, которому чрезмерная полировка исходного текста не поможет. Конечно, если речь не о сейлз-презентации, с которой ты собираешься выступить 300 раз в течение года, кочуя по выставкам. Если ты профессиональный перезентер или коммивояжер, рассказ должен отскакивать от зубов — это того стоит, выступать будет намного легче. Это как с телевизионным рекламным роликом, на изготовление которого тратят миллионы долларов, просто потому что его прокрутка принесет десятки миллионов. Лишние затраты на подготовку почти не скажутся на окончательной стоимости кампании, значит, попытка довести продукт до совершенства выглядит разумно.

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

Проявляя к себе снисхождение, ты рискуешь показаться легкомысленным. Но, наблюдая за людьми, я убедился, что легкомысленные в целом счастливее. Я видел немало коллег, сочетающих недюжинную меру таланта с ощутимой долей легкомыслия — они довольно уверенно идут по жизни и неплохо себя ощущают, распространяя положительный настрой на окружающих. Да, они не зарабатывают максимального количества денег, которое могли бы заработать, и да, за ними кто-то временами прибирает. Но и прибирать за ними не так неприятно, как за теми, кто успевает не только иногда пачкать, но и постоянно есть твой мозг. При нормальном уровне результирующего перформанса (конечно, это важное условие!) они чувствуют себя лучше тех, кто отягощен огромным количеством внутренних обязательств и связанных с ними тяжелых ощущений. Потому что вопрос не только в том, куда ты хочешь прийти, но и в том, куда хочешь толкать.

Сфера ответственности

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

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

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

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

Проблема плоских компаний

Задумываясь о том, какой мы хотим видеть свою организацию, мы сформулировали принципы, отрицающие авторитарное руководство. Но у гуманитарных приоритетов есть обратная сторона. Допустим, мы временами страдаем от толпизма: для обсуждения самых разных вопросов у нас собирается много народу, и тут общим вектором легко становится сохранение статуса-кво с пребыванием на среднем уровне. А это уровень всегда не выдающийся.

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

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

Многие коллеги со мной не согласятся: «Как же так, если ты сразу смиришься с неизбежным — мир станет намного хуже». Но многие рыцари уходили на поиски священного грааля, а ветряные мельницы все еще стоят. Если максимум, на который ты способен в конкретной ситуации — немного исказить картину ряби на поверхности событий, вряд ли это стоит сверхусилий.

***

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


Зарплатная аналитика в реальном времени. Как пользоваться телеграм-ботом Джинна

$
0
0

Каждый раз, когда на рынке происходит что-то непонятное, как сейчас, наблюдается резкий всплеск интереса к аналитике: компании и сотрудники хотят понимать, что происходит, к чему готовиться, что будет завтра. Мы видели это в 2014 году на ДОУ и видим это сегодня и на ДОУ, и на Джинне.

У Джинна, вероятно, сейчас больше всего данных о рынке, вакансиях, зарплатах. Каждый месяц у нас публикуется около 7500 ІТ-вакансий и происходит около 60 тысяч контактов. Больше, наверное, только у LinkedIn, но им вряд ли интересен украинский рынок. И уж точно ни у кого нет таких данных по наймам.

Чтобы помочь разобраться в происходящем, мы в авральном режиме доработали телеграм-бот Джинна (@djinni_jobs_bot). Теперь можно смотреть аналитику по зарплатам, кандидатам и наймам практически в реальном времени. В этой статье я расскажу, как им пользоваться и как правильно интерпретировать цифры, которые он вам показывает.

Поехали!

Как пользоваться ботом: открываете @djinni_jobs_bot в Телеграме, нажимаете /start и затем /salaries.

Для примера посмотрим на статистику по Java.

/salaries senior java kyiv/salaries junior java
Статистика на Джинне по запросу senior java kyiv:

Вакансий опубликовано: 151
Откликов на одну вакансию: 1,0
Вилка по зарплате: $3000-4500
Статистика на Джинне по запросу junior java:

Вакансий опубликовано: 19
Откликов на одну вакансию: 20,7
Вилка по зарплате: $500-1000
Кандидатов в поиске: 47
Ожидания по з/п: $4000-5000
Зарплата по наймам: $3800-5000
Наймов: 32
Кандидатов в поиске: 237
Ожидания по з/п: $400-600
Зарплата по наймам: $400-650
Наймов: 35

Бот умеет искать по тайтлу (позиции) и по городу. К синтаксису бота мы еще вернемся, а пока посмотрим на статистику. Что здесь интересного? Статистика состоит из трех частей: вакансии, кандидаты, наймы.

Вакансии

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

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

В нашем примере получилось 151 вакансия для Senior Java и 21 вакансия для Junior Java.

Несколько слов о том, как работает поиск: бот ищет только по тайтлу (названию вакансии). Если вакансия называется «Java-бог» или «Разработчик Java с большим опытом», то в статистику Senior Java она не попадет. А вот «синьор-помидор java» попадет, т.к. работают синонимы.

Идем дальше. Отклики.

Senior Java Киев получили в среднем по одному отклику на вакансию, Junior Java — 20.

Цифры по откликам не очень точные: для ускорения подсчета мы не пересчитываем их каждый раз заново, а берем счетчик откликов вакансии. Если вакансия висела несколько месяцев, то и откликов у нее будет больше. Но абсолютные цифры нас не очень интересуют, нам важнее относительные. На вакансию Senior Java вы получите примерно в 20 раз меньше откликов, чем на джуниор вакансию — sounds about right.

И, наконец, зарплаты.

Все вакансии на Джинне имеют зарплатную вилку, но она не публичная. Подробнее об этом я рассказывал в Телеграме, но если в двух словах — компании ее указывают, чтобы их вакансия попадала в рассылки/рекомендации нужным кандидатам.

Для статистики мы считаем медиану.

$3000-4500 означает, что медиана нижнего значения для вилки Senior Java составляет $3000, а медиана верхнего значения — $4500. Может оказаться, что вакансий, в которых буквально указана вилка $3000-4500, и нет, но этот диапазон — это наиболее точное среднее значение для всех вакансий senior java kyiv.

С вакансиями разобрались, дальше будет проще.

Кандидаты

Как вы, наверное, знаете, на Джинне кандидаты публикуют профиль, чтобы компании сами им писали и предлагали вакансии.

В этом изначально заключалась идея Джинна, и даже сейчас 60% контактов начинается с сообщения рекрутера кандидату. Средняя цифра тут обманчива — полагаю, 80% контактов синьоров начинается с сообщения рекрутера, и не больше 10% джуниоров (они чаще сами откликаются на вакансии).

Что мы видим в нашем примере?

47 профилей Senior Java Киев vs 237 профилей Junior Java. Это примерно три вакансии на одного синьора (151/47) и 0,08 вакансии на одного джуниора. Не удивительно, что Форум переполнен темами, как джуниору найти работу, и у нашего телеграм-канала джуниор-дайджест 25 тысяч подписчиков.

Вообще-то так считать нельзя (три вакансии на senior java vs 0,08 для джуниора), но нам важны относительные числа, а не абсолютные, они как раз говорят правду. Если интересно, я напишу в комментариях, почему неправильно считать количество вакансий так, как я посчитал.

Идем дальше: ожидания по зарплате.

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

Для нашего примера разница почти в десять раз, $4000-5000 у синьора vs $400-600 для джуниора.

Наймы

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

К сожалению, это и наименее точная статистика бота.

Во-первых, наймов в абсолютных значениях все равно мало, особенно если мы берем конкретную выборку, такую как Java Киев. Чтобы сгладить эффект малых чисел, мы берем данные по наймам за 6 месяцев, но это автоматически снижает точность, если зарплаты за эти полгода менялись вверх или вниз.

Во-вторых, ожидания в профиле кандидата и его фактическая зарплата могут отличаться. Часто на этапе оффера происходит торг в размере 10-15%,иногда даже больше, но в статистику это никак не попадает. Делать автоматический «дисконт» тоже неправильно, т.к. сумма торга значительно зависит от кандидата и ситуации на рынке. Если у вас есть три оффера на руках, то вы вряд ли будете сильно торговаться vs ситуация, когда оффер один, и других не предвидится.

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

Давайте посмотрим.

Первое, на что обращаешь внимание — практически равное количество наймов для senior java kyiv и junior java (32 vs 35). Если поделить их на количество открытых вакансий, получим 0,2 для senior и 1,8 для junior. Абсолютные цифры опять же не показательны, смотрим относительные. Вакансию Junior Java закрыть примерно в 10 раз проще, чем синьора (1,8/0,2).

Второй важный момент — зарплата по наймам.

Интересно, что зарплатная вилка по наймам для синьоров выше, чем зарплатная вилка вакансий для них же ($3800-5000 vs $3000-4500). Для джуниоров ситуация обратная: $400-650 зарплатная вилка по наймам и $500-1000 для вакансий.

Самое простое и логичное объяснение — вакансию Senior Java закрыть сложно, поэтому компании вынуждены платить больше, чем рассчитывали. И наоборот — если джуниора можно найти даже на меньшие деньги, чем планировалось, то зачем платить больше?

Еще примеры

Какие вакансии закрыть сложнее всего, а на какие больше всего желающих?

Смотрим на количество откликов на вакансию, на соотношение количества открытых вакансий и кандидатов, сравниваем зарплатные вилки по вакансиям и наймам.

Я провел несколько дней, играясь с ботом, и лучший результат, который я смог найти — это junior frontend и node.js разработчики. Если у вас получится найти еще более экстремальные кейсы, добро пожаловать в комментарии.

/salaries senior node.js/salaries junior frontend
Вакансий опубликовано: 94
Откликов на одну вакансию: 2,5
Вилка по зарплате: $2500-4500
Вакансий опубликовано: 29
Откликов на одну вакансию: 63,9
Вилка по зарплате: $600-1300
Кандидатов в поиске: 17
Ожидания по з/п: $4950-6500
Зарплата по наймам: $3750-5000
Наймов: 11
Кандидатов в поиске: 786
Ожидания по з/п: $352-600
Зарплата по наймам: $350-600
Наймов: 50+

Как и в предыдущем примере, средние зарплаты по наймам node.js сильно выше, чем вилка зарплат. Интересно, правда, что зарплатные ожидания кандидатов еще выше — $5-6k vs $4-5k по наймам. По нашей статистике на Джинне, наймы выше, чем на $5k — это редкость для украинского рынка.

У джуниоров же ожидания по зарплате и зарплата по наймам совпадают, и оба показателя сильно ниже того, что готовы платить компании. При этом разрыв между количеством доступных вакансий и кандидатов самый большой из тех, что мне удалось найти: 5,5 вакансии на одного node.js кандидата и 0,03 вакансии на одного junior frontend кандидата — разница почти в 200 (!) раз. Для java разница была в 40 раз (3,2 для синьора и 0,08 для джуниора).

Еще обратите внимание на небольшой трюк: оператор ’vs’ позволяет получить статистику сразу по двум (или нескольким) выборкам одной командой. Попробуем еще.

/salaries senior iOS /salaries senior Android
Вакансий опубликовано: 32
Откликов на одну вакансию: 5,5
Вилка по зарплате: $3000-4300
Вакансий опубликовано: 26
Откликов на одну вакансию: 3,4
Вилка по зарплате: $3000-4500
Кандидатов в поиске: 56
Ожидания по з/п: $3500-5000
Зарплата по наймам: $3262-4500
Наймов: 14
Кандидатов в поиске: 46
Ожидания по з/п: $3500-4500
Зарплата по наймам: $3000-4000
Наймов: 21

Спрос на iOS и Android разработчиков плюс-минус одинаковый.

/salaries react/salaries angular
Вакансий опубликовано: 404
Откликов на одну вакансию: 9,7
Вилка по зарплате: $2000-3800
Вакансий опубликовано: 204
Откликов на одну вакансию: 3,6
Вилка по зарплате: $2000-3500
Кандидатов в поиске: 409
Ожидания по з/п: $650-2500
Зарплата по наймам: $800-2937
Наймов: 50+
Кандидатов в поиске: 115
Ожидания по з/п: $1200-3550
Зарплата по наймам: $1300-3500
Наймов: 41

React популярнее, но при этом зарплаты у Angular немного выше.

Зарплаты по городам

/salaries Харьков/salaries Львiв/salaries Одесса
Вакансий опубликовано: 1252
Откликов на одну вакансию: 7,1
Вилка по зарплате: $1000-3000
Вакансий опубликовано: 684
Откликов на одну вакансию: 7,0
Вилка по зарплате: $1500-3000
Вакансий опубликовано: 380
Откликов на одну вакансию: 6,3
Вилка по зарплате: $1000-3000
Кандидатов в поиске: 2646
Ожидания по з/п: $399-1500
Зарплата по наймам: $500-1825
Наймов: 50+
Кандидатов в поиске: 2469
Ожидания по з/п: $500-2000
Зарплата по наймам: $600-2500
Наймов: 50+
Кандидатов в поиске: 1220
Ожидания по з/п: $500-2000
Зарплата по наймам: $600-2300
Наймов: 50+

Вакансий в Харькове на Джинне практически вдвое больше, чем во Львове, хотя кандидатов примерно поровну. Похоже, что харьковские компании пользуются Джинном активнее, не знаю почему. Больше ничего особо интересного здесь нет, т.к. нет разбивки по специальностям.

Зарплаты для remote или relocate

/salaries remote/salaries relocate
Вакансий опубликовано: 671
Откликов на одну вакансию: 19,2
Вилка по зарплате: $1500-3000
Вакансий опубликовано: 212
Откликов на одну вакансию: 5,0
Вилка по зарплате: $3000-5000
Кандидатов в поиске: 14044
Ожидания по з/п: $600-2500
Зарплата по наймам: $779-3000
Наймов: 50+
Кандидатов в поиске: 5826
Ожидания по з/п: $900-3000
Зарплата по наймам: $1000-3000
Наймов: 50+

На релокейт вакансий довольно много, но при этом почти нет наймов. Небольшой caveat: на релокейт на Джинне чаще всего ищут наши украинские компании, на проекты в Европе. Наверное, если бы были варианты релокейта в США/Канаду/UK, то и откликов было бы больше.

Другое дело ремоут: 19 откликов на вакансию — это очень хорошо. Хинт-хинт: кандидатам интересна удаленная работа. А сейчас, очевидно, интерес только возрастет.

Кандидаты хотят ремоут

/salaries devops remote/salaries devops -remote
Вакансий опубликовано: 36
Откликов на одну вакансию: 10,0
Вилка по зарплате: $2000-4000
Вакансий опубликовано: 309
Откликов на одну вакансию: 2,3
Вилка по зарплате: $2000-4000
Кандидатов в поиске: 220
Ожидания по з/п: $1200-3500
Зарплата по наймам: $1000-2500
Наймов: 50
Кандидатов в поиске: 41
Ожидания по з/п: $1000-2500
Зарплата по наймам: $1000-2100
Наймов: 27

Откликов на вакансии devops remote в пять раз (!) больше, чем на «офисные».

Одно важное уточнение, которое касается remote/relocate: 80% кандидатов имеют в профиле галочку «удаленная работа» и 33% — галочку «готов к релокейту». В реальности у нас нет возможности узнать, был ли конкретный найм на ремоут/релокейт. Поэтому статистика по кандидатам/наймам в этих выборках точной не будет. С вакансиями такой проблемы нет — там рекрутер сама указывает тип занятости.

Поиск с boolean search

/salaries junior|trainee qa/salaries junior|trainee qa -strong -automation
Вакансий опубликовано: 78
Откликов на одну вакансию: 27,4
Вилка по зарплате: $500-900
Вакансий опубликовано: 48
Откликов на одну вакансию: 34,6
Вилка по зарплате: $400-800
Кандидатов в поиске: 692
Ожидания по з/п: $350-500
Зарплата по наймам: $400-662
Наймов: 50+
Кандидатов в поиске: 656
Ожидания по з/п: $350-500
Зарплата по наймам: $400-600
Наймов: 50+

Поисковый запрос по статистике у нас реализован через ElasticSearch, так же как и обычная подписка на вакансии. Поэтому можно использовать и обычный синтаксис boolean search.

Другие зарплаты

Как я говорил в начале статьи, бот выбирает вакансии/профили по совпадению в заголовке. Т.е. можно смотреть вакансии Erlang или Flutter, technical writer или Salesforce и любые другие экзотические направления и специальности. Если такие кандидаты/вакансии были на Джинне, то бот покажет статистику по ним.

Забавный пример напоследок: сравним зарплаты «менеджер» и «manager».

/salaries manager/salaries менеджер
Вакансий опубликовано: 610
Откликов на одну вакансию: 17,6
Вилка по зарплате: $800-1700
Вакансий опубликовано: 29
Откликов на одну вакансию: 8,8
Вилка по зарплате: $600-1100
Кандидатов в поиске: 2984
Ожидания по з/п: $1000-2995
Зарплата по наймам: $800-2500
Наймов: 50+
Кандидатов в поиске: 92
Ожидания по з/п: $600-1062
Зарплата по наймам: н/д
Наймов: 4

Лишнее подтверждение тому, что в ІТ учить надо английский.

Подписки

В каждом зарплатном отчете бота есть кнопка «Подписаться». Если на нее нажать, раз в неделю Джинн будет автоматом присылать свежую статистику по заданному запросу, а также — сколько вакансий и кандидатов прибавилось (убавилось) за эту неделю. Как мне кажется, удобный способ «держать руку на пульсе».

Только не перепутайте с «обычными» подписками на вакансии, где Джинн присылает новые вакансии по вашим параметрам поиска. Немного запутанно получилось, но сделать простой интерфейс для бота оказалось не так просто. Надо делать мобильное приложение :-)

Вместо заключения

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

Находите ботав Телеграме, пробуйте сами, делитесь интересными результатами в комментариях. Я не знаю, будет ли 2020 хуже, чем 2014-2015или 2008-2009,но я уверен, что в этот раз у нас будет лучшая и более точная аналитика, чем когда-либо.

Почему продуктовым компаниям нужно уходить из-под крыла аутсорсинга, или Как пережить кризис

$
0
0

[Дмитрий Овчаренко — CEO & Founder at Alcor, 15+ лет в оперативном управлении ІТ-бизнесом, помог десяткам иностранных технологических компаний (BigCommerce, Tonic, People.ai) открыть R&D-офисы в Украине]

После нескольких недель карантина стало понятно, что этим все не ограничится и мир плавно входит в серьезный экономический кризис, который не обойдет ни одну сферу (ИТ в том числе). Уже сейчас мы наблюдаем волну закрытия проектов и сокращения рабочих штатов. Можно ли найти альтернативу и что делать продуктовым компаниям?

В статье я на реальных примерах (цифры подтверждают) показываю, как можно сэкономить продуктовым ИТ-компаниям, которые все еще используют аутсорсинговую модель. И как это работает.

«Эффект домино» в действии: мировой экономике нужно переварить падение ВВП Китая, США, Европы, супердешевую нефть, серию уже объявленных дефолтов, банкротств и девальваций. Если сравнивать с кризисом 2008 года, похоже, мы только в первой точке нисходящей кривой, условно заглядываем в пропасть. Несмотря на то, что обычно острая часть кризиса длится несколько месяцев, рынки восстанавливаются затем еще 2-3 года.Никто не может предсказать сейчас, каких обвалов стоит ожидать, прежде чем будет достигнуто кризисное «дно». В этих условиях «схлопывания» рынков большинство IT-игроков уже ощутили недополучение выручки и, соответственно, вынуждены пересматривать и урезать бюджеты.

По данным New York Times, в последние две недели более 50 стартапов в Кремниевой долине сократили в сумме 6 тысяч сотрудников. Еще несколько десятков — закрылись. За свежей статистикой можно даже наблюдать на специальном сайте Layoffs.fyi.

Нидерландская аналитическая платформа Dealroomв своем отчете о влиянии коронавируса на технологический бизнес говорит, что большинство стартапов испытывают трудности с деньгами. А 37% респондентов из скандинавских стран признались, что собираются сократить персонал. Это же слышим в Украине: «бросание» офисов до лучших времен, приход продуктовых компаний к своим аутсорсинг- или аутстаффинг-провайдерам с необходимостью сократить или распустить команду.

Если в части аренды мир погружен в глобальный социальный эксперимент по удаленной работе (результаты которого еще предстоит проанализировать), то в части увольнения людей все не так просто. Например, если в команде 30 человек и стоит вопрос о сокращении на 20%, то вам необходимо уволить 6 человек. Но важно понимать, что нагрузка по проекту будет распределена между оставшимися членами команды. Парадокс заключается в том, что, как показывает практика кризиса 2008-2009 годов,стоимость сверхурочных выплат по факту может превзойти первичную «экономию». Это не говоря уже о моральном климате в коллективе.

Как сэкономить деньги, не потеряв эффективность

А что, если можно не только не сокращать команду, но и нарастить ее, при этом сэкономив на расходах? Это не первоапрельская шутка.

Так сложилось, что Украина развивается как локация для ИТ-аутсорсинга и аутстаффинга, предлагая в основном модели работы с заказчиками по принципу «fee for service». Незнание местных реалий со стороны западных клиентов порой приводит к непрозрачности в формировании цены со стороны провайдера. Например, к нам в Alcor обратилась продуктовая компания, которая полтора года работала по модели аутстаффинга. При этом год они платили $ 6000 за инженера уровня Middle, хотя вознаграждение такого специалиста в Украине в среднем $ 2500, о чем случайно узнали на DOU. Они понимали, что есть еще премия поставщика, но никак не в таком размере.

Второй популярной моделью «предоставления» разработчиков — «cost+», которая состоит из вознаграждения разработчика, а также расходов на содержание команды (компьютер, стол, стул) и маржи поставщика. Обычно последние две статьи затрат сливают вместе — $ 1500-2000за человека в месяц. Возьмем среднюю — $ 1750 за специалиста.

То есть здесь мы говорим уже о непрозрачности стоимости офиса (оборудования, мебели) и остальных админ-сервисов. Например, в стоимость часто включен сервис рекрутинга. Но если команда уже сформирована, никто ведь стоимость не пересматривает, верно? Ну и качество такого монопольного рекрутинга может быть неудовлетворительным. В итоге непрозрачность вознаграждения и/или оказания услуг бэк-офиса сильно уменьшает возможность торговли с поставщиком.

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

Глобальным изменениям предшествует какой-то переломный момент. Вспомним нефтяной кризис 1973 года: в долгосрочной перспективе он сильно сказался на автопромышленности США. Ведь американские автомобили, что были большими, тяжелыми и мощными, были вытеснены японскими моделями с 4-цилиндровымидвигателями, потреблявшими гораздо меньше бензина. Возможно, в IT этот кризис положит начало эре открытия собственных software R&D centers в Украине, ведь это: отдельный офис (которым в случае необходимости можно пожертвовать), своя команда и полный контроль расходов.

Почему сейчас? 10-15лет назад Украина была «черной кляксой» на карте Европе, и поэтому заказчики не хотели брать на себя излишнюю ответственность: спокойно соглашались на оплату единого инвойса, чтобы без лишних сложностей совершить «высадку» команды.

Не то чтобы ситуация кардинально поменялась, но повышение в рейтинге Easy Doing Businessсо 130-хпозиций до 60-хсвидетельствует, что Украина стала привлекательнее и безопаснее для бизнеса.

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

Давайте посчитаем, в чем же экономия.

Расчет стоимости офиса и услуг бэк-офиса

Stuff and servicesOwn R&D centerOutstaffing
Rent & Utilities costs 280 не показывается
Equipment83 не показывается и не принадлежит клиенту
Furniture 21 не показывается и не принадлежит клиенту
Provider fee per person5701750
Total9541750
Cost savings:more than 45%!None
  • Rent Cost — цена $ 35 за квадратный метр в бизнес-центре класса «A», включая коммунальные услуги и эксплуатационные расходы по офису, умноженная на 8 метров (оптимальное рабочее место на человека).
  • Equipment — ноутбук за $ 2000. Стоимость мы разделили на 24 месяца (стандартный срок амортизации по украинскому налоговому законодательству).
  • Furniture — рабочее место (стол, стул и т.п.) за $ 1000. Сумму разделили на 48 месяцев (срок амортизации по украинскому налоговому законодательству).
  • При переезде компании в офис договоритесь о выкупе техники по разумной цене. При таком варианте экономия еще больше.
  • Provider fee — вы можете все сделать сами или делегировать опытному провайдеру (переговоры и скидки от арендодателя, оформление сотрудников и ведение их документации. А также уплата налогов, сдача отчетности и payroll services, закупка техники, оборудования и другие операционные услуги).

Теперь посмотрим на «большую картинку» экономии — на командах в 10, 30, 50 и 100 человек:

На нашем примере команды в 30 человек возможна экономия стоимости услуг в 2 раза, или на $ 24k! Например, возвращаясь к сокращению команды на 20%, можно не только не увольнять сотрудников, но и нанять еще пару человек. Более того, коворкинги отводят по 3 метра на человека (хоть это и как «шпроты» в банке) — но ведь нет пределов экономии (55% и больше), если необходимо.

Учитывая кризис, мы сконцентрировались на финансах. Но на самом деле свой офис предоставляет не менее важные дополнительные бенефиты: развитие своего бренда в Украине (а не работа под козырьком провайдера), корпоративная культура, отсутствие buy-out fees.

В конце концов это возможность быть хозяином в собственном офисе. Не нужно согласовывать каждую мелочь с посредником (некоторые компании согласовывают покупку стола и стула с партнером по пару месяцев, несмотря на полную их компенсацию).

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

Пора меняться

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

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

Самооцінка програміста: три правильних і три хибних способи скласти собі ціну

$
0
0

Рано чи пізно це таки трапляється.

Тімлід призначає зустріч, на якій сором’язливо виставляє перед тобою папірчики з написом «Performance improvement plan». Або команді представляють нового техліда, і це зненацька не ти. Або СЕО ненароком кидає в курилці: «Певно, все ж треба було найняти професіонала на позицію СТО». А ти до цього конкретного моменту вважав, що ти і є професіонал!

Або навпаки, після довгих, виснажливих років у «шарашкіній» конторі, коли незважаючи на те, що ти «ні в чому не розбираєшся» і «ні на що не здатен», ти таки виходиш на ринок праці. І там чомусь виявляється, що компанії готові тобі платити більше чи не у п’ять разів. А деякі задачі, котрі ти вирішував кожного дня, в нормальному світі вважаються рівнем архітектора. І це попри твою незмінну плашку «джуніор», яку ти вважав цілком заслуженою, враховуючи постійну нищівну критику від начальства.

Такі моменти завжди приходять, як грім на голову, і підготуватися до них неможливо. Апостеріорі, звісно, мозок підсуне тобі сотні причин, чому так сталося. Чому ж він ховав їх десь у глибині аж до цього моменту?

Занижена самооцінка не дає можливості зростати і закриває перед тобою тисячі дверей, тому що «чого я буду туди писати, я ж тупий?». Завищена самооцінка примушує братися за проекти, яких явно не потягнеш, виставляти завідомо нереальні терміни виконання і закономірно це все фейлити. Від цього шалено страждає впевненість у собі. Манія величі та комплекс неповноцінності ходять разом, узявшись за ручки, і не дають зупинитися на золотій середині. Американські гірки, кататися на яких зовсім не весело.

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

У вивченні будь-якої мови головне спочатку чітко сформулювати початковий рівень: дивитися японські серіали без субтитрів відразу після вивчення катакани — явно необачно. Так само, як і повторювати тисячу разів «май нейм із Вася» з різних підручників для початківців і вважати, що англійська тобі «просто не йде».

Для оцінки власного рівня є тисячі способів, написано сотні книжок, при чому більшість із них, як водиться, не мають нічого спільного з реальністю. Для цієї статті я підібрав тільки шість способів. Три з них можна і треба використовувати, від інших трьох варто триматися якнайдалі. Почнемо, звісно ж, із неправильних.

Перший хибний: авторефлексія

Нема нічого простішого, ніж сісти і подумати: «Хто я, який я і чи право маю?». І водночас нема нічого безглуздішого.

Людська пам’ять — дуже потужна система зберігання даних, але водночас дуже своєрідна. Зробити «SELECT *» тут не вийде, спогади виникають на позір абсолютно випадково, але насправді користуючись одним патерном — раціоналізацією фактів навколишнього світу.

Коли вам скажуть, що ваш колишній колега влаштувався СТО в серйозну міжнародну компанію, ви швидше за все згадаєте випадки, коли він круто все організовував і вирішував проблеми. Якщо почуєте, що його звільнили вже з третьої роботи підряд, ви теж не здивуєтеся: ну так, він був трохи дивним, та і проекти часом завалював, не без того.

Аналогічно і з пам’яттю про власні здобутки. Коли ти на коні, то згадуєш попередні перемоги. Коли серйозно зафейлився, в голову лізуть минулі помилки, заповнюючи всю свідомість і не даючи навіть шансу згадати щось хороше. Це як коли ти стоїш на даху і бачиш в основному шпилі інших хмарочосів. А потім спускаєшся на землю, де лише недолугі перші поверхи та руїни ніколи не добудованих проектів, а шпилі при цьому десь там, у хмарах, недосяжні як ніколи.

Ілюстрації Каталіни Маєвської

Кожна подія в людській пам’яті, прямо як у мультику «Inside out», має аспекти, коли ти проявив себе круто, і аспекти, від яких рука тягнеться до фейспалму і хочеться сховатися під стіл від сорому. Залежно від теперішнього настрою, пам’ять підсовуватиме відповідну сторону всіх подій.

Модель, побудована на основі таких однобоких даних, буде як мінімум некоректною, а як максимум — не матиме нічого спільного з реальністю.

Є кращий спосіб.

Перший правильний: спостереження

Записуйте. Отак просто. Кожного дня або хоча б тижня лишайте кілька речень про те, що ви зробили за цей час, що у вас вийшло, а що ні.

Якщо ведення щоденника навіює на вас нудьгу — лишайте коментарі в джирі або пишіть на одне речення більше в повідомленні до коміту. Головна задача тут — зберегти для історії, чим ви займалися в конкретний період часу.

Інформація про це знадобиться вам де завгодно: у розмовах з начальством, при пошуках нової роботи, коли вас попросять «розказати, що ви робили в теперішній компанії». Та навіть для самої роботи. Щоб згадати, що саме було зроблено два роки тому для вирішення аналогічної проблеми, два речення з описом фіксу дадуть набагато більше користі, ніж мутні «спогади» і копання в коді та застарілій документації.

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

Звісно ж, цей метод працює тільки з певного моменту. Якщо за минулий рік у вас записів нема, то просто сісти і згадати все, що робилося, не спрацює — дивіться пункт один. В цьому випадку можна спробувати викачати всі описи тікетів з вашим іменем і коміти до них. Роботи на кілька годин, але принаймні якісь дані в вас уже будуть. Заодно і визначитеся, в якому форматі вам найзручніше читати, щоб знати, як писати на майбутнє.

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

Другий хибний: порівняння

Про те, що порівнювати себе з іншими погана затія — відомо всім і давно. Про це розповідають навіть цитати з обличчям Джейсона Стейтема в пацанських пабліках. Але це, звісно ж, не допомагає. Людина — соціальна істота, прагнення до статусу — одна з ключових мотивацій будь-якої особистості. Порівняти себе з людиною за сусіднім комп’ютером — один із найприродніших поривів душі кожного програміста. Але також і один з найшкідливіших.

Психологи вже давно б’ють на сполох, що соціальні мережі все частіше стають причиною затяжних депресій у молодого покоління. Адже всі мої друзі подорожують, отримують нагороди, виходять заміж, народжують дітей, чи що там ще важливо для мене, а я сиджу в душному офісі і вкотре переписую фронтенд нікому не потрібного магазину взуття. У моїй стрічці, правда, теж не офіс, а одні суцільні гори, море і веселі обличчя друзів по п’ятницях, але це ж усе напоказ, не те, що у них.

Тут така ж проблема, як і з пам’яттю. Коли в тебе щось виходить, ти вважаєш себе рівнею найкращим і набагато сильнішим за лузерів, яким до твого рівня, як до неба. Коли трапляється факап, як до неба стає вже тобі, а лузери раптом стають вищими за тебе на цілу голову. Підсилюється це все тим, що і лузери, і верхівка — всі з твого офісу, і насправді статистично від тебе не відрізняються взагалі.

Плюс у кожного є свої сильні і свої слабкі сторони, плюс в кожного є свої хороші і погані часи. Універсальної метрики порівняння не існує, як не існує простого способу порівнювати n-вимірні вектори. Звісно ж, якщо колега кращий або гірший за тебе в усьому, це просто. Але чи часто таке буває?

Плюс, якщо ціллю стає стати кращим за когось, починаєш радіти його поразкам. А ше дуже легко почати рухатися в напрямку «стати схожим на нього», а не «стати кращим у тому, чого я хочу».

Плюс ти не розумієш складності чужих задач: твої для тебе прості, бо ти в них розбираєшся, чужі для тебе — темний ліс. А значить, колега з іншим робочим стеком набагато розумніший? Та от навряд.

Порівнювати себе з іншими — погана затія, зрозуміли. Натомість, кажуть, варто порівнювати себе із самим собою, тільки в минулому. Що ж, це, безумовно, краща ідея, але теж абсолютно безглузда. Двадцять років тому я, наприклад, трохи гірше програмував. Зате прекрасно лазив по деревах і підтягувався на перекладині двадцять разів. В мене нічого не боліло, я був безтурботним і насолоджувався кожним днем. І хто після цього в переможцях?

Найгірше працює «порівняння із собою» після виходу на плато. Коли швидке зростання тимчасово закінчується і починається важкий і довгий, але дуже важливий проект. Два роки тому Ілон Маск займався електричними машинами і космосом, і тепер Ілон Маск займається електричними машинами і космосом. Ніякого зростання і розвитку. Стагнація.

Другий правильний: вимірювання

Проблема оцінки роботи програмістів настільки стара, як і сама професія. Робочого на заводі можна оцінити за кількістю вироблених деталей і відсотком браку. Як оцінити продуктивність програміста? Коротка відповідь: ніяк.

Запровадження будь-якої простої метрики кожного разу вело виключно до зловживань і завжди закінчувалося повним абсурдом. Була це кількість рядочків коду, кількість асемблерних команд, покриття тестами, кількість закритих багів, навіть кількість коментарів до відкритих пул реквестів, несуттєво.

Завжди знаходився спосіб формально викрутити метрику на максимум, при цьому явно не підвищуючи (часом понижуючи) якість самого коду і загальну продуктивність. Існує навіть цілий закон Гудгарта, який стверджує, що, як тільки ми встановлюємо метрику своєю ціллю, працювати вона відразу перестає.

Наразі це досі відкрита проблема. Компанії створюють різні «рівні», «треки», «потоки» з абсолютно розмитим набором вимог, спеціальні комісії для аналізу цих вимог і купу багатолюдних зустрічей виключно з метою зміни якоїсь циферки десь там в особистій справі. Добре ще, коли це робиться правильно і має якісь наслідки (збільшення рівня впливу, зростання зарплати, більша кількість підлеглих). Але часто циферки (чи безглузді лички) виставляють просто так, для імітації процесу «кар’єрного росту». Тоді біда.

Не буду заглиблюватися в ефективність даного підходу в принципі (краще так, ніж узагалі ніяк), але для самооцінки такі метрики явно не підходять — вони занадто уніфіковані, та і зосереджені більше на користі для компанії, а не на особистих можливостях кожного спеціаліста. «Крутий чувак, але нам не підходить» — знайомо?

Погані новини: перевести самооцінку в конкретні цифри не простіше.

Хороші новини: деякі способи таки є.

Найбільшою перевагою параметризації власної оцінки є непотрібність уніфікації. Нам не треба винаходити метрику, яка би працювала для всіх і дозволяла порівнювати різних людей між собою. Достатньо чогось, що підходитиме для конкретної людини. До того ж, враховуючи, що власні оцінки ми нікому не будемо показувати і вони не впливатимуть ні на статус у компанії, ні на зарплату, можна бути чесним перед собою і не шукати способів це оцінювання обійти.

Плюс до кожної метрики можна додати поправку на «здоровий глузд». Якщо ви рахуєте умовну кількість багів до вашого коду, ви запросто зрозумієте, чи в конкретному випадку проблема пов’язана з вашою неуважністю, а чи з неправильно сформульованими вимогами.

Головне, щоб будь-яке число мало сенс конкретно для вас і ви мали хоч якийсь вплив на його значення. Наприклад «кількість юзерів, які скористалися новою фічею» в даному контексті дає небагато. Адже від якості вашого коду популярність фічі не залежить практично ніяк. Зате критерієм «відсоток поламаних білдів через мою неуважність» вже можна керувати.

Якщо дуже захотіти, можна піти далі і побудувати щось на кшталт SWOT-табличок, розкинути пріоритети подальшого розвитку і почати працювати зі своєю ефективністю, як із робочим проектом, але це вже як вам зайде.

Окрім персональних способів оцінки, є, звісно, і зовнішні. Різні сертифікати, тестування, дипломи. Вони теж дають якісь числові значення вашої компетентності, але їх важливість для самооцінки деколи переоцінюється. Адже питання знову ж таки підбирають узагальнені. Вони нічого не знають ні про вас, ні про ваші конкретні задачі. Та і в принципі конвертування навичок програмування у питання з кількома варіантами відповіді — процес сумнівний. Звідки випливає наступне.

Третій хибний: фідбек

Якщо ви не можете довіряти власній пам’яті і не хочете порівнювати себе з іншими, лишається одне. Просто піти до когось і запитати. До начальника, до колег. До друзів. До когось, хто розуміється і здатен оцінити ваш рівень. Збоку ж видніше.

І якщо попередні хибні способи в принципі не були здатні принести вам корисну інформацію, тут ситуація інша. При правильному використанні і певній кількості докладених зусиль система фідбеку від менеджменту і колег справді може допомогти сформувати правильну картину. Дати уявлення, чого ти насправді коштуєш і що собою являєш.

Для цього, для початку, треба розуміти обмеження людської пам’яті. Ніхто особливо не звертає увагу, як там перформить колега чи навіть підлеглий. Якщо ваш менеджер не бюрократ вісімдесятого рівня і не записує все, що відбувається в команді (при цьому він не буде мати часу більше ні на що, в мене один такий приклад був), підготовка до фідбек-зустрічі — це година згадування, як же себе проявив підлеглий за цей квартал. При цьому працюють всі обмеження людської пам’яті: пізніші події впливають на оцінку сильніше, ніж ті, що сталися раніше, настрій у даний момент забарвлює всю історію, робота над зрозумілими менеджеру системами впливає сильніше, ніж над невідомими. Ну, і так далі.

Ще складніше буде, якщо у вас немає регулярного зворотного зв’язку і ви просто вирішили про це спитати. По-перше, з наскоку, правди вам ніхто не скаже. Якщо ви не соціопат, ставлення команди і менеджера до вас буде як мінімум стримано-привітне. Тому максимум, що ви отримаєте — це відповідь в стилі «та нормально ти перформиш, забий».

А якщо ви продовжуватимете допит, на перше місце вийде вже саме формулювання питання.

Якщо ви спитаєте «як я зафакапився останнім часом?», то ваші факапи і згадають. Якщо спитаєте про щось хороше — на думку це хороше і прийде. Після цього, до речі, на сцену виходить праймінг: після вашої розмови менеджер буде краще пам’ятати саме відповідь на ваше питання, а не те, що було насправді.

Саме тому для отримання результату, максимально наближеного до реальності, і мінімізації подальших збитків треба формулювати все максимально нейтрально, підготувати набір минулих ситуацій, свої дії в них і питати щось у стилі: «що можна було зробити краще?», «що було зроблено добре?» і так далі. Тільки в такому випадку цінність такого фідбеку буде високою.

Але і це ще не все. Часом сам факт (особливо раптовий) пошуку фідбеку оцінюється як негатив. Адже «справжній професіонал» завжди впевнений у собі, а якщо хтось ходить і розпитує, «як я перформив останні кілька місяців?», значить він або отримав прочухана від начальства, або раптом побачив кілька своїх провтиків і хоче дізнатися, чи не наплужив він десь іще.

Також розмова з начальством при певному вмінні може не тільки зашкодити, а і допомогти кар’єрі. Адже поставлені правильно питання можуть запустити праймінг у інший бік і примусити менеджера пам’ятати про вас тільки те, що ви хочете, щоб він пам’ятав. Цей інструмент, втім, варто використовувати дуже обережно. Недолугі спроби вплинути на чуже враження дуже видно і в результаті можуть наробити більше шкоди, аніж змінити щось на свою користь.

Ну і ще, звісно, ви ніколи не застраховані від ситуації, коли єдиною ціллю фідбек-зустрічі є принизити вас, щоб не давати підвищення, або знизити вашу самооцінку, щоб ви не втекли кудись, де краще годують. В таких випадках ні отримана інформація не має ніякого сенсу, ні ваші потуги якось повпливати на думку менеджменту про себе успіху не принесуть. Тому при перших ознаках такого — просто тікайте.

Хорошою заміною фідбеку можуть стати непрямі показники. Скільки разів вас просили про допомогу в складній ситуації? Скільки разів приходили питати вашої думки? Скільки разів міняли щось суттєве, вислухавши ваші зауваження? Такі цифри скажуть вам набагато більше, ніж апеляція до пам’яті ваших колег, яка, по-перше, така ж ненадійна, як і ваша, по-друге, якщо вони щось і пам’ятають, то явно не про вас. Але і вони вам повної картини не дадуть — колеги можуть бути занадто інтровертами, або просто більше спілкуватися з тими, з ким вони частіше п’ють.

Тому для об’єктивності варто спробувати щось інше.

Третій правильний: експеримент

Тут як у старому анекдоті. «Ви вмієте грати на фортепіано? — Не знаю, ніколи не пробував».

Все, про що ми говорили раніше, всі деталі самооцінки, потрібні нам з однією метою — визначити, якої складності проекти ми можемо осилити, а якої ні. То чому б, зрештою, не взяти бика за рога і просто не спробувати?

Кожен із нас має інтуїтивне уявлення про свої можливості як спеціаліста. Статистика показує, що у більшості випадків ми помиляємося. Відкрийте редактор коду прямо зараз і напишіть сортування злиттям або навіть бульбашку. Алгоритм знають всі, але абсолютна більшість навіть досвідчених програмістів припускається однієї чи двох помилок при реалізації.

Можна вважати, що «при потребі розберуся з тим проектом», але при першому завданні отримати шок і надовго загальмувати прогрес. А можна навпаки, пів життя вважати «я туди не полізу, там дуже складно», а потім, коли припече, розібратися за кілька днів. Те саме діє з керуванням командою, побудовою продукту з нуля, зміною стеку, ну і так далі. До того, як ми спробували вирішити проблему, її складність невизначена, і будь-які оцінки будуть мати нульовий зв’язок із реальністю.

Звісно ж, пробувати все підряд не вистачить ні часу, ні ментальної енергії. Тому тут теж допоможе науковий підхід.

Якщо ви скористалися першою порадою, то у вас є невеличкий масив даних, від яких можна відштовхнутися. На основі них ми передусім будуємо гіпотезу. Вона може бути якою завгодно, але швидше за все буде звучати як «я — програміст-початківець (середнього рівня, експерт) у певному технологічному стеку і здатен самостійно виконувати певного роду задачі, а в деяких розділах можу навіть повчити інших людей. При цьому є розділи, близькі чи далекі від мого основного стеку, в яких я ще доста плаваю, і без зовнішньої допомоги швидше за все нароблю помилок».

Далі на основі сформульованої гіпотези ми будуємо передбачення: «якщо в мене буде проект такий-то, я його зможу зробити за стільки-то часу і при цьому мій код не виглядатиме, як переварена лапша».

Ну і в кінці все зовсім просто: ми цю гіпотезу перевіряємоі записуємо результати.

В ідеалі, звісно, це все робити в рамках робочого процесу. Робити передбачення, за скільки нам вийде вирішити певну задачу. Скільки багів ми наплодимо, поки працюватимемо з невідомим раніше стеком. Записати свої передбачення, попрацювати, а потім дивитися, як воно вийшло насправді.

Якщо гіпотеза пов’язана з лідерством — можна спробувати вибити експериментальний проект, на якому ви керуватимете кількома людьми. При цьому важливо чітко формулювати гіпотезу. Не «я непоганий лідер», а «в мене виходить пояснювати підлеглим, чого я від них хочу». Тоді оцінювати результати буде набагато простіше.

Тут можна (і треба!) користуватися фідбеком від інших. Але в цьому випадку не абстрактним «як я тобі, як програміст і колега?», а чітким і вузьконаправленим: «чи легко було зрозуміти те, що я пояснював?» або «чи пахне мій код, як переспілий дуріан?». Якщо питання безособові, людям простіше на них відповідати, не боячись зіпсувати стосунки з вами як людиною. Ну і код, будемо чесні, критикувати набагато простіше, ніж особистість, яка стоїть за ним.

Щоправда, деколи перевірити гіпотезу на роботі не вийде. Наприклад, вас цікавить, чи зможете ви при бажанні перейти з Closure на Scala, а у вашій компанії стек монолінгвальний. Або, незважаючи на ваше бажання почати щось нове, хардкорному ентерпрайзу нові фічі просто не потрібні. Що ж, не лишається нічого кращого, ніж лізти в опенсорс або заводити пет-проджект. Витрата часу, так, але воно вам виплатиться, обіцяю.

Заодно ваш код прочитає широка група людей, які теж не проминуть відкоментитися, якщо щось буде не так. Ну і, звісно, якщо в вас щось не дуже буде виходити, вас ніхто не звільнить і не буде ставити на «план покращення якості роботи». Просто перейдете на інший проект і все.

Ще один дієвий спосіб зрозуміти, чого ти вартий — походити по співбесідах в інші компанії. Тут кореляція буде непрямою, адже проходження співбесід — окрема навичка, яка качається незалежно від навички виконувати робочі завдання, але все одно можна отримати суттєве коригування самооцінки як вгору, так і вниз, що не зашкодить.

Підсумовуючи, процес правильної самооцінки виглядатиме так: збирайте дані про вашу ефективність як спеціаліста, оцінюйте записане на основі певних метрик і критеріїв. Будуйте гіпотези про ваш справжній рівень, на основі гіпотез будуйте передбачення, а їх уже перевіряйте у реальному житті, коригуючи свої уявлення відповідно до результатів.

Цей надзвичайно простий спосіб дасть вам купу матеріалів, на основі яких можна і плани на майбутнє сформулювати, і недоліки виправити, і просто краще зрозуміти, які штуки у вас виходять найкраще, щоб, користуючись «гантелею Талеба», розвивати потім найбільше саме їх.

***

І наостанок. Серед спортивних психологів поширена практика формування у своїх підопічних двох абсолютно незалежних систем самооцінки. Одна, «повсякденна», знає про свої справжні можливості, обмеження, можливість помилитися.

Інша система, «змагальна», вважає себе непогрішним божеством. Тому, що тільки повністю повіривши у свою обраність, непереможність, неможливість програти, можна ламати незримі бар’єри і стрибати набагато вище голови.

І якщо техніки, описані вище, вам навіть беззаперечно доведуть, що ви чогось зробити не зможете, це зовсім не означає, що так воно і є насправді.

Все ви зможете.

І все у вас вийде.

«Отложенные решения — это прямой путь к эмоциональному выгоранию». 6 рабочих принципов СЕО YouScan

$
0
0

[Об авторе: Алексей Орап — CEO и основатель компании YouScan, SaaS-системы мониторинга социальных медиа. C 2008 по 2009 работал директором по развитию Яндекс.Украина, ранее занимался продажами и техническим консалтингом в компаниях Nortel, Alcatel-Lucent. Автор блога про SaaS-бизнес — SaaSDojo.comи канала про возобновляемую энергетику CleanTech News]

Статьи в популярных околотехнологических медиа с названиями «Семь принципов Марка Цукерберга» или «Законы успеха Илона Маска» — это мой «любимый» жанр. Увидев их, я сразу закрываю браузер! Тем не менее в жизни каждого человека наступает момент, когда возникает желание как минимум сформулировать для себя принципы, которыми руководствуешься в работе и жизни, а как максимум поделиться ими с окружающими :) Пришла и моя очередь!

Пожалуй, я еще не настолько мудр, чтобы излагать всеобъемлющие «принципы жизни», как Клейтон Кристенсен, Рэй Далио, Джордан Питерсонили Стивен Ковив своих популярных книгах (которые я, кстати, весьма рекомендую). Поэтому в этой статье расскажу о принципах, которые я использую в работе и бизнесе.

Многие из них в той или иной степени интегрированы в корпоративную культуру YouScan, которая давно помогает нам успешно развиваться.

Итак, вот список моих основных принципов для работы и бизнеса.

1. Доверие

Если разобраться, то с доверием все предельно рационально. В этом вопросе не так много идеализма, как может показаться. Необходимость проявлять доверие базируется на собственной оценке соотношения затраченных усилий и получаемых выгод (другими словами, cost/benefit analysis).

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

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

В итоге выигрывают все. Скорее всего, проявив доверие и отказавшись от излишнего контроля, вы получите тот же (или даже лучший) результат, при этом сократите усилия на его достижение. Поэтому я почти всегда стараюсь доверять своим сотрудникам и бизнес-партнерам. «Проколы» иногда случаются (нет правил без исключений), но, по моему опыту, игра стоит свеч.

Простой пример: одним из первых неформальных правил культуры YouScan стало полное отсутствие учета отпусков. В первые годы после запуска стартапа у меня просто-напросто не было времени и желания отмечать где-то дни, которые сотрудники отсутствуют на работе, анализировать или контролировать это. Через некоторое время из неформального принципа это переросло в нашу официальную unlimited vacation policy. Каждый сотрудник может взять время на отдых тогда и столько, сколько ему необходимо, чтобы вернуться на работу отдохнувшим и продуктивным. Благодаря доверию и взаимной ответственности в команде не было еще ни одного случая неадекватного использования этой возможности.

2. Честность

Комплексный, но очень важный принцип. Вкратце, его можно сформулировать как «не обманывать». Здесь, помимо того, что «обманывать плохо» (это правда), все также рационально: обманывая, вы часто получаете краткосрочно выгодный результат, но создаёте долгосрочные репутационные, а иногда даже юридические, риски.

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

3. Не откладывать сложные решения и разговоры

Иллюстрации Каталины Маевской

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

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

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

Чувствуете, что надо расстаться с сотрудником, который уже давно не тянет, несмотря на все ваши усилия исправить ситуацию, но при этом эпизодически подает признаки надежды? Сделайте это прямо завтра. Вы и так уже опоздали с решением на несколько месяцев (у меня было такое не раз). Вы нафакапили, и клиент требует компенсацию, не пытаясь вникнуть в причины произошедшего и дать вам шанс исправиться? Дайте ему эту %$#X* компенсацию либо расторгните договор. Но сделайте что-то уже сегодня. Вас ждет не слишком приятный разговор с бизнес-партнёром об ответственности в команде? Лучше поговорить сейчас, чем отложить еще на неделю.

Часто правильного решения просто нет, сколько бы вы не взвешивали все «за» и «против». Парадокс в том, что это особенно относится к сложным и неприятным вопросам (иначе они не были бы сложными!). Узнать, что было правильно, а что нет, вы можете, только сделав что-то.

Связанный с этим момент: я выбрал для себя подход быть максимально прямолинейным в том, как давать обратную связь на работе. Нет ничего хуже хождений вокруг да около и разговоров, которые ни к чему не приводят. Это — потерянное время и потраченные зря эмоции.

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

4. Стараться понять мотивацию

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

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

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

Вот еще почему важно учиться не только слушать, но и слышать. Вникая в причины того, почему люди видят вещи определенным образом (отличным от вашего) или принимают те или иные решения, вы обогащаете себя новой информацией. Она же может помочь принимать правильные решения в дальнейшем. Подробней об этом рекомендую почитать в книге «Принципы» Рэя Далио (первая часть — Life Principles).

5. Дела значат больше, чем слова

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

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

Поэтому я больше ценю сделанное, чем сказанное, в себе и в остальных.

6. Движение вперед с помощью проб и ошибок

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

Когда в 2009 году я запускал YouScan, история частично повторилась: для привлечения seed-инвестиции от венчурного фонда нам с кофаундерами пришлось писать объемный бизнес-план. По крайней мере, на тот момент уже был опыт, это заняло меньше времени. Инвестицию мы в итоге привлекли, но большинство гипотез, изложенных в бизнес-плане, также не выдержали столкновения с реальностью.

Эти и многие другие случаи бесполезного планирования, помимо аллергии на бизнес-планы, научили меня тому, что лучше двигаться вперёд малыми шагами, делая предположения и совершая ошибки, чем пытаться тщательно спланировать всё заранее.

Позже я познакомился с концепцией Lean Startup, а разнообразные Agile-подходы стали мейнстримом. Однако я по-прежнему вижу, что на практике все часто выглядит по-старому. Когда люди сталкиваются с необходимостью планирования в условиях неопределенности, они продолжают попытки составить всеобъемлющий и детальный план действий или проекта. Безусловно, это полностью оправдано, если вы строите АЭС или проектируете новый кардиостимулятор. Но, скорее всего, вы занимаетесь чем-то другим.

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

Варианты:

А. Спланировать наше сотрудничество по всем направлениям и составить детальный план действий.

Б. Выбрать небольшой проект и попробовать реализовать его без излишней формализации.

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

В заключение

То, что я считаю эти принципы правильными, не значит, что они подходят и вам. Думайте и решайте сами, какие принципы правильные для вас.

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

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


Читайте также:DOU Books: 5 полезных книг, которые вы вряд ли читали, от Алексея Орапа, CEO YouScan

"Не так важливо, яке завдання, як підхід і ставлення до його виконання". Що визначає сеньйора

$
0
0

Бородате слово Senior викликає жваві суперечки і є джерелом жартів, та все ж майже всі хочуть мати цей префікс. Мовляв, це справа честі.

У статті я спробую розкласти цю личку на елементарні частинки з різних вимірів: з погляду компанії і спеціаліста, ринку та конкретної професійної кар’єри, віку і навичок, технічних умінь і soft skills.

Почав писати цей текст як коментар до статті, але що далі писав, то ставало зрозуміліше, що мої думки тягнуть на окрему колонку.

Одразу скажу, що там, де сеньйор, там і сеньйорита, а двічі писати всюди мені ліньки :)

Різниця між Junior, Middle та Senior з погляду завдань

Це питання не зовсім про те, для кого завдання. Це означало б перевести фокус з різниці між тайтлами на різницю між завданнями. Можна будь-кого навчити точити олівці, але кому саме призначене завдання заточити олівець — для сеньйора, мідла чи джуна? Важко сказати. Різниця радше в тому, як завдання виконують, наскільки автономно і як розв’язують супутні проблеми в процесі, якщо його дати трьом інженерам різних рівнів.

Щоб не прив’язуватись до складних матерій, скажімо, є завдання на канбан-дошці — приготувати вареники для 5 осіб, бо стейкхолдери дуже хочуть вареників з вишнями. А плита — одна на кілька команд. Тут є і спільні ресурси, які треба зарезервувати (плита), і складний нелінійний процес, і необхідність спланувати якісні та кількісні показники результату (розмір кінцевих порцій, вигляд і смак). Є і дедлайн, бо стейкхолдери голодні.

Ілюстрації Уляни Патоки

Джун у загальних рисах знає, як тримати качалку, як розкачати та порізати тісто, як користуватись плитою. А чогось не знає. Наприклад, як замісити тісто чи ліпити вареники, бо не готував нічого складнішого за яєчню. Джуну потрібне зовнішнє керівництво, щоб стежили за процесом. Та навіть з контролем і поясненнями результат не буде гарантований. Але йому можна довірити нескладні чіткі речі: зганяти в магазин, просіяти борошно, помити вишні чи повибирати кісточки, розігріти плиту, закип’ятити воду.

Мідл щось готував, але не ліпив вареники, а просто варив пельмені з магазину. Він думає, що цих знань досить і приготувати вареники для великої кількості людей не складніше, ніж зварити собі на вечерю пельмені. Мідл блочить себе й команду на незначних проблемах, які через це перетворюються на великі. Наприклад, каже щось на зразок «Дайте мені чітку інструкцію по пунктах, як треба готувати вареники та acceptance criteria», «Я ці вареники за 5 хвилин нароблю», «Ліпити вареники довго й нудно, це проти принципу code reuse, створімо краще робота (фреймворк) для ліплення вареників».

Мідл буде старатись ліпити кожен вареник ідеально, вкладаючи у страву всю душу й нестримну жагу застосування знань і best practices. Як писав Мартін Фаулер про мікросервісну архітектуру вареників, намагатиметься впровадити 12-факторнівареникиабо зачепиться за цікаву оптимізацію їхньої форми. Поки всі думають, що вареники потроху ліпляться, спробує таки створити фреймворк для цього процесу. Основний результат без зовнішнього контролю — багато рухів наче в правильному напрямку, але робота не робиться. Треба постійно перевіряти, чи спеціаліст витрачає час продуктивно й ефективно.

Мідлу варто часом нагадувати (тут доречне слово «скеровувати», to guide), що треба робити вареники зі слів бабусі, записаних на клаптику паперу, а не переписувати рецепт, поки стейкхолдери мруть з голоду. Що не потрібно писати фреймворки й роботів для умовних 50 вареників. Що наліпити 50 штук абияк, але вчасно — краще, ніж лише 5, які б вони не були ідеальні. Про резервування плити й качалки (shared resources) взагалі не йдеться, як і про оцінювання завдання загалом. Резервування інструментів чи планування часу та розміру майбутніх порцій повністю на відповідальності, наприклад, PM’а.

Загалом мідл зробить так, як треба, переробить, якщо треба, але його не можна залишати із завданням наодинці. Необхідна зовнішня координація.

Сеньйор побачить завдання з виготовлення 5 порцій, зразу оцінюватиме все загалом (top-down) і з кінця (from the deadline). Він уточнить розмір порцій, щоб збагнути обсяг роботи. З’ясує, чи це на раз, чи треба буде готувати вареники регулярно, бо тоді певна автоматизація матиме сенс. Спитає і про плиту і про виключне право на неї, бо знає, що вона буде вкрай необхідна, і ця критична залежність від плити — потенційний ризик. Оцінить завдання загалом і те, чи здатен зробити все вчасно. Якщо ні — скаже, скільки зможе зробити. Напевне, попросить час на оцінювання процесу. Якщо візьме це завдання, піде сам домовлятись за плиту наперед або наголосить, що PM має потурбуватись про це.

Якщо плита недоступна чи зламана або не така, як треба, порушить цю проблему, можливо, навіть завчасно. Якщо немає рецепта — знайде, а що може додумає сам. Попросить час на експериментальне приготування. Ліпитиме вареники власноруч, бо розуміє, що часу на створення роботів і штучний інтелект немає. Всередині процесу сеньйор вже точно знатиме, чи встигає все завершити, і повідомить, якщо ні або якщо виникли проблеми, котрі він не може вирішити самостійно без загрози зриву завдання.

Джун і мідл потребують активної уваги, часто є part of the problem, not part of a solution. Сеньйору не треба зовнішня координація, бо він сам драйвить процес і стає part of the solution. Зазвичай йому потрібна допомога зовні, тільки щоб «пробивати стіни», як-от залучити іншу команду, переламати бюрократію через коліно, пришвидшити відповідь від людини, яка на іншому континенті колупається в носі, поки тут усе горить. Сеньйор не потребує значного контролю від менеджерів, він їм навіть допомагає, але потребує і очікує також допомоги і того підходу, що нині називають servant leadership. І це логічно, бо він розбирається в проблемі глибше, детальніше і краще, ніж будь-який менеджер.

Тут не так важливо, якезавдання, як підхід і ставлення до його виконання, до планування, використання свого і чужого часу.

Що визначає сеньйора

Hard skills vs soft skills

Корисність технічних навичок, або як їх називають hard skills, спеціаліста визначають лише щодо конкретного проєкту чи навіть конкретного завдання.

Пов’язувати будь-які погони вище Middle/Junior тільки з hard skills, тобто технічною експертизою інженера, — короткозорий підхід. Так здебільшого вважають мідли та джуніори. Але таке сприйняття може бути у будь-кого: і сеньйор-інженера, і архітектора, і менеджера, і CTO. Технічні навички — звісно, необхідна складова, але цього недостатньо, щоб бути професіоналом своєї справи.

Senior, Principal, Lead, Architect — всі ці звання вимагають не просто кодити швидше, знати більше фреймворків чи мов і парадигм програмування, а вміти оцінювати й планувати час і ресурси наперед — свої та команди. Що вищий ранг, то більше прогнози мають відповідати реальному стану справ на проєкті й більше малопомітних нюансів враховувати. Володіння конкретною предметною галуззю теж важить багато. Скажімо, знання внутрішніх процесів електронних платежів чи GDPR — це виходить за межі суто технічних інженерних навичок, хоч і не належать до софт скілс.

Хтось може заперечити, що планувати — то справа не розробника, а PM’а, але я відповім, що кожен Senior має бути трошки PM’ом. Планування — спільна відповідальність.

Дехто зауважить, що спілкуватись із замовником його мовою — це робота Product Owner чи Business Analyst або іншого спеціалізованого менеджера. А я відповім, що кожен Senior має бути трохи PO, трохи BA. Спілкування та розуміння — спільна відповідальність.

Робота в команді та ієрархії, менторство, критика та аргументації в дискусіях, резервування часу на беклог, документація, форс-мажори, вирішення конфліктів, інтерв’ю, гендерні чи іншого характеру інклюзивні відносини, кризовий менеджмент, планування бюджетів чи кількох проєктів, які конфліктують за ресурси, — усе це мало стосується кодингу, але спеціаліст має в них розбиратись, хоча б поверхово встромивши носа, щоб бути справді професіоналом.

Тому для сеньйора hard skills відходять на другий план, на перший план виходять soft skills. І що сеньйорніший сеньйор (Architect, Principal, Lead etc), то важливіші «м’які навички».

Це особливо очевидно, коли уявити 15 пихатих архітектів із 300 років загального досвіду, які збираються одного дня з топами обговорювати трансформацію компанії. Саме софт скіли, а не спільна вечірка опісля, не дають таким зустрічам перетворитись на беззмістовний базар з потоками матюків.

Володіння завданням

Принцип task ownership тісно пов’язаний з тим, що називають proactiveness. Суть володіння завданням — у відповідальності за драйв його прогресу і доведення до завершення. Для тих, хто знає Inversion of Control, це певною мірою інверсія відповідальності. Девіз тут: Can I do something from my side to make it faster, available, ordered, reserved, unblocked?

Сеньйор не покладається на інших людей, щоб вони надали ресурси, і не перекладає на інших відповідальність за затримки, вирішення блокерів. Це розділяє і власник завдання. У найпростішому випадку він має активно відстежувати процес, вимагати й нагадувати, цікавитись прогресом, можливо, допомогти з реалізацією у межах власних можливостей, а не просто чекати, доки необхідне дадуть. У важких випадках це може бути бізнес-поїздка інженера за океан, щоб швидко розв’язати проблему на місці face-to-face з інженером іншої команди, замовником тощо.

Якщо приземлити це до прикладу з варениками, то резервація плити як зовнішнього необхідного сеньйору ресурсу має бути турботою PM’а, бо це спільні ресурси кількох команд. Реальним прикладом може стати UAT-оточення чи якась спільна «залізяка». Щоб зварити вареники, потрібно отримати виключне право на користування плитою на певний час. Але сеньйор як власник завдання розуміє, що навіть якщо резервування плити — відповідальність когось іншого, то неготові вареники і голодні стейкхолдери — це саме його відповідальність і провал саме його завдання. Він активно буде комунікувати й допомагати розв’язати проблему: вимагати й нагадувати про ті ресурси як PM’у, так і людям, що за них відповідальні. Такий сеньйор легко дасть менеджеру по шиї завчасно (образно, звісно) або самостійно «підніме» питання нагору. У разі, якщо критична проблема доступу до плити довго не вирішується і його вареники під ризиком.

Різновиди сеньйорів

Слово Senior — беззмістовне без контексту, коли відірване від язика, з якого злітає, і коли безвідносне до людини, стосовно якої вживається. Ця личка перевантажена настільки, що можна сперечатись на рівному місці й не розуміти одне одного.

Позичимо трохи ідей із сеньйор-психології, бо це несправжня наука, тому можна робити все, що хочеться, й будувати які завгодно теорії☺

По-перше, є власне самосприйняття, або Я-Сеньйор. Ви можете бути впевненими чи невпевненими у собі, загалом чи тільки професійно, бо маєте сильне чи слабке Я-Сеньйор. Ви можете вважати себе Senior або не надавати великого значення званням взагалі чи мати важку стадію хронічного синдрому самозванця.

По-друге, є власний ідеал чи вектор професіоналізму, може, навіть кілька. Назвемо його Ідеал-Сеньйор. Тут просто — це те, як ви уявляєте справжнє сеньйорство. Порівнюючи себе з колегами, Марком Цукербергом, хакером на цікавій годині CCC чи рок-зіркою на GitHub, чи навіть з хвацькою тьотьою Мотьою, власницею генделика за рогом.

Я-Сеньйорта Ідеал-Сеньйор — результати нашого виховання та навчання, прочитаних книжок, переглянутих роликів у інтернеті, конференцій, спілкування з класними (а може, й ні) спеціалістами. Ці поняття несуть баласт минулого досвіду роботи, досягнень та невдач. Щось у собі можна змінити, а те, що бере коріння в глибокому дитинстві чи темпераменті — ні. Бо це така глибока частина, яка робить нас нами.

Є ще ЯвРезюме-Сеньйор — тобто те, як ви себе описали в резюме.

Люди люблять прикрашати, прибріхувати та відверто брехати в резюме. Що відрізняє справді сеньйора від решти — мінімальна різниця між реальним і написаним. Грубо кажучи, якщо у вас в резюме — Ansible, Terraform чи Infrastructure as a Code, то для сеньйора це означає, що він безпосередньо писав і підтримував той код не один місяць, а не просто робив у власній уяві terraform apply всередині написаного іншою командою автоматичного пайплайну, що магічно запустився, коли він виконав git push, навіть не з консолі, а зі зручної IDE.

Тут має значення професійна етика. Якщо юний орел навіть пролетить у вузьку шпаринку, то все одно скоро стане очевидно для всіх у команді, хто є хто, навіть якщо це не будуть озвучувати. До того ж світ тісний і сховати тонку брехню часто не виходить саме через горизонтальні знайомства. Хоча комусь так щастить. Але справді сеньйор не будує свою професію на такій удачі, це нетривкий фундамент.

Тепер до зовнішніх. Є те, як уявляє сеньйора оточення — команда, менеджер, рекрутер, СxO, близький або не дуже знайомий. Усе це різні уявлення, і не дуже здорово дорослій самодостатній людині виправдовувати чужі. Наприклад, доводити свою профпридатність сусідці, в якої зламався ноутбук. Бо вона натякає, що ви профнепридатний програміст, якщо не можете відремонтувати древню модель ноута за символічну шоколадку й пів години.

Є ще такі різновиди: Вакансія-Сеньйор, Інтерв’ю-Сеньйор, Позиція-Сеньйор, Щабель-Сеньйорі Зарплата-Сеньйор.

Вакансія-Сеньйор — це просто: введіть власну професію у LinkedIn чи візьміть у HR’а профіль своєї вакансії і порівняйте, чи підходите ви на позицію, на якій уже працюєте. Такий підхід відкрив, на моїй пам’яті, не одну пару невинних очей.

Soft skills здорового порівняння себе з вимогами до своєї роботи — гарний привід для самовдосконалення та подальшого зростання, адже дозу натхнення і розширення свідомості від опису деяких вакансій важко порівняти з будь-якими наркотиками. Шкода, що рідко хто взагалі вдумливо читає ті натхненні тексти.

Інтерв’ю-Сеньйор — це та міфічна людина, яка відстрілює патерни «банди чотирьох», напам’ять знає java-файл класу Object, розкаже все про дюжину методів сортування, вміє рахувати кількість тенісних м’ячів в автобусах, здатна маркером створити з нуля HA-архітектуру багаторівневої системи на білій дошці за 15 хвилин, розказати про багатопотоковість, компілятори чи бази даних краще за її творців. При цьому, звісно, не виступить і крапля поту на чолі; спеціаліст випромінює впевненість, оптимізм та жагу до нових складних завдань саме у вашій компанії! Як елементарні частинки у колайдерах, такі Інтерв’ю-Сеньйори існують лише в колайдерах — тобто на інтерв’ю. Є, звісно, окремі генії, які живуть з енциклопедією в голові, але більшість з нас мають неідеальну пам’ять, та ще й купу турбот у житті, крім бінарних дерев чи тонкостей сортування. Коли це вже 250 разів написано, розжовано й гуглиться за 5 хвилин.

Проблема виникає в ситуаціях, коли вас оцінює людина, яка не може абсолютно збагнути ваші тонкі внутрішні Я-Сеньйор та Ідеал-Сеньйор з ваших слів чи з Резюме-Сеньйора.

Вміти бути Інтерв’ю-Сеньйором і є, до речі, важливим софт скілом. Це вміння продати себе. Не просто свої навички і вміння, а ще й себе як людину, як професіонала, якому можна довірити завдання. Тому сеньйор — це й трошки сейлз, трошки перемовник. Мати підвішений язик, поважати правила гри, знати професійний, та й просто етикет — частина цього процесу.

Позиція-Сеньйор — тут сказати особливо нічого. Так написано у контракті. Єдине додам, що мені (і не тільки) глибоко байдуже, чи написана та личка десь у двох екземплярах. Але є люди, яким це принципово, принаймні в певний період кар’єрного зростання. Це нормально, тут немає нічого поганого.

Щабель-Сеньйормає значення, коли ми зростаємо в певній компанії. Отримати підвищення — завжди чудове досягнення. Оплески, привітання, брендова футболка, більша довіра та відповідальність, часто з надбавкою до компенсації — це приємно. І в тому й суть — це інструмент мотивації, який чомусь мало використовують у тій IT-Україні, яку я знаю. Не буду узагальнювати, бо мав справу лише з аутсорсом.

Можу суб’єктивно порівняти з Німеччиною.

У німецькій компанії 15 і більше інженерних ступенів, якими можна дертись хоч усе життя. Часом ви можете змінювати напрями з технічного на управлінський, хоча нерідко вони паралельні. В Україні достатньо дивна, як на мене, бідна й одноманітна трирівнева кар’єрна градація. Далі вважають нормальним зростання в менеджери (мабуть, це пов’язано з гомогенністю галузі, де всі інженери — більше чи менше взаємозамінні гайки-ресурси).

Щабель-Сеньйор, як і будь-який щабель, — це інструмент мотивації, штучного створення цілком реальних кар’єрних перспектив, інструмент визнання, побудови лояльності, надання більших повноважень і відповідальності тощо. В західних компаніях, які часом старші за найстарших працівників — це потужний мотиваційний фактор.

Уявіть CEO Siemens, який знає про засновників у кращому разі з Вікіпедії, але після 7 років управління такою махиною — це ж довше, ніж навчання в університеті — стає уже незамінним. Хоч, б’юсь об заклад, він і досі час від часу дізнається щось нове про коника, якого осідлав. Або уявіть працівника, який працює у конкретному відділі техзабезпечення банку не один десяток років, здійснив не одну міграцію критичного модуля і досить агресивно ставиться до всіх ваших «контейнерів», «кубернетісів» і «клаудів». Такі люди та їхні знання справді неймовірно цінні. І компанії створюють умови для визнання їх серед інших співробітників. Наголошую, ці умови — штучно створені, але бенефіт від прогресу в кар’єрі цілком реальний. Цікаво дізнатись, чи є приклади з українських реалій. Напишіть у коментарях!

Будь-який щабель, як і власне Щабель-Сеньор, може не відповідати своєму рівню за технічними навичками, та й навичками взагалі. Принцип Пітера — саме про щаблі. І зіставити Щабель-Сеньйора та власне людину можна лише за досить довгого періоду роботи з нею в конкретній команді або за детального розбору минулих проєктів.

Як сеньйор ви маєте бути трохи кар’єристом і трохи знавцем office politics, мусите мати хоч дрібку професійних амбіцій. Просто тому, що у середовищі, де всі сеньйори, ніхто особливо не сеньйор ☺ А такий соціальний еквілібріум довго не існує.

Моє стійке враження: у Німеччині тайтли здебільшого роздаються як мотивація та визнання відчутних досягнень, в Україні — як певний прогрес у професійному навчанні.

Іншими словами, в Німеччині наступний тайтл дадуть дуже не скоро, за плідну роботу й очевидні досягнення або як зростання в кар’єрі. В Україні це як університетський диплом, заздалегідь очікуване людиною визнання, що вона щось вивчила і щось може зробити чи пропрацювала в певній вузькій галузі 4-5 років.

Загалом у Німеччині нормально перейти в іншу компанію, і в личці не буде більше ні слова Senior чи особливого тайтла. Наприклад, із Senior Software Developer перейти на Software Developer і заробляти навіть більше. Не можу сказати те саме про Україну, хоча минуло багато часу, тому можу помилятись.

В обох країнах покладатись на слово Senior в резюме — досить необачно.

Тепер найсмачніше — Зарплата-Сеньйор. Хочеться багато говорити, але сказати особливо нічого, крім важкої правди. А правда в тому, що зарплата будь-якого працівника залежить від багатьох факторів, але загалом не має стосунку до вас як спеціаліста чи людини. Ви цілком можете вважати, що на свою зарплату, коли досягли певного рівня, впливаєте приблизно так само, як на сніг, вітер чи хмари, швидко й сильно дихаючи. Зарплата — абсолютно економічна матерія, яка залежить від макроекономіки, стану ринку в розрізі певної спеціалізації, фінансових можливостей і заначок компанії і того, як ваші очікування в них вписуються, від локальної конкуренції за конкретну посаду тощо.

Це особливо має бути зрозуміло в нинішню кризу і особливо тим, хто пережив кризу 2008-го.Ще й в Україні, де звільнити чи знизити зарплату будь-якого супер-пупер-сеньйортяжа, який би він не був неоціненний учора — раз плюнути, через відсутність механізмів соціального захисту, про який я писав у попередній статтіпро податки. У Німеччині з цим трохи краще, але соціальні механізми не здатні контролювати погоду: вони пом’якшують і розтягують біль від економічних процесів у періоди кризи, але не скасовують їх.

Певною мірою ми маємо змогу вибирати: піти в недофінансований цікавий стартап чи в забезпечену грошима нуднувату велику компанію. Трапляються забезпечені стартапи й недофінансовані нудні великі компанії. Але це вибір у невеликих межах.

Зарплата залежить і від вміння вести перемовини й того, чи маєте ви дефіцитні навички для конкретної позиції. Але чи здатні ви побачити й використати сильну позицію в процесі salary negotiations — теж залежить від вас.

Тут варто лише зазначити: не майте жодного сумніву, що HR-відділ будь-якої середньої чи великої компанії має незрівнянно більше досвіду в зарплатних перемовинах та обізнаний з ринком набагато краще за будь-якого окремого інженера.

Кожен, хто вважає себе сеньйором, має бути підкованим перемовником. Це написано в частині про зарплати, але ця навичка важлива в усіх сферах професійного життя. Коли я кажу «перемовини» — це не тільки про гроші чи витискання вищої зарплати. Це вміння поступатись чимось у процесі роботи.

Огляд підходів до визначення сеньйорів

Я кілька разів перечитував статтю, в яку мої відповіді не потрапили через розмір, і вважаю, що без порівняння різних думок, ця колонка була б неповною. Деякі думки відверто дивують, але деякі слушні, і це приємно. Найближчі мені міркування Ковтуната Кагановського. Вони допомогли зробити текст удвічі довшим і краще сформулювати деякі поняття.

Ковтун єдиний згадав концепцію T-shapedта підкреслив надмірний фокус середнього українського фахівця на технічних навичках, з чим я повністю згоден. Не зовсім погоджуюся з його фільтром «про 8 років досвіду» і фільтром «за 30», але певен, автор і не мав на увазі застосовувати ці критерії сліпо, а радше орієнтовно.

Кагановський, своєю чергою, зазначив дещо важливе: Senior досить легко переходить в іншу галузь і водночас швидко відновлює продуктивність. Я б сказав, що це не просто через досвід, а саме через софт скіли. Коли у мене був би вибір найняти сеньйора з суміжної галузі, чи джуна/мідла з потрібної — я схилявся б до першого варіанта. Звісно, такий сеньйор справді має демонструвати бажання і потенціал до переходу, та й інтерв’ю в нього було б зовсім не з простих.

Він також навів приклад «сеньйорів», що претендують на високу зарплату, коли не здатні пояснити щось базове, і цей досвід я з ним поділяю. У світі DevOps модно бути YAML-програмістом і не вміти порахувати IP-мережі чи пояснити SSL. А у світі розробки немало спеціалістів, які запросто напишуть контролер у наявному коді, але не здатні перемножити дві матриці чи створити з нуля структуру проєкту.

Загалом не згоден про більшу зрілість західних розробників. Мій досвід свідчить, що це не так. Хоч увага до софт скілів на Заході — це частина професійного зростання з самого початку, це не дає їм перевагу в тому, що вкладається у слово «зрілість». Проте софт скіли — таки велика частина цього поняття. Саме люди з прокачаними «м’якими навичками» обганяють простих технічних пролетарів у кар’єрі.

Також Кагановський єдиний, хто згадав work-life balance. Професіонал, що себе цінує, завжди дбає про це і працює для того, щоб жити, а не навпаки. Senior’у не вийде нахрапом нав’язати нічні зміни чи овертайми і при цьому не втратити його назавжди. Не всі компанії це розуміють.

Неприємно читати базарні коментарі про СТО, але приємно, що є розумні відгуки. Створилося враження, що в Україні до кінця не визріло розуміння, що за створіння цей сеньйор, навіщо він і що з ним робити, не тільки серед сеньйорів, а й серед управлінців. Проте ми рухаємося в правильному, на мій погляд, напрямку.

У тій статті також згадували про менторство. Думки в коментарях розділились, але здатність бути ментором і здатність бути в ролі ситуативного trainee — це окремий важливий софт скіл. Тут мова не про onboarding і не про джуніорів. Це радше навичка вчитися у всіх і навчати всіх — те, що ще називають knowledge sharing.

Очікування і реальність

Senior = Soft skills, помножені на T-shaped individual

Думаю, загалом люди як на Заході, так і в Україні, не поділяють чи не усвідомлюють цю формулу, а «гарячий» ринок дає певне хибне враження, що личка в резюме щось означає. Title does not entitle.

Якщо переді мною резюме зі словом Senior, я очікую, що кандидат має хоча б деякі софт скіли, достатній рівень технічних навичок для проєкту, відкритість і гнучкість мислення.

Senior — це той рівень, де ти уже або професіонал, або ти ще не Senior. Зростання після сеньйора — це вже професійне вдосконалення та підвищення своєї професійної корисності вглиб і вшир (того, що зветься value). Необхідний професіоналізм — це компетенції роботи з людьми, які набуваються і з часом, і з досвідом. Але не всі ми однакові, у всіх є таланти та особливості.

Хтось інтуїтивно відчуває це й професійно працює джуніором у 20, комусь і в 40 доводиться пояснювати певні речі. Що, скажімо, сексизм — це непрофесійно у професійному житті. Або що треба активно проговорювати проблеми, а не приховувати їх. Тут варто сказати, що лікувати той же сексизм в особистому світогляді чи виховувати дорослих людей — теж непрофесійно, бо не треба лізти в особисте або намагатись перевиховати уже сформовану особистість, якщо у вас не дуже близькі стосунки. Дарма я зачепився за сексизм як приклад, тому поставлю тут крапку.

Є ще чудове слово — «поміркованість». Мабуть, це я і вкладаю в слово «зрілість». Якщо мідл ще має бажання поекспериментувати з новими речами прямо на проєкті, бо десь в інтернеті цікаве написали, то Senior — поміркований інженер, який знайде баланс між новим підходом і підтримкою наявного в робочому стані. Ця поміркованість — стандартний modus operandi. Сеньйор теж багато експериментує, але при цьому не кидає свою компанію під автобус.

Тому технічна експертиза тут відходить дещо на другий план.

Для мене основні критерії Senior — це наявність софт скілів. Серед іншого неназваного і забутого:

  • здорова алергія на неконтрольований перфекціонізм;
  • вміння працювати й робити прогрес в неоптимальних умовах та вміння бігати з перешкодами: відсутність документації чи якісних тестів, відволікання, конфліктна команда, необхідність ухвалити рішення на свій розсуд і ризик, поки хтось у відпустці, взяти лідерство в невизначеній локальній ситуації;
  • вміння визнати, де бракує технічної експертизи, і сказати про це через своє его;
  • вміння стояти на своєму й конструктивно аргументувати, як і слухати аргументи інших;
  • тактовність у критиці й вміння критикувати, як і сприймати критику інших;
  • вміння визнати неправильність підходу, свою помилку чи проблему й проговорити це з командою чи менеджментом;
  • вміння працювати в команді з людьми різних компетенцій і різних рівнів, мати терпіння і витримку взаємодіяти з конфліктними колегами певний час;
  • вміння бути ментором і дослухатись, коли хтось менторить тебе;
  • вміння бути одночасним власником кількох невеликих завдань;
  • вміння працювати з конфліктними ситуаціями на базовому рівні;
  • вміння оцінювати завдання в команді.

Якщо відштовхуватись від понять soft values чи синергія, то Senior — абсолютно чітко має додавати soft values в команду, а не створювати нові командні, процесні чи корпоративні проблеми.

Як оцінювати і визначати Seniors: власний досвід

Інколи на етапі скринінгу резюме бувають випадки, коли класним кандидатам відмовляють через неякісні резюме. Кілька тижнів тому переглядав теку з такими і натрапив на абсолютно паршиво відформатоване резюме чудового олдскульного хакера із 30-річнимдосвідом. Підготовка резюме — теж важливо. Часом відмови відверто суб’єктивні. Це, на жаль, реальність, на яку доросла людина має зважати.

Якщо дійшло до співбесід, то відбір може закінчитися, якщо йдеться про клінічні варіанти брехні. Зазвичай я даю людині змогу самій сказати, в чому вона сильна, а тоді ставлю з цієї сфери питання. Брехня тут, на жаль, трапляється частіше, ніж хотілося б. Я з усмішкою ввічливо запитую далі, навіть підбадьорюю, але вже знаю, що цього кандидата побачу востаннє в житті. Єдине, що врятує орла — це зворотне питання, що я думаю про його відповідь. Такі, на жаль, рідко задають.

З боку DevOps чи Infrastructure часто трапляється, що кандидати, які знають AWS чи GCP (навіть з не одним сертифікатом), не можуть відповісти на базові речі типу обрахунку IP-адрес. Або мережеві інженери-сеньйори, які ніколи не робили фейловер роутера чи не знають, що таке spine-leaf, RSTP, LACP чи MC-LAG.Це якийсь феномен епохи хмарних технологій.

Щодо hard skills, то цього року мав цікаву співбесіду з кандидатом на Lead Infrastructure Engineer, убивцею процесів:

  • Can you explain what is OOM killer and how it works?
  • I can, I was killing processes 9 years, you need to use kill command

Стосовно розробки, пригадую, якось я писав тестове завдання для друга на Android-позицію, бо він не знав, як порахувати суму елементів матриці по діагоналі. Довелось усе розжувати. Він щиро здивувався, що на роботі йому треба знати таку математику, і тут певною мірою мав слушність. Це до слова про західних інженерів — він німець.

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

Розчаровує, коли сліпо транслюють best practices чи hype: клауд краще, ніж онсайт, контейнери краще за віртуалки, копіпейст — це зло, YAML кращий за JSON, а JSON кращий за XML, а ось Фаулер сказав, що мікросервіси... тощо.

Сумно, коли Seniorи-погані-танцюристи приходять на проєкт і наступного дня починають жалітись, що все зроблено не так, усе паршиво і що їм не створили умови для плідної роботи.

Буває різне, але здебільшого таких кандидатів легко відсіяти якісним півгодинним технічним скринігом перед основними інтерв’ю, щасливчики — не проходять випробувальний термін. Юні орли, що пролітають таки в шпарину, стають, на жаль, баластом.

Розчаровують і PM’и, які не можуть визначити реальний час та ідеальний, не враховують фінансові витрати у плануваннях чи ставляться до людей як до бездушних ресурсів. Засмучує стабільна тенденція приписувати досягнення команди з 20 лобастих інженерів собі, а ще пошук крайніх. Я не професійний PM, але певне уявлення маю, бо мушу.

Як привабити і втримати сильного фахівця в компанії

Привабити треба, звісно, відчуттям натхнення, що людина працюватиме над цікавим і потрібним проєктом, добрими умовами роботи, конкурентною компенсацією, можливостями розвитку й професійної самореалізації. Не всі пункти завжди можливі, але хоч кілька має бути.

А щоб втримати, маргінально кращі умови не допоможуть, треба потурбуватись про перспективу і довгострокові відносини між компанією та спеціалістом, вчасно визначати проблеми, індивідуальні потреби й особисті цілі людини. І в межах розумного допомогти розв’язати проблеми чи надати людині можливості реалізувати потреби й цілі.

Loyalty is a two-way street, мені подобається думати про себе і компанію як про рівних незалежних агентів. І саме на основі конкретної лояльності компанії як машини до мене як гвинтика я будую свою лояльність до неї. І з часом природно починаю почуватися її частиною. Хоча треба завжди мати на увазі, що ці відносини в більшості аспектів асиметричні, і асиметрія тут не на користь працівника.

Яскравий приклад лояльності махини до гвинтика з особистого досвіду. Одна з минулих компаній дала мені можливість півтора року працювати з України через особисті потреби. Кроки назустріч такого масштабу важать на моїх терезах багато, навіть якщо компанія чи проєкт загалом — не дуже. Але треба навчитись чітко розрізняти конкретного менеджера і компанію загалом, щоб розуміти, від кого ця лояльність йде і кому її повертати. Коли вас звільняють чи ви говорите про підвищення — ви спілкуєтесь з компанією в особі менеджера, який, можливо, просто транслює те, що зовсім не може змінити. Не всі розмежовують лояльність до чи від компанії та лояльність до чи від конкретного управлінця.

Часто кажуть, що люди приходять в компанію, а йдуть від менеджерів, але я не згоден. Йти з болем треба і від хороших менеджерів, якщо вони на пару з вами працюють у поганій компанії, і від поганих менеджерів, навіть якщо вони — в хорошій.

Лояльність — тема цікава, сподіваюсь топи українських компаній напишуть, how they understand and execute this concept from their side ;)

Отже, хто такий Senior

Це коли всі вищезазначені поняття збігаються в одній точці, а ми — професіонали своєї справи, впевнено відчуваємо це внутрішньо, отримуємо за це явне і неявне прийняття та визнання колег, які нижче, вище та на тому ж рівні корпоративної ієрархії, коли це випромінюється на інтерв’ю, коли це не брехня в резюме, коли на проєкті ви справді працюєте над свого рівня завданнями, коли це виливається у співмірну з рештою сеньйорів на ринку зарплату чи інші матеріальні та нематеріальні бонуси.

На моїй пам’яті було всіляке. І якщо звернутись до бородатого жарту, то серед іншого мене не дивують ані 23-річнісеньйори (у мене був класний молодий британець на одному з проєктів), ані 60-річніджуніори (класний старий канадець, який на пенсії вивчив iOS на іншому проєкті). Хоча це винятки, тому 23-річнісеньйори все одно мають викликати підозру.

Так вийшло, що мені з дитинства пощастило з внутрішнім сприйняттям та вектором. Я, звісно, починав з азів, як роблять усі нормальні люди, але в мене завжди було здорове відчуття зростання, яке допомогло пройти найскладніші періоди і найгостріші конфлікти. Не буду проєктувати це на всіх, ми всі різні, але якщо є, не дай боже, хронічна професійна вавка — найперше, де варто шукати негаразди — у власній самооцінці. Раджу почати зі статтіЮрія Савки.

Якщо ви не сеньйор або навіть якщо ви вже щасливий сеньйор, але відчуваєте, що щось не так, і маєте внутрішню непевність, давно застрягли професійно — попрацюйте саме з собою.

Ще наприкінці статті автор згадує дві системи спортивної самооцінки, і раджу взяти це на озброєння. Так вийшло, що саме «повсякденна» в мене змалку в порядку і з дитинства вектор був правильний. Може, саме тому мені завжди було начхати, яка в мене личка, як мене хтось називає, в кого яка особиста думка про мою роботу, якщо я сам знаю, що більше зробити не міг. «Змагальна», думаю, — це трохи перебільшення. Для спорту, мабуть, підходить, але для командних інженерних проєктів може бути шкідливо. Раджу «освоїти» «повсякденну» самооцінку усім, але вибір за вами.


Вдячний редакції DOU за цікаву тему, що спонукала до такого довгого тексту. А вам, сеньйори й сеньйорити в минулому, теперішньому чи майбутньому, дякую за витрачений час на читання та бажаю постійного професійного зростання і вдосконалення.

Viewing all 499 articles
Browse latest View live