Hệ thống Sprint ẩn mình bên dưới

Published in TrendAI26 May 20265 min read

Hệ thống Sprint ẩn mình bên dưới

Thứ Sáu tuần trước, một ý tưởng xuất hiện trước bữa trưa. Đến giữa buổi chiều, nó đã trở thành một sản phẩm hoạt động, được triển khai, thay thế bảng tính 3.997 dòng mà tôi đã duy trì trong nhiều năm.

Ba giờ. Từ ý tưởng đến sản phẩm trong cùng một ngày.

Pha 4 của lộ trình của tôi — tầm nhìn mười hai tháng mang tên Fusion Growth — đã lặng lẽ đến trên một công cụ theo dõi chi phí cá nhân, trong số tất cả mọi thứ. Tôi đã viết về khoảnh khắc đó trong Build Log #3. Điều tôi không viết là điều gì đã làm cho nó khả thi.

Đó không phải là một agent thông minh hơn. Agent đã gần như giống nhau trong nhiều tháng.

Điều thay đổi bên dưới nó là một xương sống quy trình. Sáu mảnh kỷ luật vận hành mà các nhà sáng lập đơn độc thường được cho rằng không cần ở quy mô này.

Đây là những mảnh ghép biến “bản demo thú vị” thành “đã ra sản phẩm trước 3 giờ chiều.”

Những gì đã được xây dựng

Sáu trụ cột, được củng cố song song kể từ Sprint 1. Tẻ nhạt khi đứng một mình. Chết người khi kết hợp lại.

1. Sprint cadence

Chu kỳ sáu ngày, từ Thứ Hai đến Thứ Bảy. Mỗi ngày kết thúc bằng một mục nhật ký thời gian trong `tos_time_log` — tôi đã làm gì, thời gian đã dành, thời gian còn lại. Mỗi sprint kết thúc bằng một retro và một backlog được điều chỉnh lại. Một Supabase view tên `v_sprint_burndown` cho tôi thấy tôi thực sự đang ở đâu, chứ không phải nơi tôi đã lên kế hoạch. Các nhà sáng lập đơn độc bỏ qua cadence vì không có nhóm để phối hợp. Đó là lý do sai. Cadence là nhịp tim. Nếu không có nó, công việc sẽ mở rộng để lấp đầy bất kỳ khoảng thời gian nào bạn cho nó.

Sprint burndown chart over six days, Monday to Saturday on the X-axis, capacity hours on the Y-axis. A dashed planned line falls diagonally from full capacity at top-left to zero at bottom-right. A solid teal “actual” line tracks just above the planned line through Wed, dips below it on Fri, lands at zero on Sat. Small dot markers on each weekday represent EOD time-log entries. Dark editorial background, white axes, teal accent for actuals, amber dot for retro marker on Saturday. Clean flat chart style.

Nhịp đập sáu ngày — burndown từ `v_sprint_burndown`.

2. Lean agile

Một backlog thực sự, không phải một danh sách mong muốn. Các story với mô tả, kết quả và những gì cần làm. Các task bên dưới với ước tính và thực tế. Tất cả đều nằm trong markdown dưới `projects/tri-venture-phase-01/` và trong hai bảng Supabase — `tos_task_state` cho trạng thái trực tiếp, `tos_time_log` cho các khoản tích lũy. Cổng BUD hiển thị nó. Agent đọc nó. Khi tôi nói “bắt đầu task E27.1-3” agent đã biết story, kết quả và những gì đã hoàn thành. Không có phần mềm quản lý dự án. Chỉ có git cộng với Postgres.

Three-tier nested hierarchy diagram. Outer rounded rectangle labelled “Backlog”. Inside, three story rectangles stacked vertically — one expanded to reveal its fields: description, outcome, what-to-be-done. Underneath the expanded story, two task pills showing estimate vs actual hours. A small tag at the bottom reads “git + Postgres”. Dark editorial background, amber accent on the active story, soft white labels, subtle dotted lines connecting story → tasks. Modern flat illustration.

Một backlog thực sự. Stories mang ý định. Tasks mang thời gian.

3. CI/CD

Mọi dự án triển khai trên `git push`. Push lên `dev` và Cloudflare Pages xây dựng bản xem trước. Push lên `master` và nó xây dựng bản production. Không có cửa sổ release. Không có triển khai thủ công. Không có con người nào kiểm soát các byte giữa “nó hoạt động trên máy của tôi” và “nó đang hoạt động cho người dùng.” Pipeline chính là deploy. taikim-finance đã đi từ commit cục bộ đến `finance.taikim.com` chỉ bằng một cử chỉ tôi dùng để lưu một tệp.

Horizontal flow diagram. Left: a developer terminal tile showing `git push` on a dark background. Middle: a branching diagram — one arrow forks up to “dev” and one down to “master”. Right: two Cloudflare Pages tiles — “Preview” labelled `.pages.dev` and “Production” labelled `finance.taikim.com` — each with a small CF orange dot. Glowing arrows show the bytes flowing instantly with no human gate. Dark editorial background, electric blue accent on the master path, soft teal on dev. Clean modern flat illustration.*

