Team
Quá trình xây dựng sản phẩm thường khiến nhiều suy nghĩ trở nên vô hình. Khi phạm vi và tác động trong công việc ngày càng mở rộng, chúng tôi đã tích luỹ được nhiều bài học đáng để chia sẻ từ kỹ thuật, sản phẩm, cho đến cách tổ chức và vận hành đội ngũ.
Bài viết ra đời để công khai một phần những suy nghĩ đó. Theo thời gian, chúng tôi sẽ chia sẻ về cách xây dựng hệ thống, cách đưa ra quyết định và cách cân bằng giữa quy mô, chất lượng và tốc độ. Chúng tôi hy vọng bài viết này sẽ giúp người đọc hiểu rõ hơn cách chúng tôi vận hành, đồng thời phản ánh văn hóa kỹ thuật mà chúng tôi thực sự tự hào.
Hiện tôi đang giữ vai trò Giám đốc Sản phẩm và Kỹ thuật tại Axon. Tuy nhiên, trong công việc hằng ngày, vai trò của tôi vẫn là MTS (Member of Technical Staff), giống như rất nhiều thành viên khác trong đội.
Phần lớn thời gian công việc của tôi không khác mấy so với mọi người: viết code, thiết kế và tham gia thảo luận kỹ thuật. Điều này cũng áp dụng cho các lãnh đạo khác trong khối Sản phẩm và Kỹ thuật tại Axon.
Chúng tôi tin rằng những người đặt ra định hướng cần phải luôn bám sát công việc thực tế. Hiểu sâu chi tiết, cách hệ thống vận hành, những điểm cần cân nhắc hoặc những phức tạp tiềm ẩn. Đó là nền tảng để đưa ra những quyết định dài hạn đúng đắn.
Tại Axon, "là một builder" không phải là một giai đoạn, mà còn là một trạng thái làm việc và tư duy mà chúng tôi có chủ đích duy trì lâu dài.
Tư duy này giúp chúng tôi định hình cách giao tiếp nội bộ. Chúng tôi không phụ thuộc nhiều vào các báo cáo trình bày đẹp mắt hay những bản cập nhật mang tính hình thức. Thay vào đó, chúng tôi giao tiếp thông qua công việc đang vận hành: code, dashboards, thiết kế và hệ thống. Khi giao tiếp được gắn chặt với những công việc đang vận hành, thông tin sẽ rõ ràng và ít bị sai lệch hơn.
Triết lý của chúng tôi nói thì đơn giản, nhưng để thực thi thì không hề dễ.
Chúng tôi cố gắng đạt được đồng thời ba mục tiêu:
Đối với chúng tôi, các mục tiêu này không hề mâu thuẫn với nhau. Nếu một trong số đó liên tục bị hy sinh cho mục tiêu khác, vậy thì vấn đề nằm ở động lực khuyến khích, cấu trúc tổ chức, hoặc tư duy kỹ thuật.
Chúng tôi chịu trách nhiệm vận hành những sản phẩm ở quy mô rất lớn. Tuy nhiên, đội ngũ của chúng tôi lại nhỏ hơn nhiều so với những gì người ta thường kỳ vọng ở các công ty tương tự.
Điều này không phải là ngẫu nhiên.
Chúng tôi vận hành như một đội ngũ đa chức năng với bộ kỹ năng tương đối đồng đều. Chúng tôi tránh việc chia vai trò quá chi tiết hoặc đặt ranh giới sở hữu cứng nhắc. Thay vào đó, chúng tôi trao cho mọi người sự linh hoạt để di chuyển giữa các vấn đề, công nghệ và dự án khi công việc thay đổi.
Điều này giúp chúng tôi làm việc hiệu quả hơn, giảm ma sát tổ chức và giữ bối cảnh ngay tại nơi các quyết định được đưa ra. Sự đánh đổi ở đây rất rõ ràng: mô hình này yêu cầu một nền tảng kỹ thuật vững và mức độ tin cậy cao trong đội ngũ, và chúng tôi chủ động chọn nó.
Chúng tôi không cố định phạm vi công việc và gần như bất kỳ ai cũng có thể làm gần như mọi thứ.
Kết quả là các đội ngũ không phải bảo vệ những hệ thống họ từng xây dựng hoặc cảm thấy bị ràng buộc vĩnh viễn với chúng. Bạn xây dựng một cái gì đó, cải thiện nó cho đến khi đạt tiêu chuẩn, rồi tiếp tục sang việc khác. Trách nhiệm sở hữu và bảo trì được chia sẻ cho toàn bộ đội ngũ kỹ thuật của Axon.
Cách tiếp cận này loại bỏ rất nhiều nguy cơ tiềm ẩn thường tích tụ trong các hệ thống tồn tại lâu dài, đồng thời giúp tránh các thông tin cô lập.
Điều này có thể đi ngược lại quan điểm phổ biến, nhưng chúng tôi không khuyến khích việc viết tài liệu quá nặng.
Thay vào đó, chúng tôi chuyển trọng tâm sang kỹ thuật mang tính trực giác.
Nếu một hệ thống được thiết kế với ít anti-pattern và có cấu trúc logic, gọn gàng, thì bản thân nó đã dễ hiểu và dễ mở rộng. Trong nhiều tổ chức, tài liệu thường được dùng như "tấm vé miễn trách nhiệm" cho thiết kế kém và kết quả là, nhiều tài liệu trở nên lỗi thời, thiếu sót hoặc chẳng ai đọc.
Thay vì cố gắng sửa tài liệu, chúng tôi loại bỏ nhu cầu có nó ngay từ đầu.
Cách tiếp cận này giúp giảm các thông tin phân mảnh, khiến việc chia sẻ trách nhiệm trở nên thực tế và buộc tiêu chuẩn kỹ thuật cao hơn ngay từ đầu.
Chúng tôi đặc biệt coi trọng chất lượng và tư duy kỹ thuật.
Với những bài toán cốt lõi, chúng tôi thường xây dựng các hệ thống nội bộ được tối ưu sâu khi giải pháp có sẵn không đáp ứng được yêu cầu. AxonCache, một hệ thống gần đầy được open-sourced, là một ví dụ.
Đồng thời, chúng tôi luôn tuân thủ quy tắc không tái phát minh lại những thứ đã có. Chúng tôi tận dụng cơ sở hạ tầng và tiện ích cloud đã hoàn thiện khi cần thiết. Đây chính là lý do chính giúp chúng tôi vận hành với một đội ngũ tinh gọn.
Chúng tôi tận dụng AI rộng rãi trong cả kỹ thuật và sản phẩm, không phải như một xu hướng mà như một đòn bẩy thực tế để tăng hiệu suất.
Ở phía sản phẩm, AI hỗ trợ về an toàn, phân tích và tự động hóa sản phẩm.
Ở phía kỹ thuật, AI được sử dụng để debug, khám phá roadmap, xử lý các công việc lặp lại và đóng vai trò như những “kỹ sư ảo” tham gia vào quá trình thiết kế và giải quyết vấn đề.
Chúng tôi rất hào hứng với AI, nhưng vẫn giữ vững sự tỉnh táo. Chúng tôi sử dụng AI khi nó thực sự hữu ích và tránh những lời nói thổi phồng gây xao nhãng.
Mục đích của bài viết này rất đơn giản. Chúng tôi muốn chia sẻ những bài học và thực hành hữu ích cho những ai đang xây dựng hệ thống phức tạp với một đội ngũ nhỏ nhưng có sự tin tưởng cao.
Một số bài viết sẽ chuyên sâu về kỹ thuật.
Một số sẽ tập trung vào quyết định sản phẩm.
Những bài khác sẽ bàn về các đánh đổi trong tổ chức và vận hành.
Tất cả những câu chuyện trên đều được kể từ góc nhìn của một builder, bởi vì đó chính là cách chúng tôi làm việc mỗi ngày.