Bỏ qua để đến nội dung

Hướng dẫn vận hành

Một hướng dẫn sử dụng đầy đủ. Về các khái niệm, xem Giới thiệu.

Đăng ký tại eastagiletracker.com/signup bằng email và mật khẩu, hoặc tiếp tục với GitHub hay Google nếu bạn thích OAuth hơn. Việc đăng ký được bảo vệ bởi reCAPTCHA và một thử thách SMS, và thử thách này chạy ngược chiều so với hầu hết nơi khác: chúng tôi hiển thị cho bạn một mã và một số điện thoại, còn bạn nhắn mã đó tới số đó từ chính điện thoại của mình. Tin nhắn vừa đến là bạn đã đăng nhập. Không có ô nào để gõ số điện thoại vào, và cũng không có bước xác minh email.

Nếu bạn được mời vào một dự án hoặc một tổ chức, hãy theo liên kết trong email mời — tài khoản của bạn được tạo (hoặc bạn đăng nhập) và bạn đáp thẳng vào board tương ứng.

Trên trang đăng nhập, Remember me giữ bạn đăng nhập qua các lần khởi động lại trình duyệt; hãy tắt nó trên máy dùng chung và phiên sẽ kết thúc khi trình duyệt đóng. Nếu bạn đã thêm một passkey, Sign in with a passkey bỏ qua hoàn toàn mật khẩu. Nếu bật xác thực hai yếu tố, ô nhập mã cũng chấp nhận một trong các mã khôi phục của bạn.

Quên mật khẩu? Dùng Forgot Password trên trang đăng nhập; chúng tôi sẽ gửi email một liên kết đặt lại.

Từ avatar ở góc trên bên phải → Account Settings. Trang này là một dải tab duy nhất, và mỗi tab có địa chỉ riêng mà bạn có thể đánh dấu trang:

  • Profile — Tên hiển thị và chữ viết tắt (initials, tối đa 3 ký tự, dùng trong avatar của owner). Email của bạn được hiển thị nhưng chỉ đọc. Cùng tab đó còn có Avatar của bạn (tải lên một hình ảnh, hoặc dùng chữ viết tắt của bạn làm dự phòng), Bio của bạn (một mô tả ngắn về bản thân, tối đa 4 KiB; xuất hiện trên danh sách thành viên tổ chức để một agent hoặc một đồng đội có thể chọn đúng người để hỏi — để trống nếu bạn không muốn tham gia), Theme của bạn (Labs, Agile, Dark, hoặc Light, cũng có thể chuyển từ thanh bên), các lựa chọn đồng ý Cookies & Analytics của bạn, và Delete Account — một bước xác nhận bằng cách gõ lại, loại bạn khỏi mọi tổ chức và dự án. Thao tác xóa bị từ chối khi bạn là owner duy nhất của một tổ chức, hoặc của một dự án vẫn còn thành viên khác — hãy chuyển quyền sở hữu trước. Các tổ chức và dự án mà bạn là thành viên duy nhất sẽ bị xóa vĩnh viễn cùng với tài khoản.
  • Security — Mật khẩu, xác thực hai yếu tố và passkey của bạn; xem Bảo mật bên dưới.
  • Connected accounts — Các tài khoản GitHub và Google mà bạn có thể dùng để đăng nhập, và các địa chỉ email mà tài khoản của bạn nhận.
  • Notifications — Hai ma trận, trong ứng dụng và email, mỗi hàng một loại sự kiện. Tắt bất kỳ mục nào.
  • API Keys — Tạo các token API cá nhân; xem Hướng dẫn API. Các client MCP và ứng dụng OAuth mà bạn đã cấp quyền cũng nằm trong cùng tab; thu hồi bất kỳ cái nào tại đó.
  • Billing — Gói dịch vụ và thông tin thanh toán của bạn, khi bản cài đặt của bạn bật tính năng thanh toán.

Dải tab của cài đặt tài khoản, đang mở ở tab Profile

Từ Account Settings → Security:

  • Password — Đổi bất cứ lúc nào.
  • Two-factor (TOTP) — Thiết lập một mã từ bất kỳ ứng dụng xác thực nào (1Password, Authy, Google Authenticator, …). Nhận 10 mã khôi phục dùng một lần — chúng chỉ được hiển thị một lần, nên hãy lưu lại. Sau này tắt bằng một mã hiện hành hoặc một mã khôi phục.
  • Passkeys — Thêm một passkey WebAuthn gắn với thiết bị (Touch ID, Windows Hello, khóa bảo mật phần cứng). Sau đó đăng nhập không cần mật khẩu. Thêm, đặt tên, và gỡ key từ cùng trang đó.

Trang Bảo mật với xác thực hai lớp đã bật và hai khóa truy cập đã đặt tên

Một lần đăng nhập thành công sẽ phát hành hai token: một access JWT ngắn hạn và một refresh token dài hạn (30 ngày, được xoay vòng mỗi lần dùng). SPA tự động làm mới access token khi nó hết hạn; bạn vẫn đăng nhập cho đến khi refresh token hết hạn hoặc bạn đăng xuất. Đăng xuất sẽ thu hồi refresh token ở phía máy chủ, nên một bản sao bị đánh cắp không thể được phát lại.

Mỗi tài khoản thuộc về một hoặc nhiều tổ chức. Một lần đăng ký mới sẽ có một tổ chức cá nhân (“<Name> Org”) được tự động tạo. Dự án nằm bên trong các tổ chức, và thành viên tổ chức kiểm soát quyền thành viên dự án.

Nhấp vào bộ chuyển tổ chức trong thanh trên cùng để lật qua lại giữa các tổ chức bạn thuộc về. Tổ chức đang hoạt động giới hạn phạm vi danh sách “Projects” và được chọn sẵn khi bạn tạo một dự án mới.

Bộ chuyển tổ chức mở trên thanh trên cùng, liệt kê hai tổ chức