Pipeline chính là deploy.

4. QA regression

Mỗi giao diện có bộ test riêng — Jest với React Testing Library và MSW cho các ứng dụng Next.js, pytest cho các dịch vụ Python trên s07. Các test chạy trên mỗi lần push. Một test đỏ sẽ chặn build. Kém thanh lịch hơn một bộ harness thống nhất, nhưng trung thực hơn về những gì mỗi ứng dụng thực sự cần. Regression không phải là một thứ “có thì tốt” khi một operator đang triển khai sáu giao diện song song — đó là điều duy nhất giữ cho công việc của ngày hôm qua không lặng lẽ bị hỏng dưới commit của ngày hôm nay.

A grid of small test-status tiles arranged in three rows of eight — most showing green ticks, with one red cross. A horizontal build-pipeline arrow runs left-to-right beneath them and visibly stops at the column with the red tile. Floating labels overhead read “Jest + RTL + MSW” (left half) and “pytest” (right half). Mood: protective, sharp. Dark editorial background, vivid green for passing tiles, accent red for the single failing test, white labels. Modern flat illustration.

Một test đỏ chặn build. Công việc của ngày hôm qua không lặng lẽ mục nát.

5. Codified doctrines

Các quy tắc kiến trúc ràng buộc, được viết ra, mà agent áp dụng mà không cần hỏi lại. Thin-host doctrine: mọi thứ trong Docker, host vẫn tối thiểu. Resumable-pipeline doctrine: mọi submission đều tồn tại ngay cả khi back end gặp sự cố. Web-design-defaults doctrine: mọi webapp đều có back-to-top, favicon tùy chỉnh và bộ chuyển đổi theme. Backup doctrine, monitoring doctrine, và nhiều nữa. Hiện có mười hai cái. Mỗi cái là một quyết định tôi đã đưa ra một lần và không bao giờ phải tranh cãi lại. Chúng nằm trong `core/operations/` và agent đọc chúng trước khi viết một dòng code.

A stack of twelve thin document tiles, slightly fanned, each labelled with a doctrine name (Thin-host, Resumable-pipeline, Web-design-defaults, Backup, Monitoring, and seven more). The top three are slightly raised and glow softly. A small folder icon at the side labelled `core/operations/`. An arrow flows from the top of the stack into a stylised agent silhouette on the right. Dark editorial background, violet accent on the highlighted doctrines, white labels, subtle paper-stack shadow. Modern flat illustration.

Đã quyết định một lần. Áp dụng mọi lúc.

6. Persistent agent context

Một `CLAUDE.md` ở thư mục gốc repo tự động tải mỗi phiên. Bộ nhớ tự động theo dự án dưới `~/.claude/projects/`. Một repo `tos-docs` đã trở nên đủ dày để hoạt động như bộ nhớ dài hạn của doanh nghiệp. Kết quả là điều tôi gọi là làm việc không lặp lại trong Build Log #3 — tôi không còn phải giới thiệu lại các venture, stack, hoặc các quy tắc mỗi sáng. Chi phí onboarding giảm xuống bằng không. Build Log #3 nói về sự thay đổi đó. Bài viết này nói về những gì nó làm cho khả thi: cadence và kỷ luật cuối cùng có thể tích lũy, vì không có gì bị reset qua đêm.

A central glowing agent node on the right, surrounded by three orbiting tiles on the left feeding light into it. Top tile: a `CLAUDE.md` document with subtle frontmatter visible. Middle tile: a folder labelled `~/.claude/projects/` containing small memory cards. Bottom tile: a `tos-docs` repo tile thick with subdirectories (`core/`, `bau/`, `projects/`). Streams of cyan light flow from each tile into the agent. Mood: resident, embedded, settled. Dark editorial background, cyan accent, white labels. Modern flat illustration. No readable text inside files.

Agent không onboarding mỗi sáng. Nó đã ở nhà.

Six-pillar substrate diagram. Three pairs of columns, each labelled: Sprints / Lean Agile (left), CI/CD / QA Regression (middle), Doctrines / Persistent Context (right). Under each pillar, the actual components: tos_time_log + v_sprint_burndown | markdown stories + tos_task_state | CF Pages git-push deploy | Jest/RTL/MSW + pytest | core/operations/ doctrine files | CLAUDE.md + auto-memory. A bottom band labelled “1-day idea → production.” Above the pillars, an upward arrow into a stylised “AI Layer” block. Dark background, accent colour per pair (teal / amber / violet), white labels.

Bên dưới lớp AI — nền tảng quy trình giúp thực hiện trong cùng một ngày.

Những Quyết định Quan trọng

Một vài quyết định đáng nhắc đến:

