Sự bực dọc thường là mảnh đất màu mỡ cho sự đổi mới. Sau nhiều năm vật lộn với các công cụ quản lý dự án không bao giờ thực sự đáp ứng được nhu cầu, tôi đã đạt đến giới hạn chịu đựng. Các công cụ này hoặc quá phức tạp, quá cứng nhắc, hoặc thiếu các tính năng quan trọng mà đội nhóm của tôi cần. Vì vậy, tôi đã làm điều mà bất kỳ nhà phát triển bực bội nào cũng sẽ làm – tôi đã tự xây dựng công cụ của riêng mình.
Mục lục
Sự Đơn Giản Của Markdown Trong Thế Giới WYSIWYG Phức Tạp
Hầu hết các công cụ quản lý dự án hiện nay đều ép buộc người dùng vào các trình soạn thảo độc quyền của họ với hàng tá tùy chọn định dạng hoa mỹ. Tuy nhiên, điều này thường tạo ra nhiều vấn đề hơn là giải quyết. Tất cả những gì tôi cần chỉ là chỉnh sửa các tệp Markdown – một định dạng văn bản đơn giản, linh hoạt, thân thiện với hệ thống kiểm soát phiên bản và hầu như ai trong giới kỹ thuật cũng quen thuộc.
Tôi luôn tự hỏi, tại sao việc mô tả một tác vụ (story) lại phải phức tạp hơn cả việc viết code? Các trình soạn thảo WYSIWYG (What You See Is What You Get) với đủ loại nút bấm, thanh công cụ, thường làm xao nhãng khỏi nội dung chính và gây khó khăn khi sao chép hoặc di chuyển dữ liệu.
Giải pháp của tôi là một hệ thống quản lý dự án mà mọi thứ đều xoay quanh Markdown. Từ các câu chuyện người dùng (user stories), tài liệu, cho đến các bình luận – tất cả chỉ là các tệp Markdown. Bạn có thể chỉnh sửa chúng bằng bất kỳ trình soạn thảo văn bản nào hoặc thông qua một giao diện sạch sẽ, không làm vướng bận công việc của bạn.
Ví dụ về một user story đơn giản bằng Markdown:
# Tôi Là Người Dùng, Tôi Muốn Xem Danh Sách Sản Phẩm
**Với vai trò:** Người dùng
**Tôi muốn:** Xem danh sách các sản phẩm trên trang chủ
**Để:** Dễ dàng tìm kiếm sản phẩm mình quan tâm
## Tiêu chí chấp nhận:
- Trang chủ hiển thị danh sách sản phẩm.
- Mỗi sản phẩm bao gồm tên, hình ảnh và giá.
- Có thể cuộn để xem thêm sản phẩm.
Vượt Qua Ách Thống Trị Của Story Points
Sự ám ảnh của ngành công nghiệp phần mềm đối với Story Points như là thước đo ước lượng duy nhất luôn khiến tôi cảm thấy bị giới hạn. Công việc phát triển có nhiều khía cạnh, vậy tại sao ước lượng của chúng ta không phản ánh điều đó?
Thay vì chỉ dùng một con số (Story Points), tôi đã triển khai một hệ thống trọng số tương đối dựa trên bốn yếu tố chính:
- Value (Giá trị): Lợi ích mà tác vụ này mang lại cho người dùng/doanh nghiệp là gì? (Đánh giá mức độ quan trọng, tác động tích cực)
- Penalty (Chi phí trì hoãn): Chi phí hoặc rủi ro khi không thực hiện công việc này là gì? (Đánh giá mức độ cấp bách, hậu quả tiêu cực khi bỏ qua)
- Effort (Nỗ lực): Cần bao nhiêu công sức để hoàn thành tác vụ này? (Đánh giá độ khó, thời gian, nguồn lực)
- Risk (Rủi ro): Mức độ không chắc chắn hoặc phức tạp trong quá trình triển khai là bao nhiêu? (Đánh giá các yếu tố kỹ thuật, phụ thuộc, không rõ ràng)
Cách tiếp cận này mang lại cho đội nhóm một cái nhìn sắc thái hơn để ưu tiên công việc và làm rõ các sự đánh đổi thay vì che giấu chúng.
Tài Liệu Là Công Dân Hạng Nhất
Trong hầu hết các công cụ, các bản ghi quyết định kiến trúc (Architecture Decision Records – ADRs) và các bài học sau sự cố (Post-Mortems) thường bị coi là thứ yếu – nếu chúng tồn tại. Chúng thường bị chôn vùi trong các wiki hoặc ổ đĩa chia sẻ, tách biệt hoàn toàn với công việc mà chúng liên quan.
Tôi đã xây dựng một hệ thống nơi ADRs và Post-Mortems cũng quan trọng như user stories. Chúng được quản lý phiên bản (versioned), liên kết chặt chẽ với các hạng mục công việc liên quan và tuân theo cùng một quy trình làm việc. Điều này tạo ra một cơ sở tri thức kết nối, tiến hóa cùng với dự án của bạn, thay vì tồn tại riêng lẻ.
Việc có một kho lưu trữ tập trung và có cấu trúc cho các quyết định quan trọng giúp đội nhóm dễ dàng truy vết lý do đằng sau các thiết kế, hiểu rõ bối cảnh khi xem lại code cũ, và học hỏi từ các sai lầm đã xảy ra.
Đóng Vòng Lặp Phản Hồi Từ Hệ Thống Production
Một trong những điều khiến tôi bực bội nhất là thiếu phản hồi từ các hệ thống đang chạy thật (production). Chúng tôi triển khai các tính năng và sau đó… im lặng. Công cụ quản lý dự án hoàn toàn không biết điều gì đã xảy ra tiếp theo.
Giải pháp của tôi hướng tới việc tích hợp dữ liệu triển khai và các chỉ số production trực tiếp vào quy trình làm việc. Khi một user story được triển khai, chúng tôi tự động theo dõi các chỉ số DORA quan trọng:
- Deployment Frequency (Tần suất triển khai): Đội nhóm có thể đưa mã nguồn vào môi trường production thường xuyên đến mức nào?
- Lead Time for Changes (Thời gian trung bình cho một thay đổi): Mất bao lâu để một thay đổi từ lúc commit code đến khi chạy trên production?
- Mean Time to Restore Service (MTTR – Thời gian trung bình khôi phục dịch vụ): Mất bao lâu để khôi phục dịch vụ sau một sự cố hoặc lỗi?
- Change Failure Rate (Tỷ lệ thay đổi thất bại): Tỷ lệ phần trăm các thay đổi triển khai vào production dẫn đến lỗi hoặc sự cố cần khắc phục ngay lập tức?
Các chỉ số DORA này cung cấp phản hồi tức thời về hiệu quả của các phương pháp phát triển của chúng tôi, tạo ra một chu kỳ phản hồi liên tục để cải tiến.
Kanban Cần Có Các Chỉ Số Đo Lường Thực Sự
Hầu hết các triển khai Kanban hiện nay chỉ đơn thuần là các bảng đẹp với các cột. Chúng thiếu các chỉ số đo lường làm cho Kanban trở nên mạnh mẽ: Cycle Time (Thời gian chu kỳ), Throughput (Thông lượng) và Work in Progress limits (Giới hạn công việc đang tiến hành).
Tôi đã tích hợp các chỉ số Kanban vào cốt lõi của hệ thống. Công cụ tự động theo dõi cách công việc di chuyển qua các giai đoạn của quy trình và làm nổi bật các điểm nghẽn. Bảng Kanban không chỉ là một công cụ trực quan hóa – nó là một công cụ thu thập dữ liệu giúp các đội nhóm liên tục cải tiến quy trình làm việc của mình.
Việc đo lường Cycle Time giúp chúng tôi hiểu mất bao lâu để hoàn thành một hạng mục công việc từ đầu đến cuối. Throughput cho biết số lượng công việc được hoàn thành trong một khoảng thời gian nhất định. Và WIP limits giúp đảm bảo đội nhóm không bị quá tải và tập trung vào việc hoàn thành công việc đang làm.
Sức Mạnh Của Cửa Sổ Ngữ Cảnh Lớn (Large Context Windows)
Việc xây dựng hệ thống này trở nên khả thi hơn rất nhiều nhờ sự ra đời của các mô hình AI với cửa sổ ngữ cảnh lớn. Tôi có thể đưa vào các tệp CSV, bảng tính Excel, và thậm chí toàn bộ codebase để tạo ra tài liệu toàn diện, user stories, và cả kế hoạch triển khai.
Điều này giúp tăng tốc đáng kể quá trình phát triển và đảm bảo tính nhất quán trên toàn hệ thống. AI có thể hiểu các mối quan hệ giữa các thành phần khác nhau và giúp tạo ra tài liệu mạch lạc phản ánh các kết nối đó.
Với dữ liệu được cấu trúc và một ứng dụng thân thiện với việc sử dụng các công cụ bên ngoài, đây có thể là điểm khởi đầu cho rất nhiều sự trợ giúp từ AI. Tuy nhiên, tôi muốn đảm bảo nền tảng vững chắc trước khi tích hợp sâu hơn các API agentic của bên thứ ba.
Công Cụ Cá Nhân Cho Quy Trình Làm Việc Cá Nhân
Điều khiến dự án này trở nên đặc biệt là tôi xây dựng nó chủ yếu cho bản thân mình. Tôi không cố gắng làm hài lòng mọi người dùng hay đáp ứng các yêu cầu phức tạp của doanh nghiệp lớn – tôi đang giải quyết các vấn đề của chính tôi theo đúng cách mà tôi muốn. Sự tự do này cho phép tôi thử nghiệm các cách tiếp cận mà các công cụ thương mại sẽ không bao giờ xem xét.
Những gì bắt đầu chỉ là một dự án phụ được thúc đẩy bởi sự bực bội có tiềm năng trở thành lợi thế cạnh tranh cá nhân của tôi. Tôi di chuyển nhanh hơn, đưa ra quyết định tốt hơn và có một lịch sử hoàn chỉnh về lý do tại sao tôi xây dựng những gì mình đã xây dựng – tất cả trong khi tạo ra một môi trường nơi các agent AI có thể cung cấp sự hỗ trợ ngày càng giá trị.
Đôi khi giải pháp tốt nhất không phải là tìm kiếm công cụ hoàn hảo – mà là xây dựng chính xác những gì bạn cần. Và đôi khi, một chút bực bội là tất cả động lực cần thiết.
Vì Quá Bức Bối, Tôi Đã Tự Xây Dựng Công Cụ Của Riêng Mình