Nhấp vào khối tổ chức trong thanh bên → Manage organization → bạn đáp vào /organization/{id}/projects. Thanh bên hiển thị các trang quản trị:

  • Projects — Tất cả các dự án trong tổ chức này.
  • Members — Các thành viên hiện tại, vai trò, và các lời mời đang chờ. Admin và owner mời bằng email; lời mời được ghim theo email với một token có TTL, và không ai có thể mời một vai trò cao hơn vai trò của chính mình — vai trò owner không bao giờ được mời, mà được chuyển giao. Chuyển quyền sở hữu cho một thành viên khác từ trang này.
  • Settings (owner và admin) — Tên và slug của tổ chức.
  • Export (chỉ owner) — Tải xuống toàn bộ tổ chức dưới dạng zip: một bản dump SQL cùng mọi tệp đính kèm.
  • Backup — Sao lưu theo thời điểm của tổ chức và khôi phục.
  • Danger zone — Xóa tổ chức.

Cài đặt tổ chức với các tab General, Export và Danger zone cùng các trang quản trị ở thanh bên

Loại bỏ một thành viên khỏi một tổ chức sẽ lan tỏa theo tầng: quyền thành viên theo từng dự án của họ trong các dự án của tổ chức đó sẽ bị thu hồi trong cùng giao dịch. Các URL board được đánh dấu (bookmark) sẽ ngừng hoạt động ngay khoảnh khắc họ mất quyền truy cập tổ chức — không có dấu vết mồ côi.

Từ trang Projects, nhấp New Project. Biểu mẫu tạo hỏi ba thứ:

  • Project Name — Bắt buộc.
  • Description — Tùy chọn; tất cả thành viên đều thấy.
  • Organization — Bắt buộc; tổ chức mà dự án thuộc về.

Mọi thứ khác — độ dài iteration, ngày bắt đầu, velocity ban đầu, thang ước lượng, done state, công tắc task — được thiết lập sau trong Project Settings và được khởi tạo với các giá trị mặc định hợp lý.

Dưới menu Settings của dự án, có năm tab:

  • Project — Sửa tiêu đề, mô tả, độ dài iteration và ngày bắt đầu, chiến lược velocity (trung bình của 3 / 5 / 10 lần gần nhất, hoặc một giá trị thủ công), done state, thang ước lượng, Points for bugs and chores, Weekdays only (bỏ qua cuối tuần trong burndown), công tắc task, và công tắc auto-plan iterations dưới Velocity & Iterations (bật theo mặc định — xem Lập kế hoạch một iteration bên dưới). Cùng tab đó chứa Visibility (đặt dự án ở chế độ công khai), luồng Slack, Transfer sang một tổ chức khác, và Delete project.
  • Member — Mời, thăng/giáng cấp, và loại bỏ các thành viên con người (xem Thành viên và lời mời bên dưới).
  • Agent — Phát hành các agent API key cho dự án này và đặt ai được phép phát hành chúng (xem Agent bên dưới).
  • Import / Export — Mang story vào từ một tracker khác, hoặc xuất toàn bộ dự án (xem Nhập từ các tracker khácXuất một dự án bên dưới).
  • Backup — Sao lưu tự động theo thời điểm của dự án, và khôi phục chỉ với một cú nhấp. Chỉ manager.

Khối Velocity & Iterations trong tab Project: trạng thái hoàn thành, chiến lược velocity, tự động lập kế hoạch và điểm cho bug và chore

Trong tab Member của Project Settings, mời con người bằng email, hoặc thêm một người đã ở trong tổ chức bằng From organization — không cần qua lại email. Các lời mời đang chờ nằm trong một nhóm riêng cho đến khi được chấp nhận; bạn thấy ai đã được mời và có thể thu hồi. Các thành viên đang hoạt động có thể được thăng/giáng cấp giữa viewer, member, và manager. Manager có thể thay đổi cài đặt dự án; viewer có thể đọc nhưng không ghi. Các thành viên cũ vẫn được liệt kê bên dưới danh sách để lịch sử của họ vẫn quy được về đúng người.

Lịch sử dự án nằm trên trang riêng của nó — mọi thay đổi đối với cài đặt dự án, mọi thay đổi về thành viên, kèm theo tác nhân (con người hoặc agent).

Dùng nút + Add story trên bảng Current, Backlog, hoặc Icebox. Nó mở một trình soạn thảo đầy đủ: tiêu đề, mô tả, loại, độ ưu tiên, ước lượng, nhãn, owner, blocker, liên kết, task, người đánh giá, và việc bạn có theo dõi story hay không. Nhấn Cmd/Ctrl+Enter để lưu, hoặc nhấp Add.

Thêm story từ Backlog: trình soạn mở ra, điền tiêu đề và ước lượng, rồi lưu story

Story mới được tạo trong Current mặc định là current_state = 'unstarted'. Đó là sự tương đương với PT: một iteration Current là một kế hoạch công việc, không phải một phân vùng theo trạng thái. Owner sẽ Start story một cách tường minh khi họ bắt đầu công việc — đồng hồ không khởi động cho đến lúc đó.

Bắt buộc: tiêu đề. Chọn một loại (mặc định là feature). Mọi thứ khác đều có thể được điền sau từ bảng chi tiết.

Feature là loại duy nhất nhận điểm, trừ khi Points for bugs and chores được bật trong Project Settings. Nhấp vào vòng tròn điểm trên một card (hoặc trong bảng chi tiết) và chọn từ thang đo. Các feature chưa ước lượng hiển thị một vòng tròn trống.

Nhấp vào vòng tròn điểm của story và chọn 2 trên thang

  • Thang Fibonacci0, 1, 2, 3, 5, 8, 13. XP tiêu chuẩn.
  • Thang East Agile0, 1, 2, 3. Chặt chẽ hơn. Một số 3 nghĩa là cả một iteration thời gian của một người. Không có gì vừa vặn vượt quá 3.
  • Thang 3-Point1, 2, 3 (Small / Medium / Large). Phân loại theo cỡ áo nghiêm ngặt — không có tùy chọn số không, không có nửa điểm.

Chọn thang đo một lần trong Project Settings. Bạn có thể đổi sau, nhưng các ước lượng hiện có không được ánh xạ lại: mỗi story giữ giá trị của nó, và một giá trị mà thang mới không có sẽ vẫn nằm trên story cho đến khi bạn ước lượng lại.

Có hai cách để di chuyển một story qua vòng đời:

  1. Nhấp nút hành động tại chỗ trên card — Start, Finish, Deliver, Accept, Reject. Văn bản nút phản ánh trạng thái hợp lệ tiếp theo cho loại của story. Một story bị từ chối hiển thị Restart.
  2. Gọi API — xem Hướng dẫn API, nơi cũng có thao tác chuyển đổi hàng loạt cho script.