Lean-agile lite thay vì Scrum, Jira, hoặc Linear. Một operator đơn độc với một AI agent không cần một bảng ticket, một chồng nghi lễ, hoặc các vai trò được chỉ định. Linear rất tốt cho các nhóm; mô hình queue của nó bị phá vỡ khi người được giao luôn là bạn. Các trang Notion mục nát sau ba tuần. Các story markdown trong git cộng với bảng thực tế của Supabase cho tôi 10% của Scrum thực sự hoạt động — backlog, story, task, estimate, actual, retro. Agent đọc chúng giống như cách nó đọc code. – Six-day sprints thay vì mặc định hai tuần của doanh nghiệp — và thay vì một tuần. Hai tuần ở quy mô solo là mãi mãi; burndown nói dối chín ngày trong số mười bốn ngày. Sprint một tuần không để lại không gian thở và mỗi retro biến thành một cuộc hoảng loạn. Sáu ngày cho tôi một nhật ký EOD hàng ngày, một retro vào Thứ Bảy thực sự tạm dừng, và một khởi đầu lại vào Thứ Hai cảm thấy như một khởi đầu mới thay vì một cơn nôn nao. – Git-push deploys thay vì các cửa sổ release thủ công hoặc CI được phê duyệt. Cửa sổ release là một giao thức nhóm không tồn tại khi nhóm chỉ có một người. Các cổng phê duyệt bảo vệ chống lại những người không ở trên bàn phím mười phút trước — cũng không tồn tại. Cloudflare Pages tự động deploy khi push: `dev` đến preview, `master` đến production. Cổng duy nhất là liệu tôi có gõ `git push origin master` thay vì `git push origin dev` — đó chính xác là cái đúng. – Per-project test suites thay vì một bộ harness thống nhất như Nx hoặc Turborepo. taikim-finance và trendmedia.au không chia sẻ gì — các framework, mock, dữ liệu fixture khác nhau. Buộc chúng vào một hệ thống duy nhất sẽ thêm chi phí phối hợp mà tôi sẽ không trả. Mỗi giao diện sở hữu regression riêng của nó: Jest + RTL + MSW cho các ứng dụng Next.js, pytest cho các dịch vụ Python trên s07. Kém DRY hơn, trung thực hơn, tín hiệu test đỏ nhanh hơn. – Doctrines dưới dạng các artifact được viết ra thay vì kiến thức truyền miệng hoặc các trang wiki. Bộ nhớ trôi dạt; bộ nhớ agent cũng trôi dạt. Các trang wiki mục nát trong một công cụ riêng biệt với nghi lễ truy cập riêng của chúng. Nếu một quy tắc chỉ tồn tại trong đầu tôi hoặc lịch sử trò chuyện, phiên tiếp theo sẽ tranh luận lại từ đầu — và agent đưa ra một câu trả lời khác một nửa thời gian. Các doctrine trong `core/operations/` được git-tracked, agent-readable, và ràng buộc ngay khi chúng được commit.

Điều này Thực sự Cho phép Điều Gì

Vòng lặp 1-ngày-đến-production. Không phải là một màn trình diễn — mà là giả định làm việc.

Khi tôi nghĩ về một công cụ mới bây giờ, kỳ vọng mặc định của tôi là nó sẽ được triển khai ngay hôm nay. Nền tảng là thứ đã mang lại kỳ vọng đó. Sprints mang lại cadence. Backlog mang lại ý định. CI/CD mang lại các byte. Tests mang lại sự an toàn. Doctrines mang lại kiến trúc. Persistent context mang lại bộ nhớ.

Agent đọc tất cả. Tôi gõ hướng dẫn. Công việc đi qua nền tảng và ra phía bên kia dưới dạng một sản phẩm đã được triển khai.

Luận điểm, được xem xét lại

Lean agile, CI/CD, sprints, QA regression — đây là những thực hành mà ngành công nghiệp đã quyết định là chỉ dành cho doanh nghiệp. Quá nặng nề cho một operator đơn độc. Chi phí chung bạn không thể chi trả cho đến khi bạn có một nhóm.

Điều đó đúng khi operator chỉ là một con người. Nó không còn đúng khi operator là một con người cộng với một resident agent có thể theo kịp cả sáu trụ cột cùng một lúc.

Câu hỏi tôi luôn tự hỏi mình — và bây giờ hỏi bạn — là đây:

Lớp quy trình nào trong doanh nghiệp của bạn mà bạn đã bỏ qua vì bạn là người duy nhất điều hành nó?

Hãy đưa nó vào. Kỷ luật mà bạn nghĩ rằng bạn không thể chi trả chính là điều làm cho mọi thứ khác trở nên khả thi.

Ý tưởng đến sản phẩm trong cùng một ngày không phải là một lời hứa trong tương lai. Đó là điều mà nền tảng bên dưới AI lặng lẽ cho phép, ngay khi bạn ngừng bỏ qua nó.

Feature Image: A wide editorial illustration showing a solo founder at a clean home-office desk, mid-afternoon light, laptop open with a finished product on screen — calm and unhurried. Beneath the desk and floor, a subtle architectural x-ray reveals six glowing vertical pillars supporting a thin platform that the desk rests on. Each pillar is a different accent colour (teal, amber, violet, blue, green, cyan) and glows softly, with small abstract icons hinting at sprints, deploys, tests, and documents. The pillars feel structural — load-bearing, not decorative. Warm-cool palette: amber and cream above, deep blue and electric teal below. Modern flat editorial illustration with cinematic depth. No text. No readable code. Honest, grounded, optimistic. 16:9 aspect.