[{"data":1,"prerenderedAt":531},["ShallowReactive",2],{"article-alternates":3,"article-\u002Fru\u002Flifestyle\u002Flinear-async-standup-12-person-team-meeting-free-week":13},{"i18nKey":4,"paths":5},"lifestyle-001-2026-06",{"de":6,"en":7,"es":8,"fr":9,"it":10,"ru":11,"tr":12},"\u002Fde\u002Flifestyle\u002Flinear-async-standup-meeting-free-week-12-person-team","\u002Fen\u002Flifestyle\u002Flinear-async-standup-meeting-free-week","\u002Fes\u002Flifestyle\u002Flinear-async-standup-equipo-12-personas-sin-reuniones","\u002Ffr\u002Flifestyle\u002Flinear-async-standup-equipe-12-personnes-sans-reunions","\u002Fit\u002Flifestyle\u002Flinear-async-standup-team-senza-riunioni","\u002Fru\u002Flifestyle\u002Flinear-async-standup-12-person-team-meeting-free-week","\u002Ftr\u002Flifestyle\u002Flinear-async-standup-12-kisilik-ekipte-toplantisiz-hafta",{"_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":525,"_id":526,"_source":527,"_file":528,"_stem":529,"_extension":530},"lifestyle",false,"","Linear + Async Standup: Meeting-Free Week with 12-Person Team","Cycle management, daily updates, and blocker escalation for async-first team coordination. No reporting, pure operation.","2026-06-03",[21,22,23,24,25],"async-work","linear","team-coordination","cycle-management","remote-work",8,"Roibase",{"type":29,"children":30,"toc":510},"root",[31,39,46,51,56,61,148,153,160,174,183,188,193,199,212,220,240,245,251,256,261,281,286,292,297,305,310,315,350,355,361,366,389,394,399,405,417,422,451,456,462,467,500,505],{"type":32,"tag":33,"props":34,"children":35},"element","p",{},[36],{"type":37,"value":38},"text","Every synchronous meeting notification interrupts a team member's 23-minute deep work session (UC Irvine research, 2023). On a 12-person team, daily standups consume 40 minutes—translating to 240 minutes × 12 people per week = 2,880 minutes (48 hours) of lost focus. Async-first work culture doesn't eliminate this loss—it converts it into measurable, traceable operations. Linear's cycle management and async daily update discipline transforms team coordination from meetings into executable workflow. This essay documents Roibase's concrete system, refined through 8 years of team leadership.",{"type":32,"tag":40,"props":41,"children":43},"h2",{"id":42},"cycle-discipline-fibonacci-pointing-and-weekly-rhythm",[44],{"type":37,"value":45},"Cycle Discipline: Fibonacci Pointing and Weekly Rhythm",{"type":32,"tag":33,"props":47,"children":48},{},[49],{"type":37,"value":50},"In Linear, every cycle runs exactly one week. Not sprints—cycles. \"Sprint\" implies last-minute crunch; cycle implies rhythmic repetition. Each Monday at 09:00 a new cycle starts; Friday at 17:00 the cycle review post publishes. Every issue within that week lives in one of three states: Backlog, In Progress, Done.",{"type":32,"tag":33,"props":52,"children":53},{},[54],{"type":37,"value":55},"We use Fibonacci point sizing: 1, 2, 3, 5, 8. One point = under 2 hours of work; 8 points = one full day. Issues exceeding 13 points are rejected outright—breaking them down is mandatory. This isn't estimation theater—it's empirical calibration against historical velocity. Linear's \"Cycle Analytics\" panel shows the team's actual throughput (Roibase averages ~42 points completed per week).",{"type":32,"tag":33,"props":57,"children":58},{},[59],{"type":37,"value":60},"At cycle start, we populate three columns:",{"type":32,"tag":62,"props":63,"children":64},"table",{},[65,89],{"type":32,"tag":66,"props":67,"children":68},"thead",{},[69],{"type":32,"tag":70,"props":71,"children":72},"tr",{},[73,79,84],{"type":32,"tag":74,"props":75,"children":76},"th",{},[77],{"type":37,"value":78},"Column",{"type":32,"tag":74,"props":80,"children":81},{},[82],{"type":37,"value":83},"Content",{"type":32,"tag":74,"props":85,"children":86},{},[87],{"type":37,"value":88},"Owner",{"type":32,"tag":90,"props":91,"children":92},"tbody",{},[93,112,130],{"type":32,"tag":70,"props":94,"children":95},{},[96,102,107],{"type":32,"tag":97,"props":98,"children":99},"td",{},[100],{"type":37,"value":101},"Priority",{"type":32,"tag":97,"props":103,"children":104},{},[105],{"type":37,"value":106},"Customer blockers, revenue bugs, deadline-driven features",{"type":32,"tag":97,"props":108,"children":109},{},[110],{"type":37,"value":111},"Product Lead",{"type":32,"tag":70,"props":113,"children":114},{},[115,120,125],{"type":32,"tag":97,"props":116,"children":117},{},[118],{"type":37,"value":119},"Next Up",{"type":32,"tag":97,"props":121,"children":122},{},[123],{"type":37,"value":124},"Issues if Priority finishes early",{"type":32,"tag":97,"props":126,"children":127},{},[128],{"type":37,"value":129},"Engineering Lead",{"type":32,"tag":70,"props":131,"children":132},{},[133,138,143],{"type":32,"tag":97,"props":134,"children":135},{},[136],{"type":37,"value":137},"Icebox",{"type":32,"tag":97,"props":139,"children":140},{},[141],{"type":37,"value":142},"Work for next 2 cycles",{"type":32,"tag":97,"props":144,"children":145},{},[146],{"type":37,"value":147},"Team",{"type":32,"tag":33,"props":149,"children":150},{},[151],{"type":37,"value":152},"The Priority column doesn't shift mid-cycle—scope creep requests move to the next cycle. Exception: P0 bugs (production down, payment failures). This rule prevents \"urgent\" inflation.",{"type":32,"tag":154,"props":155,"children":157},"h3",{"id":156},"async-daily-update-text-first-reporting",[158],{"type":37,"value":159},"Async Daily Update: Text-First Reporting",{"type":32,"tag":33,"props":161,"children":162},{},[163,165,172],{"type":37,"value":164},"Slack channel ",{"type":32,"tag":166,"props":167,"children":169},"code",{"className":168},[],[170],{"type":37,"value":171},"#daily-updates",{"type":37,"value":173},". Every team member, upon starting work, writes exactly three lines:",{"type":32,"tag":175,"props":176,"children":178},"pre",{"code":177},"Yesterday: Implemented Stripe webhook retry logic (LIN-482, 5pt) — merged\nToday: Fixing flaky Cypress test on checkout flow (LIN-490, 3pt)\nBlocker: Need design approval on new onboarding modal (CC @DesignLead)\n",[179],{"type":32,"tag":166,"props":180,"children":181},{"__ignoreMap":16},[182],{"type":37,"value":177},{"type":32,"tag":33,"props":184,"children":185},{},[186],{"type":37,"value":187},"Format is non-negotiable. Linear issue ID mandatory (LIN-xxx), point estimate mandatory. No \"Blocker\" line if unblocked—skip it.",{"type":32,"tag":33,"props":189,"children":190},{},[191],{"type":37,"value":192},"Daily updates post between 09:00–10:30 local time (timezone-aware). Late posts trigger bot reminders (Linear webhook + Slack automation). This discipline answers \"who's doing what\" before anyone asks.",{"type":32,"tag":40,"props":194,"children":196},{"id":195},"blocker-escalation-the-4-hour-rule",[197],{"type":37,"value":198},"Blocker Escalation: The 4-Hour Rule",{"type":32,"tag":33,"props":200,"children":201},{},[202,204,210],{"type":37,"value":203},"If a team member is stuck on the same issue for 4+ hours, manual intervention required. In Linear, add the ",{"type":32,"tag":166,"props":205,"children":207},{"className":206},[],[208],{"type":37,"value":209},"blocked",{"type":37,"value":211}," label; in Slack, tag the responsible person:",{"type":32,"tag":175,"props":213,"children":215},{"code":214},"LIN-490 blocked — Can't seed DB in Cypress test environment.\n@DevOpsLead: CI pipeline seed script not running?\n",[216],{"type":32,"tag":166,"props":217,"children":218},{"__ignoreMap":16},[219],{"type":37,"value":214},{"type":32,"tag":33,"props":221,"children":222},{},[223,225,231,233,238],{"type":37,"value":224},"Post to ",{"type":32,"tag":166,"props":226,"children":228},{"className":227},[],[229],{"type":37,"value":230},"#blockers",{"type":37,"value":232}," channel, not ",{"type":32,"tag":166,"props":234,"children":236},{"className":235},[],[237],{"type":37,"value":171},{"type":37,"value":239},". Resolve in thread. Once fixed, comment on the Linear issue: \"Blocker resolved—seed script missed .env var, added to Docker Compose.\"",{"type":32,"tag":33,"props":241,"children":242},{},[243],{"type":37,"value":244},"The 4-hour rule kills solo-hero culture. Roibase averages 2.3 blocker escalations per cycle—too few means the team plays it safe (easy work), too many means scope complexity needs tuning.",{"type":32,"tag":154,"props":246,"children":248},{"id":247},"code-review-for-async-latency",[249],{"type":37,"value":250},"Code Review for Async Latency",{"type":32,"tag":33,"props":252,"children":253},{},[254],{"type":37,"value":255},"PR opened → Linear issue auto-links (GitHub integration). Author doesn't wait—moves to the next priority issue. Review SLA: at least one person within 8 hours.",{"type":32,"tag":33,"props":257,"children":258},{},[259],{"type":37,"value":260},"Review rules:",{"type":32,"tag":262,"props":263,"children":264},"ul",{},[265,271,276],{"type":32,"tag":266,"props":267,"children":268},"li",{},[269],{"type":37,"value":270},"PRs over 400 lines require splitting (review quality degrades)",{"type":32,"tag":266,"props":272,"children":273},{},[274],{"type":37,"value":275},"Test coverage below 80% auto-rejects (CI check)",{"type":32,"tag":266,"props":277,"children":278},{},[279],{"type":37,"value":280},"Approval requires 2 signatories (lead + 1 peer)",{"type":32,"tag":33,"props":282,"children":283},{},[284],{"type":37,"value":285},"During review, synchronous discussion is forbidden. Reviewer comments, author responds—merge blocked until thread closes. This kills the \"let's sync on Zoom\" trap.",{"type":32,"tag":40,"props":287,"children":289},{"id":288},"friday-cycle-review-numerical-retrospective",[290],{"type":37,"value":291},"Friday Cycle Review: Numerical Retrospective",{"type":32,"tag":33,"props":293,"children":294},{},[295],{"type":37,"value":296},"Every Friday 16:00, Linear's \"Cycle Completion Report\" fires to Slack:",{"type":32,"tag":175,"props":298,"children":300},{"code":299},"Cycle 2026-W22 Summary:\nCompleted: 38 points (target: 42)\nCarryover: 2 issues (LIN-495, LIN-501)\nBlocker count: 3\nAverage cycle time: 2.1 days\n",[301],{"type":32,"tag":166,"props":302,"children":303},{"__ignoreMap":16},[304],{"type":37,"value":299},{"type":32,"tag":33,"props":306,"children":307},{},[308],{"type":37,"value":309},"If carryover exceeds 2, the team re-prioritizes next cycle. Over 3 means planning failed—capacity shrinks for the following cycle.",{"type":32,"tag":33,"props":311,"children":312},{},[313],{"type":37,"value":314},"The review post publishes to Notion as a text artifact, not a meeting. Contents:",{"type":32,"tag":316,"props":317,"children":318},"ol",{},[319,330,340],{"type":32,"tag":266,"props":320,"children":321},{},[322,328],{"type":32,"tag":323,"props":324,"children":325},"strong",{},[326],{"type":37,"value":327},"Completed work:",{"type":37,"value":329}," One-line summary per issue",{"type":32,"tag":266,"props":331,"children":332},{},[333,338],{"type":32,"tag":323,"props":334,"children":335},{},[336],{"type":37,"value":337},"Learnings:",{"type":37,"value":339}," Technical debt, tooling improvements",{"type":32,"tag":266,"props":341,"children":342},{},[343,348],{"type":32,"tag":323,"props":344,"children":345},{},[346],{"type":37,"value":347},"Next cycle focus:",{"type":37,"value":349}," Areas receiving priority next week",{"type":32,"tag":33,"props":351,"children":352},{},[353],{"type":37,"value":354},"After publication, team members comment: \"LIN-482 Stripe logic should be tested in production\" becomes input for next cycle's planning.",{"type":32,"tag":154,"props":356,"children":358},{"id":357},"carryover-patterns-and-scope-discipline",[359],{"type":37,"value":360},"Carryover Patterns and Scope Discipline",{"type":32,"tag":33,"props":362,"children":363},{},[364],{"type":37,"value":365},"Carryover issues stem from one of two sources:",{"type":32,"tag":316,"props":367,"children":368},{},[369,379],{"type":32,"tag":266,"props":370,"children":371},{},[372,377],{"type":32,"tag":323,"props":373,"children":374},{},[375],{"type":37,"value":376},"Underestimate:",{"type":37,"value":378}," 5-point issue becomes 8-point work",{"type":32,"tag":266,"props":380,"children":381},{},[382,387],{"type":32,"tag":323,"props":383,"children":384},{},[385],{"type":37,"value":386},"External blocker:",{"type":37,"value":388}," Design approval, dependency on other teams",{"type":32,"tag":33,"props":390,"children":391},{},[392],{"type":37,"value":393},"For underestimates, update the issue's point retroactively (Linear \"Actual Effort\" field). This calibrates future estimates. For external blockers, promote to Priority—it needs fast closure once unblocked.",{"type":32,"tag":33,"props":395,"children":396},{},[397],{"type":37,"value":398},"Three consecutive cycles of carryover signals low capacity. At Roibase, we invoke a \"cooldown cycle\": no new features, only technical debt (flaky tests, deprecated dependencies, documentation gaps).",{"type":32,"tag":40,"props":400,"children":402},{"id":401},"meeting-free-week-when-sync-is-unavoidable",[403],{"type":37,"value":404},"Meeting-Free Week: When Sync is Unavoidable",{"type":32,"tag":33,"props":406,"children":407},{},[408,410,415],{"type":37,"value":409},"Async-first doesn't mean zero meetings—it means minimizing forced sync. Roibase schedules exactly one recurring sync: ",{"type":32,"tag":323,"props":411,"children":412},{},[413],{"type":37,"value":414},"Bi-weekly Planning",{"type":37,"value":416}," (every 2 weeks, 60 min). The team reviews a 4-week roadmap against Linear's \"Projects\" view.",{"type":32,"tag":33,"props":418,"children":419},{},[420],{"type":37,"value":421},"Synchronous meetings become necessary for:",{"type":32,"tag":262,"props":423,"children":424},{},[425,430,446],{"type":32,"tag":266,"props":426,"children":427},{},[428],{"type":37,"value":429},"Architectural decisions (monolith to microservices migration)",{"type":32,"tag":266,"props":431,"children":432},{},[433,435,444],{"type":37,"value":434},"Customer alignment (multi-team projects like ",{"type":32,"tag":436,"props":437,"children":441},"a",{"href":438,"rel":439},"https:\u002F\u002Fwww.roibase.com.tr\u002Fru\u002Fbranding",[440],"nofollow",[442],{"type":37,"value":443},"Branding & Brand Identity",{"type":37,"value":445}," initiatives)",{"type":32,"tag":266,"props":447,"children":448},{},[449],{"type":37,"value":450},"Conflict resolution (code review consensus failure)",{"type":32,"tag":33,"props":452,"children":453},{},[454],{"type":37,"value":455},"These occur ~0.4 times per cycle—roughly once every 2.5 weeks. Meetings cap at 30 minutes; agendas post to Notion before; decisions lock in as notes.",{"type":32,"tag":40,"props":457,"children":459},{"id":458},"embedding-async-discipline-into-operations",[460],{"type":37,"value":461},"Embedding Async Discipline into Operations",{"type":32,"tag":33,"props":463,"children":464},{},[465],{"type":37,"value":466},"Async culture isn't permissive—it demands rigorous discipline. Roibase's three pillars:",{"type":32,"tag":316,"props":468,"children":469},{},[470,480,490],{"type":32,"tag":266,"props":471,"children":472},{},[473,478],{"type":32,"tag":323,"props":474,"children":475},{},[476],{"type":37,"value":477},"Text-first communication:",{"type":37,"value":479}," No Slack voice, no Loom videos (onboarding excepted)",{"type":32,"tag":266,"props":481,"children":482},{},[483,488],{"type":32,"tag":323,"props":484,"children":485},{},[486],{"type":37,"value":487},"Response SLA:",{"type":37,"value":489}," Blocker messages within 2 hours, general messages within 8 hours",{"type":32,"tag":266,"props":491,"children":492},{},[493,498],{"type":32,"tag":323,"props":494,"children":495},{},[496],{"type":37,"value":497},"Timezone respect:",{"type":37,"value":499}," After 19:00 local time, use Slack scheduled sends (notifications off for receivers)",{"type":32,"tag":33,"props":501,"children":502},{},[503],{"type":37,"value":504},"This works because each team member reclaims deep work hours. Linear's \"Focus Time\" blocks 4 hours on each member's calendar—notifications silent, Slack closed, code or design only.",{"type":32,"tag":33,"props":506,"children":507},{},[508],{"type":37,"value":509},"Async-first team coordination isn't about cutting meetings; it's about creating rhythm for decision quality. When cycle discipline, daily updates, and blocker escalation align, the team answers \"who's doing what\" before the question arrives. This system cuts 48 hours of weekly meeting time on a 12-person team down to 1 hour. The remaining 47 hours go deep.",{"title":16,"searchDepth":511,"depth":511,"links":512},3,[513,517,520,523,524],{"id":42,"depth":514,"text":45,"children":515},2,[516],{"id":156,"depth":511,"text":159},{"id":195,"depth":514,"text":198,"children":518},[519],{"id":247,"depth":511,"text":250},{"id":288,"depth":514,"text":291,"children":521},[522],{"id":357,"depth":511,"text":360},{"id":401,"depth":514,"text":404},{"id":458,"depth":514,"text":461},"markdown","content:ru:lifestyle:linear-async-standup-12-person-team-meeting-free-week.md","content","ru\u002Flifestyle\u002Flinear-async-standup-12-person-team-meeting-free-week.md","ru\u002Flifestyle\u002Flinear-async-standup-12-person-team-meeting-free-week","md",1782079503893]