Nút trên thẻ của một story lần lượt qua Start, Finish, Deliver và Accept

Kéo một card là một bước di chuyển giữa các bảng, và bảng mà nó rơi vào quyết định điều gì xảy ra với trạng thái của nó. Thả nó vào Current là đưa nó vào kế hoạch mà không bắt đầu nó — trạng thái được giữ nguyên. Thả nó vào Backlog hoặc Icebox sẽ đặt lại story về Unstarted, nên một story bạn đã bắt đầu sẽ mất phần tiến độ đó khi bạn kéo nó ngược trở lại. Các bước di chuyển được áp dụng ngay; những xác nhận bạn có thể gặp là cái khởi tạo iteration đầu tiên của một dự án và cái chuyển một story sang một epic khác.

Nhấp vào bất kỳ đâu trên một hàng story để mở rộng nó tại chỗ. Bảng chi tiết hiển thị:

  • Hàng — tiêu đề, có thể sửa.
  • Trường — ID, trạng thái kèm nút sang trạng thái tiếp theo, vòng lặp, owner (thêm/gỡ thành viên hoặc agent), loại story, độ ưu tiên, điểm, requestor, nhãn, Theo dõi story này.
  • Công việc — blocker, mô tả (Markdown), liên kết mã, task (nếu được bật), đánh giá, tệp đính kèm.
  • Bình luận / Hoạt động — thảo luận và lịch sử của story, trong hai tab.

Một story mở trên bảng: tiêu đề trong hàng, rồi các trường, công việc từ blocker đến tệp đính kèm, và các tab Bình luận và Hoạt động

Mở story trên trang riêng của nó (biểu tượng mở rộng) để dùng menu 3 chấm: Archive / Unarchive, Copy story (một liên kết vào clipboard), và Delete.

Nhấn Escape để đóng story được mở gần đây nhất (nó nhớ ngăn xếp — thu gọn từng cái một).

Tối đa 20.000 ký tự, được kết xuất Markdown. Sửa và xóa bình luận của chính bạn; audit log giữ lại lịch sử. @-nhắc đến các thành viên và phần tự động hoàn thành sẽ nhận diện họ. Mỗi bình luận nhận reaction bằng emoji và có permalink riêng.

Mô tả và bình luận được viết bằng Markdown. Trình soạn thảo có các tab ViếtXem trước, bên cạnh là thanh định dạng: in đậm, in nghiêng, gạch ngang, mã nội dòng, khối mã, liên kết, danh sách dấu đầu dòng, danh sách đánh số và trích dẫn.

Mô tả story đang được chỉnh sửa: thanh định dạng nằm bên phải các tab Viết và Xem trước, và một từ vừa được in đậm

  • Chọn văn bản rồi bấm một nút để định dạng. Khi không chọn gì, nút sẽ chèn cú pháp và đặt con trỏ vào bên trong. Bấm lần nữa để bỏ định dạng.
  • Cmd+B, Cmd+ICmd+K (Ctrl trên Windows và Linux) áp dụng in đậm, in nghiêng và liên kết. Liên kết mới sẽ chọn sẵn chỗ giữ url để bạn gõ địa chỉ.
  • Danh sách, trích dẫn và khối mã áp dụng cho mọi dòng được chọn.
  • Định dạng không lưu: Cmd/Ctrl+Enter lưu mô tả, Enter đăng hoặc lưu bình luận.
  • Thanh bị tắt ở tab Xem trước.

Kéo một tệp vào bảng chi tiết, hoặc dùng nút tải lên. Giới hạn tùy theo loại tệp — video 200 MB, PDF, Word và Excel 25 MB, hình ảnh, CSV và văn bản 10 MB; các loại khác bị từ chối. Video phát ngay tại chỗ.

Tải ảnh lên trong mục Tệp đính kèm và chèn vào phần mô tả đang mở

Từ trang Labels trong thanh bên: tạo nhãn với tên và màu, lưu trữ khi đã cũ (các nhãn được lưu trữ biến mất khỏi board nhưng vẫn có thể tìm kiếm được). Thêm nhãn theo từng story trong bảng chi tiết.

  • Blocker — Một ghi chú văn bản tự do “việc này bị chặn bởi X”. Đánh dấu đã giải quyết/chưa giải quyết. Lọc board theo has:blocker.
  • Liên kết (Link) — Bảy loại quan hệ: relates to, duplicates, blocks, is blocked by, pull request, branch, và other (mặc định cho mọi URL không được nhận diện). Dán một URL GitHub dạng /pull/ hoặc /tree/ và loại sẽ được tự động phát hiện. Liên kết có thể được sửa sau đó.
  • Đánh giá (Review) — Gán một người đánh giá (con người hoặc agent) kèm bình luận tùy chọn; người đánh giá đặt trạng thái (pending, approved, rejected).

Nếu được bật trong Project Settings, story sẽ có các tác vụ con — một danh sách kiểm tra (checklist) bên trong story. Đánh dấu hoàn thành khi bạn làm.

Một số trường trên bề mặt chi tiết story mang một biểu tượng [?] nhỏ bên cạnh nhãn của nó. Nhấp vào nó trong ứng dụng để xem cùng hướng dẫn được tóm tắt bên dưới. Người dịch xuất bản phần nội dung trong ứng dụng cùng với phần còn lại của giao diện; mục này là tham chiếu chuẩn ở dạng dài.

Các trường được liệt kê gần theo thứ tự xuất hiện trong bảng chi tiết; các tab của bảng là CommentsActivity.

Vị trí của story trong vòng đời: Unstarted → Started → Finished → Delivered → Accepted (hoặc Rejected).

Trạng thái nào được tính là hoàn thành là một thiết lập của dự án: Trạng thái hoàn tất cho vận tốc trong phần cài đặt dự án, đặt thành Finished, Delivered hoặc Accepted. Một story được tính vào vận tốc khi nó đạt tới trạng thái đã chọn.

Một story đã giao (Delivered) chờ product owner chấp nhận hoặc từ chối. Rejected là trạng thái cuối; một thao tác Restart riêng đưa story về lại Started, còn việc từ chối một story ở iteration đã qua sẽ tạo một bản sao ở đầu Backlog.

