[{"data":1,"prerenderedAt":946},["ShallowReactive",2],{"article-alternates":3,"article-\u002Fru\u002Ftravel\u002Fasync-first-kultura-4-saat-dilimi":13},{"i18nKey":4,"paths":5},"travel-002-2026-06",{"de":6,"en":7,"es":8,"fr":9,"it":10,"ru":11,"tr":12},"\u002Fde\u002Ftravel\u002Fasynchron-first-kultur-produktentwicklung-uber-zeitzonen","\u002Fen\u002Ftravel\u002Fasync-first-culture-product-development-four-timezones","\u002Fes\u002Ftravel\u002Fcultura-asincronico-primero-desarrollo-producto-multizonal","\u002Ffr\u002Ftravel\u002Fkultur-asinkron-4-zone-horaire","\u002Fit\u002Ftravel\u002Fcultura-asincrona-sviluppo-prodotto-4-timezone","\u002Fru\u002Ftravel\u002Fasync-first-kultura-4-saat-dilimi","\u002Ftr\u002Ftravel\u002Fasenkron-first-kultur-4-time-zoneda-urun-gelistirme",{"_path":11,"_dir":14,"_draft":15,"_partial":15,"_locale":16,"title":17,"description":18,"publishedAt":19,"modifiedAt":19,"category":14,"i18nKey":4,"tags":20,"readingTime":26,"author":27,"body":28,"_type":73,"_id":941,"_source":942,"_file":943,"_stem":944,"_extension":945},"travel",false,"","Асинхронная культура: разработка продукта в 4 часовых поясах","Методология эффективной разработки продукта в 4 разных часовых поясах через Linear-обновления, SLA ответов и дисциплину асинхронных встреч вместо ежедневных стендапов.","2026-06-29",[21,22,23,24,25],"async-first","remote-work","distributed-teams","linear","product-development",9,"Roibase",{"type":29,"children":30,"toc":925},"root",[31,39,46,51,56,61,68,251,256,262,267,272,377,382,387,393,398,404,409,414,450,455,460,478,484,489,494,528,533,693,706,712,717,722,728,733,749,754,760,765,770,775,781,786,903,908,914,919],{"type":32,"tag":33,"props":34,"children":35},"element","p",{},[36],{"type":37,"value":38},"text","В 2026 году 68% команд разработки продуктов работают в разных часовых поясах (GitLab Remote Work Report 2026). Когда менеджер продукта в Стамбуле начинает день в 09:00, разработчик в Токио уже закончил свой день, а дизайнер в Лиссабоне еще спит. Эта реальность превратила синхронные встречи в операционный тормоз. Асинхронная культура больше не опция — это условие сохранения velocity распределённых команд.",{"type":32,"tag":40,"props":41,"children":43},"h2",{"id":42},"реальная-стоимость-ежедневного-стендапа",[44],{"type":37,"value":45},"Реальная стоимость ежедневного стендапа",{"type":32,"tag":33,"props":47,"children":48},{},[49],{"type":37,"value":50},"Формат daily standup занимает 15 минут, но основная стоимость — в времени ожидания. Поиск общего часа для 4 часовых поясов означает, что кто-то сидит на встречу в 23:00, а другой в 07:00. Сотрудник либо нарушает цикл сна, либо теряет prime-часы своего рабочего дня.",{"type":32,"tag":33,"props":52,"children":53},{},[54],{"type":37,"value":55},"Собственные расчёты Roibase: маршрут Стамбул—Лиссабон—Дубай—Бангкок, 5 стендапов в неделю = 20 часов простоя в месяц на человека в команде. Это не только длительность встречи — с учётом overhead переключения контекста (исследование Deep Work Кала Ньюпорта 2016 показывает 23-минутный период возврата к задаче после каждого перерыва), цифра вырастает до 35–40 часов ежемесячно.",{"type":32,"tag":33,"props":57,"children":58},{},[59],{"type":37,"value":60},"В асинхронной модели эта стоимость стремится к нулю. Каждый сотрудник публикует обновление в своё prime-время, остальные читают по своему графику. Нет блокировок, нет календарного тетриса.",{"type":32,"tag":62,"props":63,"children":65},"h3",{"id":64},"формат-daily-update-в-linear",[66],{"type":37,"value":67},"Формат daily-update в Linear",{"type":32,"tag":69,"props":70,"children":74},"pre",{"className":71,"code":72,"language":73,"meta":16,"style":16},"language-markdown shiki shiki-themes github-dark","## 2026-06-29 Обновление — @username\n\n**Доставлено:**\n- Feature X развёрнут (production)\n- Bug #4521 закрыт, regression-тесты пройдены\n\n**В процессе:**\n- Feature Y интеграция backend (%60)\n- A\u002FB-тест настройка, ETA: 2026-06-30 14:00 UTC\n\n**Заблокировано:**\n- Ожидание одобрения от дизайна (issue #789)\n- SLA ответа: 4 часа (пингую @designer)\n\n**Контекст:**\nНа аналитическом dashboard добавляется новая метрика, но не хватает кэш-слоя — сначала это решаем, потом переходим на оптимизацию frontend.\n","markdown",[75],{"type":32,"tag":76,"props":77,"children":78},"code",{"__ignoreMap":16},[79,91,101,111,127,140,148,157,170,182,190,199,212,225,233,242],{"type":32,"tag":80,"props":81,"children":84},"span",{"class":82,"line":83},"line",1,[85],{"type":32,"tag":80,"props":86,"children":88},{"style":87},"--shiki-default:#79B8FF;--shiki-default-font-weight:bold",[89],{"type":37,"value":90},"## 2026-06-29 Обновление — @username\n",{"type":32,"tag":80,"props":92,"children":94},{"class":82,"line":93},2,[95],{"type":32,"tag":80,"props":96,"children":98},{"emptyLinePlaceholder":97},true,[99],{"type":37,"value":100},"\n",{"type":32,"tag":80,"props":102,"children":104},{"class":82,"line":103},3,[105],{"type":32,"tag":80,"props":106,"children":108},{"style":107},"--shiki-default:#E1E4E8;--shiki-default-font-weight:bold",[109],{"type":37,"value":110},"**Доставлено:**\n",{"type":32,"tag":80,"props":112,"children":114},{"class":82,"line":113},4,[115,121],{"type":32,"tag":80,"props":116,"children":118},{"style":117},"--shiki-default:#FFAB70",[119],{"type":37,"value":120},"-",{"type":32,"tag":80,"props":122,"children":124},{"style":123},"--shiki-default:#E1E4E8",[125],{"type":37,"value":126}," Feature X развёрнут (production)\n",{"type":32,"tag":80,"props":128,"children":130},{"class":82,"line":129},5,[131,135],{"type":32,"tag":80,"props":132,"children":133},{"style":117},[134],{"type":37,"value":120},{"type":32,"tag":80,"props":136,"children":137},{"style":123},[138],{"type":37,"value":139}," Bug #4521 закрыт, regression-тесты пройдены\n",{"type":32,"tag":80,"props":141,"children":143},{"class":82,"line":142},6,[144],{"type":32,"tag":80,"props":145,"children":146},{"emptyLinePlaceholder":97},[147],{"type":37,"value":100},{"type":32,"tag":80,"props":149,"children":151},{"class":82,"line":150},7,[152],{"type":32,"tag":80,"props":153,"children":154},{"style":107},[155],{"type":37,"value":156},"**В процессе:**\n",{"type":32,"tag":80,"props":158,"children":160},{"class":82,"line":159},8,[161,165],{"type":32,"tag":80,"props":162,"children":163},{"style":117},[164],{"type":37,"value":120},{"type":32,"tag":80,"props":166,"children":167},{"style":123},[168],{"type":37,"value":169}," Feature Y интеграция backend (%60)\n",{"type":32,"tag":80,"props":171,"children":172},{"class":82,"line":26},[173,177],{"type":32,"tag":80,"props":174,"children":175},{"style":117},[176],{"type":37,"value":120},{"type":32,"tag":80,"props":178,"children":179},{"style":123},[180],{"type":37,"value":181}," A\u002FB-тест настройка, ETA: 2026-06-30 14:00 UTC\n",{"type":32,"tag":80,"props":183,"children":185},{"class":82,"line":184},10,[186],{"type":32,"tag":80,"props":187,"children":188},{"emptyLinePlaceholder":97},[189],{"type":37,"value":100},{"type":32,"tag":80,"props":191,"children":193},{"class":82,"line":192},11,[194],{"type":32,"tag":80,"props":195,"children":196},{"style":107},[197],{"type":37,"value":198},"**Заблокировано:**\n",{"type":32,"tag":80,"props":200,"children":202},{"class":82,"line":201},12,[203,207],{"type":32,"tag":80,"props":204,"children":205},{"style":117},[206],{"type":37,"value":120},{"type":32,"tag":80,"props":208,"children":209},{"style":123},[210],{"type":37,"value":211}," Ожидание одобрения от дизайна (issue #789)\n",{"type":32,"tag":80,"props":213,"children":215},{"class":82,"line":214},13,[216,220],{"type":32,"tag":80,"props":217,"children":218},{"style":117},[219],{"type":37,"value":120},{"type":32,"tag":80,"props":221,"children":222},{"style":123},[223],{"type":37,"value":224}," SLA ответа: 4 часа (пингую @designer)\n",{"type":32,"tag":80,"props":226,"children":228},{"class":82,"line":227},14,[229],{"type":32,"tag":80,"props":230,"children":231},{"emptyLinePlaceholder":97},[232],{"type":37,"value":100},{"type":32,"tag":80,"props":234,"children":236},{"class":82,"line":235},15,[237],{"type":32,"tag":80,"props":238,"children":239},{"style":107},[240],{"type":37,"value":241},"**Контекст:**\n",{"type":32,"tag":80,"props":243,"children":245},{"class":82,"line":244},16,[246],{"type":32,"tag":80,"props":247,"children":248},{"style":123},[249],{"type":37,"value":250},"На аналитическом dashboard добавляется новая метрика, но не хватает кэш-слоя — сначала это решаем, потом переходим на оптимизацию frontend.\n",{"type":32,"tag":33,"props":252,"children":253},{},[254],{"type":37,"value":255},"Этот формат пишется за 3 минуты, читается за 1 минуту. Команда каждый день открывает Linear в своё 09:00–11:00 и batch читает все обновления. Есть вопросы? Пишут в thread комментариев, ответ приходит за 4–8 часов. Если blocker критичный — пингуют в Slack, но это исключение, а не норма.",{"type":32,"tag":40,"props":257,"children":259},{"id":258},"response-sla-позвоночник-асинхронности",[260],{"type":37,"value":261},"Response SLA: позвоночник асинхронности",{"type":32,"tag":33,"props":263,"children":264},{},[265],{"type":37,"value":266},"Асинхронная культура — не «ответь когда захочешь». Это 4–8-часовая SLA ответа. Без SLA асинхронность скатывается в хаос: вопросы зависают, blocker'ы теряют день, команда теряет доверие.",{"type":32,"tag":33,"props":268,"children":269},{},[270],{"type":37,"value":271},"Таблица SLA Roibase:",{"type":32,"tag":273,"props":274,"children":275},"table",{},[276,300],{"type":32,"tag":277,"props":278,"children":279},"thead",{},[280],{"type":32,"tag":281,"props":282,"children":283},"tr",{},[284,290,295],{"type":32,"tag":285,"props":286,"children":287},"th",{},[288],{"type":37,"value":289},"Канал",{"type":32,"tag":285,"props":291,"children":292},{},[293],{"type":37,"value":294},"Ожидаемый ответ",{"type":32,"tag":285,"props":296,"children":297},{},[298],{"type":37,"value":299},"Пример",{"type":32,"tag":301,"props":302,"children":303},"tbody",{},[304,323,341,359],{"type":32,"tag":281,"props":305,"children":306},{},[307,313,318],{"type":32,"tag":308,"props":309,"children":310},"td",{},[311],{"type":37,"value":312},"Linear comment",{"type":32,"tag":308,"props":314,"children":315},{},[316],{"type":37,"value":317},"8 часов (working hours)",{"type":32,"tag":308,"props":319,"children":320},{},[321],{"type":37,"value":322},"Triage bug, feedback по дизайну",{"type":32,"tag":281,"props":324,"children":325},{},[326,331,336],{"type":32,"tag":308,"props":327,"children":328},{},[329],{"type":37,"value":330},"Slack direct",{"type":32,"tag":308,"props":332,"children":333},{},[334],{"type":37,"value":335},"4 часа",{"type":32,"tag":308,"props":337,"children":338},{},[339],{"type":37,"value":340},"Blocker, одобрение deployment",{"type":32,"tag":281,"props":342,"children":343},{},[344,349,354],{"type":32,"tag":308,"props":345,"children":346},{},[347],{"type":37,"value":348},"Slack @channel",{"type":32,"tag":308,"props":350,"children":351},{},[352],{"type":37,"value":353},"1 час",{"type":32,"tag":308,"props":355,"children":356},{},[357],{"type":37,"value":358},"Production incident, критичный bug",{"type":32,"tag":281,"props":360,"children":361},{},[362,367,372],{"type":32,"tag":308,"props":363,"children":364},{},[365],{"type":37,"value":366},"Email",{"type":32,"tag":308,"props":368,"children":369},{},[370],{"type":37,"value":371},"24 часа",{"type":32,"tag":308,"props":373,"children":374},{},[375],{"type":37,"value":376},"Обновление для stakeholder, не срочное",{"type":32,"tag":33,"props":378,"children":379},{},[380],{"type":37,"value":381},"Эти SLA документированы и подчёркиваются на onboarding'е команды. Новый сотрудник в первый день узнаёт: не ответить в Linear за 8 часов = создал blocker.",{"type":32,"tag":33,"props":383,"children":384},{},[385],{"type":37,"value":386},"Размерность SLA учитывает часовые пояса. Команда Стамбула задаёт вопрос в Linear в 18:00, команда Лиссабона отвечает в 16:00 (их локальное время) — это соответствует 8-часовой SLA, но по часам прошло 22 часа. В асинхронной культуре важно чётко определить: когда мы считаем «24 часа прошло», какой часовой пояс берём за working hours.",{"type":32,"tag":62,"props":388,"children":390},{"id":389},"обработка-sla-breach",[391],{"type":37,"value":392},"Обработка SLA breach",{"type":32,"tag":33,"props":394,"children":395},{},[396],{"type":37,"value":397},"SLA нарушение автоматически эскалирует. Если в Linear'е 8 часов нет ответа, бот пингует team lead'а. Двойное нарушение SLA подряд — 1-on-1 с сотрудником: либо SLA нереалистична (нужно менять), либо проблема дисциплины.",{"type":32,"tag":40,"props":399,"children":401},{"id":400},"дисциплина-встреч-цена-синхронного-времени",[402],{"type":37,"value":403},"Дисциплина встреч: цена синхронного времени",{"type":32,"tag":33,"props":405,"children":406},{},[407],{"type":37,"value":408},"Асинхронная культура не значит «никаких встреч» — это значит «высокий порог для встреч». Встречу открываем только если минимум 3 человека одновременно решают один вопрос, иначе пишем async-тред.",{"type":32,"tag":33,"props":410,"children":411},{},[412],{"type":37,"value":413},"Обязательная подготовка встречи:",{"type":32,"tag":415,"props":416,"children":417},"ul",{},[418,430,440],{"type":32,"tag":419,"props":420,"children":421},"li",{},[422,428],{"type":32,"tag":423,"props":424,"children":425},"strong",{},[426],{"type":37,"value":427},"Pre-read doc:",{"type":37,"value":429}," за 24 часа, максимум 2 страницы",{"type":32,"tag":419,"props":431,"children":432},{},[433,438],{"type":32,"tag":423,"props":434,"children":435},{},[436],{"type":37,"value":437},"Вопрос решения:",{"type":37,"value":439}," явно написано «Какое решение нам нужно принять на этой встречу?»",{"type":32,"tag":419,"props":441,"children":442},{},[443,448],{"type":32,"tag":423,"props":444,"children":445},{},[446],{"type":37,"value":447},"Fallback план:",{"type":37,"value":449}," если встречу отменить, какой асинхронный процесс стартует",{"type":32,"tag":33,"props":451,"children":452},{},[453],{"type":37,"value":454},"Если этого нет — встреча не открывается. На практике это сократило количество встреч на 40% (внутренние метрики Roibase, Q4 2025 vs Q2 2026).",{"type":32,"tag":33,"props":456,"children":457},{},[458],{"type":37,"value":459},"После встречи обязательно:",{"type":32,"tag":415,"props":461,"children":462},{},[463,468,473],{"type":32,"tag":419,"props":464,"children":465},{},[466],{"type":37,"value":467},"За 2 часа Linear summary решения",{"type":32,"tag":419,"props":469,"children":470},{},[471],{"type":37,"value":472},"Action item'ы с owner'ом и due date задачены",{"type":32,"tag":419,"props":474,"children":475},{},[476],{"type":37,"value":477},"Сотрудник, который не присутствовал, поймёт контекст за 10 минут чтения",{"type":32,"tag":40,"props":479,"children":481},{"id":480},"documentation-first-память-асинхронной-культуры",[482],{"type":37,"value":483},"Documentation-first: память асинхронной культуры",{"type":32,"tag":33,"props":485,"children":486},{},[487],{"type":37,"value":488},"Асинхронная культура масштабируется только с дисциплиной документирования. Устная информация теряется в 4 часовых поясах — команда Лиссабона не слышала встречу Стамбула, потеряла контекст.",{"type":32,"tag":33,"props":490,"children":491},{},[492],{"type":37,"value":493},"Каждый feature в Roibase начинается с 3 обязательных документов:",{"type":32,"tag":495,"props":496,"children":497},"ol",{},[498,508,518],{"type":32,"tag":419,"props":499,"children":500},{},[501,506],{"type":32,"tag":423,"props":502,"children":503},{},[504],{"type":37,"value":505},"RFC (Request for Comments):",{"type":37,"value":507}," 1–2 страницы, проблема + решение + компромиссы",{"type":32,"tag":419,"props":509,"children":510},{},[511,516],{"type":32,"tag":423,"props":512,"children":513},{},[514],{"type":37,"value":515},"Implementation spec:",{"type":37,"value":517}," технические детали, API контракт, data model",{"type":32,"tag":419,"props":519,"children":520},{},[521,526],{"type":32,"tag":423,"props":522,"children":523},{},[524],{"type":37,"value":525},"Rollout plan:",{"type":37,"value":527}," стратегия deploy, критерий rollback, мониторинг",{"type":32,"tag":33,"props":529,"children":530},{},[531],{"type":37,"value":532},"Формат RFC:",{"type":32,"tag":69,"props":534,"children":536},{"className":71,"code":535,"language":73,"meta":16,"style":16},"# RFC-042: Cache Layer для Analytics Dashboard\n\n## Проблема\nLatency query на dashboard 2.3 секунды — 85% пользователей ждут ответ за 1 секунду.\n\n## Предлагаемое решение\nRedis cache layer, TTL 5 минут. Целевой cache hit ratio — 90%.\n\n## Компромиссы\n- Pro: latency упадёт до 200ms\n- Con: data staleness 5 минут\n- Альтернатива: materialized view (сложнее, на 2 недели дольше)\n\n## Решение нужно до\n2026-07-05 (feature freeze)\n\n## Reviewers\n@backend-lead @product-manager\n",[537],{"type":32,"tag":76,"props":538,"children":539},{"__ignoreMap":16},[540,548,555,563,571,578,586,594,601,609,621,633,645,652,660,668,675,684],{"type":32,"tag":80,"props":541,"children":542},{"class":82,"line":83},[543],{"type":32,"tag":80,"props":544,"children":545},{"style":87},[546],{"type":37,"value":547},"# RFC-042: Cache Layer для Analytics Dashboard\n",{"type":32,"tag":80,"props":549,"children":550},{"class":82,"line":93},[551],{"type":32,"tag":80,"props":552,"children":553},{"emptyLinePlaceholder":97},[554],{"type":37,"value":100},{"type":32,"tag":80,"props":556,"children":557},{"class":82,"line":103},[558],{"type":32,"tag":80,"props":559,"children":560},{"style":87},[561],{"type":37,"value":562},"## Проблема\n",{"type":32,"tag":80,"props":564,"children":565},{"class":82,"line":113},[566],{"type":32,"tag":80,"props":567,"children":568},{"style":123},[569],{"type":37,"value":570},"Latency query на dashboard 2.3 секунды — 85% пользователей ждут ответ за 1 секунду.\n",{"type":32,"tag":80,"props":572,"children":573},{"class":82,"line":129},[574],{"type":32,"tag":80,"props":575,"children":576},{"emptyLinePlaceholder":97},[577],{"type":37,"value":100},{"type":32,"tag":80,"props":579,"children":580},{"class":82,"line":142},[581],{"type":32,"tag":80,"props":582,"children":583},{"style":87},[584],{"type":37,"value":585},"## Предлагаемое решение\n",{"type":32,"tag":80,"props":587,"children":588},{"class":82,"line":150},[589],{"type":32,"tag":80,"props":590,"children":591},{"style":123},[592],{"type":37,"value":593},"Redis cache layer, TTL 5 минут. Целевой cache hit ratio — 90%.\n",{"type":32,"tag":80,"props":595,"children":596},{"class":82,"line":159},[597],{"type":32,"tag":80,"props":598,"children":599},{"emptyLinePlaceholder":97},[600],{"type":37,"value":100},{"type":32,"tag":80,"props":602,"children":603},{"class":82,"line":26},[604],{"type":32,"tag":80,"props":605,"children":606},{"style":87},[607],{"type":37,"value":608},"## Компромиссы\n",{"type":32,"tag":80,"props":610,"children":611},{"class":82,"line":184},[612,616],{"type":32,"tag":80,"props":613,"children":614},{"style":117},[615],{"type":37,"value":120},{"type":32,"tag":80,"props":617,"children":618},{"style":123},[619],{"type":37,"value":620}," Pro: latency упадёт до 200ms\n",{"type":32,"tag":80,"props":622,"children":623},{"class":82,"line":192},[624,628],{"type":32,"tag":80,"props":625,"children":626},{"style":117},[627],{"type":37,"value":120},{"type":32,"tag":80,"props":629,"children":630},{"style":123},[631],{"type":37,"value":632}," Con: data staleness 5 минут\n",{"type":32,"tag":80,"props":634,"children":635},{"class":82,"line":201},[636,640],{"type":32,"tag":80,"props":637,"children":638},{"style":117},[639],{"type":37,"value":120},{"type":32,"tag":80,"props":641,"children":642},{"style":123},[643],{"type":37,"value":644}," Альтернатива: materialized view (сложнее, на 2 недели дольше)\n",{"type":32,"tag":80,"props":646,"children":647},{"class":82,"line":214},[648],{"type":32,"tag":80,"props":649,"children":650},{"emptyLinePlaceholder":97},[651],{"type":37,"value":100},{"type":32,"tag":80,"props":653,"children":654},{"class":82,"line":227},[655],{"type":32,"tag":80,"props":656,"children":657},{"style":87},[658],{"type":37,"value":659},"## Решение нужно до\n",{"type":32,"tag":80,"props":661,"children":662},{"class":82,"line":235},[663],{"type":32,"tag":80,"props":664,"children":665},{"style":123},[666],{"type":37,"value":667},"2026-07-05 (feature freeze)\n",{"type":32,"tag":80,"props":669,"children":670},{"class":82,"line":244},[671],{"type":32,"tag":80,"props":672,"children":673},{"emptyLinePlaceholder":97},[674],{"type":37,"value":100},{"type":32,"tag":80,"props":676,"children":678},{"class":82,"line":677},17,[679],{"type":32,"tag":80,"props":680,"children":681},{"style":87},[682],{"type":37,"value":683},"## Reviewers\n",{"type":32,"tag":80,"props":685,"children":687},{"class":82,"line":686},18,[688],{"type":32,"tag":80,"props":689,"children":690},{"style":123},[691],{"type":37,"value":692},"@backend-lead @product-manager\n",{"type":32,"tag":33,"props":694,"children":695},{},[696,698,704],{"type":37,"value":697},"RFC открывается как issue в Linear, команда пишет async комментарии. За 72 часа приходит решение — этого времени хватит всем 4 часовым поясам. Когда решение принято, RFC получает label ",{"type":32,"tag":76,"props":699,"children":701},{"className":700},[],[702],{"type":37,"value":703},"APPROVED",{"type":37,"value":705}," и становится implementation spec.",{"type":32,"tag":62,"props":707,"children":709},{"id":708},"roi-документирования",[710],{"type":37,"value":711},"ROI документирования",{"type":32,"tag":33,"props":713,"children":714},{},[715],{"type":37,"value":716},"Документирование выглядит overhead'ом, но долгоречно экономит время. Новый сотрудник при onboarding'е читает 200+ RFC — учит историю решений проекта. В синхронной культуре этот контекст остаётся tribal knowledge у senior'ов, передача занимает 6–8 месяцев.",{"type":32,"tag":33,"props":718,"children":719},{},[720],{"type":37,"value":721},"Расчёты Roibase: написание RFC — 2–3 часа работы, но этот RFC используется в среднем 8 раз за 12 месяцев. Каждое использование экономит 30 минут на дискуссию «почему мы это так делали». ROI: 2.5 часа инвестиции, 4 часа экономии.",{"type":32,"tag":40,"props":723,"children":725},{"id":724},"консистентность-бренда-один-голос-в-4-поясах",[726],{"type":37,"value":727},"Консистентность бренда: один голос в 4 поясах",{"type":32,"tag":33,"props":729,"children":730},{},[731],{"type":37,"value":732},"Даже если команда разбросана по городам, output должен говорить единым голосом. Дизайнер Стамбула и разработчик Бангкока создают разные части продукта, но говорят одним brand'ом. В асинхронной культуре это сложнее — нет design review встреч, нет real-time feedback.",{"type":32,"tag":33,"props":734,"children":735},{},[736,738,747],{"type":37,"value":737},"Решение: превратить brand guideline в executable систему. Roibase использует Figma component library + Storybook. Дизайнер создаёт component в Figma, разработчик реализует в Storybook, между ними async review в Linear ticket'е. Этот процесс — операционное расширение работы по ",{"type":32,"tag":739,"props":740,"children":744},"a",{"href":741,"rel":742},"https:\u002F\u002Fwww.roibase.com.tr\u002Fru\u002Fbranding",[743],"nofollow",[745],{"type":37,"value":746},"брендированию и идентичности",{"type":37,"value":748}," бренда. Brand не просто логотип, это shared язык распределённой команды.",{"type":32,"tag":33,"props":750,"children":751},{},[752],{"type":37,"value":753},"Brand guideline — не статичный PDF, это версионированный Markdown. Каждое изменение предлагается как RFC в Linear, после async review мержится. Разработчик Бангкока видит решение по дизайну Стамбула через 8 часов, но процесс решения записан — он понимает, почему изменилось.",{"type":32,"tag":40,"props":755,"children":757},{"id":756},"теневая-сторона-асинхронности-изоляция-и-выгорание",[758],{"type":37,"value":759},"Теневая сторона асинхронности: изоляция и выгорание",{"type":32,"tag":33,"props":761,"children":762},{},[763],{"type":37,"value":764},"Асинхронная культура дарует операционную эффективность, но берёт социальную цену. Если команда никогда не видится лично, работает через Linear comment и Slack, со временем растёт чувство изоляции.",{"type":32,"tag":33,"props":766,"children":767},{},[768],{"type":37,"value":769},"Roibase решает это месячной ротацией городов. Команда 3 месяца в Стамбуле, 3 месяца в Лиссабоне, 3 месяца в Бангкоке. Во время ротации одна неделя — все в одном городе, работают синхронно, проводят design sprint, встречаются. Эта неделя расплачивается за социальный долг асинхронной культуры.",{"type":32,"tag":33,"props":771,"children":772},{},[773],{"type":37,"value":774},"Риск выгорания высокий. В async культуре «пишу, ты ответишь когда захочешь» рождает у некоторых сотрудников чувство «я должен быть доступен 24\u002F7». Видят Slack в 2:00 ночи — чувствуют давление ответить немедленно. Здесь критично вспоминать SLA: если SLA 8 часов, ответ в 10:00 утра на сообщение 2:00 ночи — полностью легитимен.",{"type":32,"tag":40,"props":776,"children":778},{"id":777},"выбор-инструментов-асинхронный-стек",[779],{"type":37,"value":780},"Выбор инструментов: асинхронный стек",{"type":32,"tag":33,"props":782,"children":783},{},[784],{"type":37,"value":785},"Асинхронная культура масштабируется правильными инструментами. Stack Roibase:",{"type":32,"tag":273,"props":787,"children":788},{},[789,810],{"type":32,"tag":277,"props":790,"children":791},{},[792],{"type":32,"tag":281,"props":793,"children":794},{},[795,800,805],{"type":32,"tag":285,"props":796,"children":797},{},[798],{"type":37,"value":799},"Инструмент",{"type":32,"tag":285,"props":801,"children":802},{},[803],{"type":37,"value":804},"Использование",{"type":32,"tag":285,"props":806,"children":807},{},[808],{"type":37,"value":809},"Асинхронная особенность",{"type":32,"tag":301,"props":811,"children":812},{},[813,831,849,867,885],{"type":32,"tag":281,"props":814,"children":815},{},[816,821,826],{"type":32,"tag":308,"props":817,"children":818},{},[819],{"type":37,"value":820},"Linear",{"type":32,"tag":308,"props":822,"children":823},{},[824],{"type":37,"value":825},"Tracking issue, daily update",{"type":32,"tag":308,"props":827,"children":828},{},[829],{"type":37,"value":830},"Threaded comments, auto-escalate",{"type":32,"tag":281,"props":832,"children":833},{},[834,839,844],{"type":32,"tag":308,"props":835,"children":836},{},[837],{"type":37,"value":838},"Notion",{"type":32,"tag":308,"props":840,"children":841},{},[842],{"type":37,"value":843},"RFC, spec, документирование",{"type":32,"tag":308,"props":845,"children":846},{},[847],{"type":37,"value":848},"Version history, inline comments",{"type":32,"tag":281,"props":850,"children":851},{},[852,857,862],{"type":32,"tag":308,"props":853,"children":854},{},[855],{"type":37,"value":856},"Loom",{"type":32,"tag":308,"props":858,"children":859},{},[860],{"type":37,"value":861},"Code review, design walkthrough",{"type":32,"tag":308,"props":863,"children":864},{},[865],{"type":37,"value":866},"Асинхронное видео, comment по timestamp",{"type":32,"tag":281,"props":868,"children":869},{},[870,875,880],{"type":32,"tag":308,"props":871,"children":872},{},[873],{"type":37,"value":874},"Slack",{"type":32,"tag":308,"props":876,"children":877},{},[878],{"type":37,"value":879},"Urgent ping, incident response",{"type":32,"tag":308,"props":881,"children":882},{},[883],{"type":37,"value":884},"Thread reply, scheduled messages",{"type":32,"tag":281,"props":886,"children":887},{},[888,893,898],{"type":32,"tag":308,"props":889,"children":890},{},[891],{"type":37,"value":892},"Figma",{"type":32,"tag":308,"props":894,"children":895},{},[896],{"type":37,"value":897},"Дизайн, component library",{"type":32,"tag":308,"props":899,"children":900},{},[901],{"type":37,"value":902},"Comment mode, version compare",{"type":32,"tag":33,"props":904,"children":905},{},[906],{"type":37,"value":907},"Роль Loom в асинхронной культуре критична. На code review вместо 1 часа Zoom call'а — 5-минутное Loom видео с объяснением рефакторинга. Видео содержит скриншер + голос, зритель проматывает на 1.5x, ставит pause, пишет timestamp-comment если не понял. Формат в 3 раза быстрее синхронного Zoom.",{"type":32,"tag":40,"props":909,"children":911},{"id":910},"что-делать-сейчас",[912],{"type":37,"value":913},"Что делать сейчас",{"type":32,"tag":33,"props":915,"children":916},{},[917],{"type":37,"value":918},"Переход на асинхронную культуру — не одна ночь, это 6–12 месяцев дисциплины. Первый шаг: определить response SLA и согласовать с командой. Второй: поднять порог для встреч, сделать pre-read doc обязательным. Третий: стандартизировать RFC для каждого feature. Эти 3 шага позволят команде в 4 часовых поясах сохранять velocity — потому что оптимизируете время production, а не время ожидания.",{"type":32,"tag":920,"props":921,"children":922},"style",{},[923],{"type":37,"value":924},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":16,"searchDepth":103,"depth":103,"links":926},[927,930,933,934,937,938,939,940],{"id":42,"depth":93,"text":45,"children":928},[929],{"id":64,"depth":103,"text":67},{"id":258,"depth":93,"text":261,"children":931},[932],{"id":389,"depth":103,"text":392},{"id":400,"depth":93,"text":403},{"id":480,"depth":93,"text":483,"children":935},[936],{"id":708,"depth":103,"text":711},{"id":724,"depth":93,"text":727},{"id":756,"depth":93,"text":759},{"id":777,"depth":93,"text":780},{"id":910,"depth":93,"text":913},"content:ru:travel:async-first-kultura-4-saat-dilimi.md","content","ru\u002Ftravel\u002Fasync-first-kultura-4-saat-dilimi.md","ru\u002Ftravel\u002Fasync-first-kultura-4-saat-dilimi","md",1783289081478]