Iteration mà story được lập kế hoạch vào. Hàng này chỉ đọc: máy chủ tính nó từ vị trí của story trong Backlog và velocity của bạn, và một story trong Current theo định nghĩa là nằm trong iteration hiện tại.

Để thay đổi nó, hãy thay đổi thứ tự — kéo story lên hoặc xuống trong Backlog, hoặc vào Current. Đó là điều giữ cho dự báo velocity trung thực.

Người đang làm việc. Owner có thể là con người hoặc agent — cả hai đều hiển thị như những bên tham gia có tên trong audit log, quyền tác giả bình luận, và số liệu. Không có cách nào để ngụy trang một agent owner thành một con người.

Nhiều owner là biểu hiện hữu hình của lập trình theo cặp (pair programming) (hoặc cặp với agent). Thêm agent đã nhận story và con người đang đánh giá — cả hai cái tên xuất hiện trên card.

Owner không giống với Follower (một trường riêng trên card). Follower là những người quan tâm đến story nhưng không làm việc — thường là những người đăng ký nhận thông báo.

Có bốn loại story:

  • Feature — Giá trị mới mà người dùng có thể quan sát được. Theo mặc định là loại duy nhất mang điểm và được tính vào velocity.
  • Bug — Một lỗi. Mặc định không có điểm. Lỗi không kiếm được điểm velocity, điều này giữ cho chi phí làm lại hiển thị thay vì được tưởng thưởng.
  • Chore — Công việc cần thiết nhưng không có giá trị trực tiếp cho người dùng (tái cấu trúc, hạ tầng, thiết lập). Mặc định không có điểm.
  • Release — Một dấu mốc không điểm cho một cột mốc. Đi thẳng từ Unstarted sang Accepted, neo một mốc ngày cho dự báo.

Một dự án có thể bật Points for bugs and chores trong phần cài đặt; khi đó bug và chore nhận ước lượng và được tính vào velocity giống như feature.

Độ ưu tiên cho biết một story khẩn cấp đến mức nào. Các giá trị là Không có, P1 - Khẩn cấp, P2 - Cao, P3 - Trung bìnhP4 - Thấp; story mới bắt đầu ở Không có.

Đặt nó khi tạo story hoặc sau đó trong bảng chi tiết. Mọi giá trị khác Không có đều hiển thị dưới dạng một nhãn nhỏ trên thẻ story, ví dụ P1. Story loại release không có độ ưu tiên.

Tìm theo độ ưu tiên bằng priority:, ví dụ priority:p1. Khi nhập từ một tracker có trường ưu tiên riêng, như Jira hoặc Linear, độ ưu tiên của từng story được giữ lại.

Kích thước tương đối của story. Feature có điểm; bug, chore, và release giữ ở mức không — trừ khi dự án đã bật Points for bugs and chores.

Ước lượng là một cuộc trò chuyện về kích thước, không phải một lời hứa: điểm mô tả kích thước tương đối, không phải số giờ.

Ba thang đo đi kèm:

  • Fibonacci0, 1, 2, 3, 5, 8, 13. Thang đo XP kinh điển.
  • East Agile0, 1, 2, 3. Một thang đo chặt chẽ hơn. Một số 3 nghĩa là cả một iteration thời gian của một người.
  • 3-Point1, 2, 3 (Small / Medium / Large). Phân loại theo cỡ áo nghiêm ngặt.

Người yêu cầu story. Thường là một người — product owner, một bên liên quan, hoặc một agent hành động thay mặt cho ai đó.

Requester không phải là owner. Owner là bất kỳ ai đang làm việc; requester là bất kỳ ai quan tâm đến kết quả và sẽ (hoặc sẽ không) chấp nhận nó. Họ có thể là cùng một người, nhưng đó là hai vai trò riêng biệt. Ghi lại requester là điều cho bạn câu trả lời kiểm toán cho câu hỏi “ai đã yêu cầu việc này?” sáu tháng sau.

Một ngày trên story, dành cho các story Release. Board đặt release vào đúng chỗ mà ngày đó rơi vào, và một release có các story phụ thuộc không kịp hoàn thành đúng hạn sẽ bị gắn huy hiệu có rủi ro. Tìm kiếm nó bằng release:.

Các thẻ có màu. Story có thể mang nhiều thẻ. Được dùng cho phân loại xuyên suốt — mvp, tech-debt, security, một tên release cụ thể — và cho việc lọc board (label:mvp trong ô tìm kiếm).

Nhãn có phạm vi theo dự án. Quản lý chúng trên trang Labels trong thanh bên. Lưu trữ các nhãn cũ thay vì xóa; phần lưu trữ giữ cho lịch sử có thể tìm kiếm được trong khi dọn dẹp board.

Ghi chú văn bản tự do mô tả điều gì đang ngăn story này tiến triển. Đánh dấu đã giải quyết khi trở ngại được gỡ bỏ.

Hãy viết blocker dưới dạng văn bản tự do, hoặc dán liên kết tới story đang chặn story này. Liên kết story, dù là URL đầy đủ hay liên kết rút gọn, sẽ hiển thị thành một khối story gồm loại, mã tham chiếu, tiêu đề và trạng thái của story đó; nhấp vào để mở story. Liên kết tới một story bạn không có quyền mở sẽ giữ nguyên dạng văn bản thường.

Người kiểm tra công việc trước khi nó được chấp nhận — một thành viên hoặc một agent. Mỗi lượt đánh giá mang một trạng thái (pending, approved, rejected) và một bình luận tùy chọn. Tìm kiếm bằng reviewer:.

Checklist của story, nếu task được bật cho dự án. Mỗi task có một mô tả và một trạng thái hoàn thành. Các bản nhập có mang checklist (nội dung issue GitHub, Pivotal, Trello, Shortcut) sẽ đáp vào đây.

Hãy viết task dưới dạng văn bản tự do, hoặc dán liên kết tới một story. Liên kết story, dù là URL đầy đủ hay liên kết rút gọn, sẽ hiển thị thành một khối story gồm loại, mã tham chiếu, tiêu đề và trạng thái của story đó; nhấp vào để mở story. Liên kết tới một story bạn không có quyền mở sẽ giữ nguyên dạng văn bản thường.

Pull request, branch, và bất kỳ URL nào khác được gắn vào story, cùng các quan hệ giữa story với story (blocks, is blocked by, duplicates, relates to). Một URL PR hoặc branch của GitHub được tự động gán loại; mọi thứ khác là other cho đến khi bạn nói khác.

Các tệp trên story. Hình ảnh có ảnh thu nhỏ và lightbox; video phát ngay tại chỗ. Từ ô tệp đính kèm, bạn có thể chèn tệp vào mô tả hoặc một bình luận, hoặc sao chép Markdown của nó.

Story là gì và làm sao nhận ra nó đã xong. Markdown.

Tiêu chí chấp nhận thuộc về đây — lý tưởng nhất là theo dạng Given / When / Then để chúng ánh xạ trực tiếp sang các bài kiểm thử chấp nhận:

Given I am signed in as a member
When I click "Add a story" in Current
Then the story is created in state "unstarted"

INVEST là phép kiểm tra tỉnh táo về việc một story đã được định hình tốt hay chưa:

  • Independent (Độc lập) — có thể phát hành mà không cần các story khác.
  • Negotiable (Thương lượng được) — nắm bắt ý định, không phải một đặc tả đông cứng.
  • Valuable (Có giá trị) — đối với một người dùng hoặc bên liên quan.
  • Estimable (Ước lượng được) — đội ngũ có thể định cỡ nó.
  • Small (Nhỏ) — vừa vặn thoải mái trong một iteration.
  • Testable (Kiểm thử được) — có các tiêu chí chấp nhận có thể được thực thi.

Chọn nhiều story trên board bằng ô đánh dấu trên mỗi card — shift-click, hoặc Shift+Space khi một card đang được focus, sẽ chọn cả dải từ ô bạn tích gần nhất. Thanh thao tác hàng loạt xuất hiện sẽ cung cấp:

  • Copy stories — liên kết của các story đã chọn, vào clipboard
  • Archive stories
  • Delete stories — kèm một bước xác nhận
  • Deselect all

Đánh dấu một story trong Backlog, Shift-nhấp story thứ tư, và thanh thao tác hàng loạt hiện ra cho bốn story đã chọn

Các story đã chọn cũng được kéo cùng nhau: nhấc một cái lên và cả vùng chọn di chuyển theo.

Board là màn hình chính của mỗi dự án. Ba cột theo mặc định:

  • Current — Các story trong iteration đang hoạt động, dưới một tiêu đề iteration duy nhất. Card xuất hiện theo thứ tự trình tự thời gian của iteration với trạng thái hiển thị trên từng card; cột không được cắt theo trạng thái — điều đó phá vỡ trình tự thời gian của iteration mà đội ngũ dùng để lập kế hoạch. Các iteration đã đóng nằm trong cột Done; các iteration sắp tới được dự báo từ Backlog chỉ hiện dưới Current khi công tắc Show Backlog stories của nó được bật.
  • Backlog — Hàng đợi được sắp xếp nghiêm ngặt. Hệ thống tự động nhóm các iteration sắp tới dựa trên velocity. Product owner sở hữu thứ tự từ trên xuống dưới.
  • Icebox — Các ý tưởng không có mốc ngày. Không sắp xếp, không ước lượng.

Bảng có thể cấu hình — các ô đánh dấu ở thanh bên

Phần tiêu đề “Bảng có thể cấu hình — các ô đánh dấu ở thanh bên”

Mục Board của thanh bên liệt kê mỗi cột preset với một ô đánh dấu: tích vào một ô để hiển thị cột đó, bỏ tích để ẩn. Các công tắc được giữ lại theo từng dự án trên từng người dùng (chúng được lưu phía máy chủ qua endpoint preferences của dự án, nên chúng theo bạn qua các trình duyệt). Các preset là:

Đánh dấu Blocked trong danh sách Board ở thanh bên sẽ mở cột Blocked chứa story bị chặn

  • Current Iteration (bật theo mặc định)
  • Backlog (bật theo mặc định)
  • Icebox (bật theo mặc định)
  • Done — Các story đã được chấp nhận, nhóm theo iteration đã đóng.
  • My Work — Các story mà bạn là owner.
  • Blocked — Các story có blocker chưa giải quyết.
  • Epics — Tổng hợp ở cấp epic.
  • Archived — Các story bạn đã lưu trữ, bị ẩn ở mọi nơi khác.
  • Chat — Một bản xem trước tĩnh của cột chat dự án. Nó hiển thị các tin nhắn giữ chỗ và không gửi gì cả.

Mỗi cột cũng có một điều khiển sắp xếp — thứ tự board, theo trạng thái, mới nhất, hoặc cũ nhất. Bất kỳ cách sắp xếp nào khác thứ tự board đều tắt kéo-thả cho cột đó.

Kéo cạnh giữa hai cột để thay đổi độ rộng của chúng. Trình duyệt này ghi nhớ độ rộng cho từng dự án, nên chúng vẫn giữ nguyên sau khi tải lại trang. Nhấp đúp vào cạnh của một cột để trả nó về phần chia đều, hoặc nhấp vào biểu tượng đặt lại ở đầu bên phải hàng tìm kiếm của bảng (chú thích của nó là Đặt lại độ rộng cột) để đặt lại mọi cột.

Ô tìm kiếm ở góc trên bên trái của board chạy một phép tìm kiếm mạnh mẽ trên toàn bộ dự án (không chỉ các story đang có trên màn hình). Gõ một truy vấn và nhấn Enter để mở một cột kết quả trực tiếp xếp hạng các kết quả khớp; tinh chỉnh truy vấn ngay trong cột, hoặc đóng nó khi bạn xong việc. Các cột kết quả được giữ lại qua các lần tải lại trang như bất kỳ cột nào khác.

Gõ truy vấn vào ô tìm kiếm của bảng và nhấn Enter sẽ mở một cột kết quả

Nhấp vào một nhãn trên thẻ story, hoặc trên trang Labels, cũng mở một cột tìm kiếm cho nhãn đó.

Ngôn ngữ truy vấn được mô phỏng theo cách tìm kiếm issue của GitHub — kết hợp văn bản tự do với các qualifier:

  • Văn bản tự do tìm trong tiêu đề, mã tham chiếu, và mô tả — payment crash, hoặc "một cụm từ chính xác".
  • Facet: type:bug,chore, state:started, label:mvp, epic:Checkout, priority:p1, points:1..5, iteration:42.
  • Người (thành viên agent, kể cả mention:): owner:@me, requester:claire, follower:tomas, reviewer:, commenter:, mention:. Mỗi qualifier nhận một giá trị duy nhất.
  • Ngày (một ngày hoặc một khoảng): created:2026-05-01..2026-06-01, updated:>2026-06-01, started:, completed:, release:.
  • Cờ: has:blocker, is:unestimated, is:backlog, is:icebox, is:blocked.
  • Phủ định bất cứ thứ gì bằng dấu - ở đầu: -label:wontfix.
  • Sắp xếp với sort:created, sort:updated, hoặc sort:state; mặc định là theo mức độ liên quan.

Cùng một truy vấn hoạt động với API, nên một agent có thể tìm kiếm đúng như cách bạn làm — xem Hướng dẫn API để có tham chiếu đầy đủ.

Thanh trên cùng hiển thị số iteration hiện tại và khoảng ngày của nó. Nó chỉ mang tính thông tin, không phải một liên kết. Velocity hiển thị trên tiêu đề cột Current là một điều khiển tại chỗ mà manager có thể sửa: nhấp vào nó để ghi đè velocity của iteration này mà không thay đổi chiến lược của dự án.

Hệ thống tạo iteration tự động dựa trên độ dài và ngày bắt đầu của bạn. Bạn không cần phải “mở” hay “đóng” chúng. Iteration đầu tiên được tạo ngay khi một story lần đầu tiên vào Current, sau một bước xác nhận hiển thị các ngày mà nó sẽ nhận; một dự án chỉ có Backlog thì chưa có iteration nào.

Để lập kế hoạch trước, hãy sắp xếp Backlog — nó dự báo các iteration sắp tới thành các nhóm dựa trên velocity của bạn, ba hoặc bốn iteration phía trước, và đánh dấu một nhóm màu đỏ nếu nó vượt quá velocity của bạn. Các nhóm là một dự báo, không phải các iteration được lưu trữ; chỉ iteration hiện tại được lấp đầy.

Để nhìn lại, mở cột Done: mỗi iteration đã qua là một nhóm có thể thu gọn.

Lượng công việc mà một iteration hiện tại chứa phụ thuộc vào cài đặt auto-plan iterations (Project Settings → tab Project, dưới Velocity & Iterations, bật theo mặc định).

Bật auto-plan (mặc định) — để velocity định cỡ iteration.

Iteration hiện tại của bạn được lấp đầy đến velocity dự báo và không hơn. Mục đích của chế độ này là bạn không bao giờ phải tranh cãi về phạm vi: khi bạn kéo một story mới vào một iteration đã đầy, phần mềm tự động dọn chỗ cho nó bằng cách chuyển story có độ ưu tiên thấp nhất (story ở cuối cột Current) lên đầu Backlog của bạn. Story mới đi vào; story bị đẩy ra giờ đứng đầu hàng để quay trở lại.

Vì story bị đẩy ra nằm ở đầu Backlog, nó tự quay trở lại iteration ngay khi bạn giải phóng đủ điểm — hoàn thành một việc, gỡ một story, hoặc ước lượng lại một story nhỏ hơn, và nó trượt trở vào. Bạn có thể tiếp tục xáo trộn độ ưu tiên cả ngày mà iteration vẫn trung thực: nó chỉ bao giờ cam kết số điểm mà lịch sử của bạn nói rằng bạn có thể hoàn thành. Nếu đội của bạn giao 12 điểm mỗi iteration, bạn không thể âm thầm cam kết 20 — phần dư rơi xuống Backlog, nơi bạn có thể thấy nó.

Điều này tự động hóa cuộc thương lượng mà lẽ ra bạn phải có với khách hàng: “vâng, chúng tôi có thể thêm việc này — nhưng khi đó việc này có độ ưu tiên thấp hơn sẽ bị chuyển ra để giữ iteration thực tế.”

Khi bật tự động lập kế hoạch, kéo một story từ Backlog vào Current đã đầy sẽ đẩy story thấp nhất lên đầu Backlog, nên Current vẫn trong vận tốc

Tắt auto-plan — cam kết bao nhiêu tùy ý (kiểu Scrum).

Tắt auto-plan khi đội của bạn chủ ý cam kết một phạm vi cố định cho iteration bất kể velocity trong quá khứ. Giờ bạn có thể đưa bao nhiêu điểm story vào iteration tùy thích — không có gì bị tự động chuyển ra. Bộ đếm điểm của iteration cho bạn biết bạn đang ở đâu so với velocity:

  • Đỏ — bạn đã lập kế hoạch nhiều điểm hơn velocity của mình. Một cảnh báo rằng bạn đã cam kết nhiều hơn mức lịch sử cho phép.
  • Xanh lá — bạn đã bắt đầu, hoàn thành, hoặc giao nhiều điểm hơn velocity của mình. Đội đang vượt nhịp lịch sử của mình, nên việc cam kết quá mức là loại tốt. Xanh lá thắng đỏ: một khi bạn đang giao vượt velocity, bộ đếm có màu xanh lá dù bạn cũng đã lập kế hoạch vượt mức đó.
  • Trung tính — số điểm đã lập kế hoạch nằm trong velocity của bạn.

Khi tắt tự động lập kế hoạch, cùng thao tác kéo đó không đưa story nào ra khỏi Current, và bộ đếm điểm dự kiến chuyển đỏ khi vượt vận tốc

Bạn nên dùng chế độ nào? Bật auto-plan là mặc định an toàn hơn cho công việc với khách hàng — nó giữ các cam kết dựa trên năng suất thực tế. Tắt auto-plan phù hợp với một đội cam kết một mục tiêu sprint ngay từ đầu và muốn tự do lấp đầy quá mức hoặc dưới mức một cách có chủ đích.

Release là một loại story, không phải một đối tượng riêng biệt. Tạo một release theo cùng cách bạn tạo bất kỳ story nào: chọn Release làm loại, đặt cho nó một tên (ví dụ v2.4), và đặt cho nó một ngày phát hành. Board đặt nó vào đúng chỗ mà ngày đó rơi vào.

Release bỏ qua các trạng thái Started/Finished/Delivered/Rejected — chúng đi từ Unstarted sang Accepted trong một bước. Chấp nhận một release khi bạn phát hành. Release xuất hiện trong phân bố loại story của Metrics như bất kỳ loại nào khác.

Thêm một bản phát hành từ Backlog: chọn loại Release, đặt tên và ngày; bảng đặt thẻ vào đúng vị trí của ngày đó, chỉ với một bước Chấp nhận

Trang Metrics (trên cùng của dự án) có ba tab:

  • General — Xu hướng velocity, burndown của iteration hiện tại, phân bố loại story theo từng iteration, các thẻ Committed / Completed / Carried-over, và danh sách các story bị chuyển tiếp từ các iteration trước (kèm dấu hiệu tuổi cho các story bị chuyển tiếp hơn một lần).
  • Contributors — Điểm và story theo từng thành viên hoặc agent, trong N iteration gần nhất hoặc tất cả, với số lượng delivered / accepted / rejected và biểu đồ cột hoặc đường.
  • Epics — Chọn một epic để xem burnup (phạm vi so với đã chấp nhận), năng suất theo từng iteration, một tín hiệu sức khỏe on-track / at-risk / stalled, các blocker đang mở, và dự báo iteration mà nó hoàn thành.

Toàn bộ thẻ Chung của Số liệu: các thẻ Đã cam kết, Hoàn thành và Chuyển tiếp, xu hướng vận tốc, biểu đồ burndown của vòng lặp hiện tại, tỉ lệ các loại story và các story chuyển tiếp từ vòng lặp trước

Ai đã làm gì, khi nào — có thể lọc theo tác nhân, loại, và ngày — là trang Project History, trong thanh bên.

Đây là phần của sản phẩm khiến nó trở nên khác biệt. Một agent là một đồng đội có tên — nhưng đó là một AI.

Mở Project Settings → Agents. Manager luôn có thể phát hành key; chính sách vai trò người tạo (creator-roles policy) của tab cho phép manager mở quyền phát hành cho cả member.

  1. Create new agent key.
  2. Đặt cho agent một tên (nó sẽ hiển thị dưới tên đó trong audit log, quyền tác giả bình luận, và avatar owner).
  3. Chọn một vai trò — viewer (chỉ đọc), member (có thể ghi), hoặc manager. Vai trò của một agent không bao giờ được vượt quá vai trò của bạn, nên chỉ một manager con người mới phát hành được agent có vai trò manager.
  4. Key được hiển thị một lần — sao chép nó; chúng tôi không lưu trữ nó để có thể truy xuất lại. Tiền tố là ea_agent_….

Biểu mẫu tạo khóa trong tab Agent với tên và vai trò member đã chọn, bên dưới hướng dẫn thiết lập

Cùng tab đó chứa các Response hints theo từng key — hướng dẫn ngắn mà agent đọc lại qua API — và gói onboarding: các prompt và tệp cấu hình soạn sẵn cho Anthropic, OpenAI, Google, và các client chung.

Hộp thoại Agent setup với các tab Anthropic, OpenAI, Google và Generic, một prompt dựng sẵn và các tệp để tải xuống

Một agent với vai trò member có thể làm bất cứ điều gì một thành viên con người làm được:

  • Tạo, sửa, chuyển đổi, xóa story
  • Bình luận, đính kèm tệp, thêm nhãn, đặt owner
  • Tự chọn mình làm owner của một story
  • Đọc hoạt động, theo dõi sự kiện

Audit log ghi lại mọi thao tác ghi với danh tính của agent. Không có cách nào để khiến một hành động của agent trông giống như một hành động của con người.

Agent xuất hiện trong danh sách Members của Project Settings cùng với con người, kèm vai trò và dấu thời gian sử dụng gần nhất. Từ đó bạn có thể xoay vòng một key (key cũ ngừng hoạt động, agent giữ nguyên danh tính và lịch sử) hoặc thu hồi nó; agent mất quyền truy cập ngay lập tức. Hoạt động trong quá khứ của agent vẫn ở lại trong audit log mãi mãi.

Danh sách trong tab Member với hai agent bên cạnh người dùng, mỗi agent có Agent setup, Edit, Rotate key và Revoke

Xem Hướng dẫn API → Agent key để có ví dụ mã.

Nếu bạn đến từ một công cụ khác, chúng tôi có các importer cho mười một nguồn. Mười nguồn nhận một tệp đã xuất; GitHub kết nối trực tiếp đến repository.

Tải lên một tệp xuất (từ Project Settings → Import / Export):

  • Pivotal Tracker (CSV)
  • Jira (CSV)
  • Asana (CSV)
  • GitLab (CSV)
  • Shortcut (CSV)
  • Trello (JSON)
  • Linear (CSV)
  • Plane (CSV)
  • Plane (JSON)
  • East Agile Tracker (CSV) — định dạng xuất của chính chúng tôi, nên một dự án được xuất từ một Tracker sẽ nhập lại sạch sẽ vào một Tracker khác.

Tab Import / Export với nguồn là Jira và tệp xuất đã chọn, sẵn sàng để xem trước hoặc nhập

Hoặc kết nối một repository:

  • GitHub — nhập chủ sở hữu và repo; issue được nhập thành story. Mọi lần nhập đều xác thực: việc lấy dữ liệu chạy trên API GraphQL của GitHub, vốn từ chối yêu cầu không xác thực. Để trống token truy cập cá nhân thì máy chủ sẽ thay bằng token dùng chung của chính nó, token này chỉ đọc được repo công khai và ngân sách của nó bị trừ chung cho mọi người trên bản triển khai; repo riêng tư, hoặc một bản triển khai không có token dùng chung, đòi hỏi token của bạn. Pull request, mốc (thành epic) và release là các ô chọn opt-in. Xem Tạo dự án từ một repo GitHub.

Những gì được ánh xạ. Story, nhãn, và trạng thái được ánh xạ cho mọi nguồn. Owner được ánh xạ cho định dạng East Agile Tracker (theo email) và cho GitHub (người được giao trở thành owner, tác giả trở thành requester); mọi nguồn khác bỏ chúng đi. Bình luận được ánh xạ cho Jira, Plane, Pivotal, Trello, GitHub, và East Agile Tracker. Một số nguồn cũng mang theo iteration. (Ma trận đầy đủ theo từng trường, từng nguồn là hợp đồng hành vi trong tài liệu dành cho nhà phát triển.)

Không có lời nhắc tạo-mới-hoặc-bỏ-qua tương tác. Nhập lại cùng một tệp là an toàn: một hàng đã được nhập trước đó (đối chiếu theo id nguồn) sẽ bị bỏ qua âm thầm, nên một lần chạy lại sẽ bổ sung thêm chứ không nhân đôi. Nếu bạn muốn thấy một lần nhập sẽ làm gì trước khi thực hiện, một bản xem trước dry-run sẽ phân tích toàn bộ tệp và báo cáo cùng các bộ đếm mà một lần nhập thật sẽ cho — đã nhập, đã bỏ qua, và bất kỳ người nào không khớp — nhưng không ghi gì.

Báo cáo xem trước: sẽ nhập 8 story và 3 nhãn, không bỏ qua dòng nào, và một người không khớp được

Hai giới hạn: một bản tải lên bị giới hạn ở 10 MiB, và một lần nhập ở 5.000 story. Hãy tách một cuộc di chuyển lớn hơn thành nhiều lô.

Từ Project Settings → Import / Export, xuất toàn bộ dự án. Việc xuất chỉ dành cho manager.

Các định dạng trao đổi — có thể nhập lại vào một công cụ khác (hoặc trở lại vào một dự án Tracker):

  • East Agile Tracker (CSV) — đầy đủ độ trung thực. Mọi thứ đều khứ hồi: tiêu đề, mô tả, loại, trạng thái, điểm, nhãn, owner, requester, follower, iteration, bình luận, task, và blocker. Dùng cái này để di chuyển cả một dự án giữa các Tracker.
  • Jira, Pivotal Tracker, Shortcut, Asana, GitLab, Linear (CSV), Trello (JSON), và Plane (CSV / JSON) — mỗi cái nói theo ngôn ngữ riêng của công cụ đích, nên nó có mất mát: các trường mà định dạng đích không có cột để chứa sẽ bị bỏ đi. Trình chọn định dạng cho biết mỗi cái mất những gì (ví dụ, một số bỏ bình luận; các định dạng trao đổi bao gồm cả story đã lưu trữ).

Mục Export với định dạng Jira CSV đã chọn và ghi chú về các trường mà định dạng này bỏ qua

Các định dạng tài liệu — một báo cáo đã được định dạng, sẵn sàng để chia sẻ thay vì một tệp để nhập lại:

  • PDFWord — một trang bìa, một bản tóm tắt, và các bảng story theo từng iteration. Bạn có thể giới hạn báo cáo trong một khoảng ngày và chọn có bao gồm story Icebox và Backlog hay không.

Tệp đính kèm — tải xuống mọi tệp đính kèm dưới dạng một zip có thể duyệt, tệp giữ tên gốc, được tổ chức theo story/epic, với một manifest JSON + CSV.

Để viết script, các endpoint là GET /projects/{id}/export/formats (liệt kê các định dạng có sẵn), GET /projects/{id}/export/{format} (tải xuống một định dạng), và GET /projects/{id}/export/attachments (bản zip).

Bốn chủ đề đi kèm. Chuyển đổi trong chân thanh bên (hoặc trong Account Settings → Theme):

  • Labs — Bảng màu Pivotal Tracker, được gìn giữ trìu mến. Khung tối, thanh trên cùng màu xanh, các khoảng cách cột màu pastel. Nguyên bản, và là mặc định.
  • Agile — Bảng màu trang đích tiếp thị. Trắng ấm, điểm nhấn thương hiệu xanh đậm (#1f6f9f), biểu tượng loại story bão hòa. Lựa chọn dẫn đầu trong bộ chuyển đổi.
  • Dark — Tối trung tính thuần túy.
  • Light — Sáng trung tính thuần túy. Mực trên giấy.

Đổi giao diện ở chân thanh bên: Agile, Dark và Light, rồi quay lại Labs

Chủ đề của bạn được giữ lại qua các phiên.

Giao diện được dịch sang 27 ngôn ngữ: Anh, Pháp, Đức, Tây Ban Nha, Nhật, Trung, Hàn, Bồ Đào Nha, Ý, Hà Lan, Thụy Điển, Đan Mạch, Séc, Phần Lan, Ba Lan, Ukraina, Nga, Hindi, Việt, Ả Rập, Do Thái, Sinhala, Tamil, Indonesia, Mã Lai, Filipino, Thái. Chuyển đổi từ chân thanh bên — mọi màn hình được bản địa hóa ngay lập tức.

Một vài phím tắt đáng giá:

  • Escape — Thu gọn story được mở gần đây nhất, hoặc hủy một thao tác sửa tại chỗ.
  • Enter trong một ô nhập tại chỗ — Gửi (sẽ không thu gọn hàng).
  • Cmd/Ctrl+Enter — Lưu trình soạn story hoặc một mô tả.
  • Cmd/Ctrl+B, I, K trong mô tả hoặc bình luận — In đậm, in nghiêng, liên kết (Cmd trên macOS, Ctrl ở nơi khác).
  • Shift-click hoặc Shift+Space trên ô đánh dấu của một card — Chọn dải story.
  • Space trên một card đang được focus — Nhấc nó lên; di chuyển bằng các phím mũi tên; Space lần nữa để thả, Escape để hủy. Phiên bản bàn phím của kéo-thả.

East Agile Tracker là phần mềm mã nguồn đóng — không có mã nguồn nào được phân phối. Tự lưu trữ nghĩa là tải xuống một tệp nhị phân đã biên dịch sẵn cho hệ điều hành của bạn (Linux, macOS, hoặc Windows) và chạy nó trên hạ tầng của riêng bạn, với Postgres đi kèm qua một thiết lập Docker chỉ bằng một lệnh. Đây không phải một bản phát hành kiểu “clone repo rồi tự build”.

Một bản cài đặt tự lưu trữ chạy ở chế độ một tổ chức: mọi người thuộc về một tổ chức khởi tạo duy nhất, và các tính năng quản lý tổ chức, lời mời tổ chức, chuyển quyền sở hữu, và xuất tổ chức của dịch vụ được lưu trữ không được gắn vào. Lời mời dự án, nhập, xuất, sao lưu, agent, và mọi thứ khác trên board hoạt động như trên dịch vụ được lưu trữ.

Liên hệ East Agile để có quyền truy cập tệp nhị phân tự lưu trữ và hướng dẫn thiết lập.