"Trên máy của tôi chạy được mà, bạn thử lại xem?"
Mỗi khi một thành viên trong nhóm thốt ra câu "danh ngôn" này, tôi biết rằng buổi chiều hôm đó lại đi tong rồi.
Một lập trình viên junior ngơ ngác trước một lỗi "chỉ anh ta không tái hiện được"; một lập trình viên senior lãng phí một giờ để giúp đồng nghiệp kiểm tra lỗi, cuối cùng phát hiện ra là do phiên bản PHP không nhất quán; quản lý dự án ngồi như trên đống lửa vì một bản vá lỗi khẩn cấp mãi không thể hợp nhất.
Đây là vở kịch đắt giá nhất diễn ra hàng ngày trong các nhóm công nghệ của chúng ta. Chúng tôi gọi đó là "sự hao mòn nội bộ do môi trường".
Là trưởng nhóm kỹ thuật, tôi đã thử mọi phương pháp để "chữa trị" căn bệnh mãn tính này. Chúng tôi cố gắng thống nhất tài liệu hướng dẫn, để mọi người làm theo các bước. Kết quả? Máy của đồng nghiệp A dùng chip M1, đồng nghiệp B dùng Intel; Homebrew của đồng nghiệp C đã cũ; đồng nghiệp D lần trước lỡ tay nâng cấp Node.js toàn cục...
Sự "tăng entropy" của môi trường dường như là không thể đảo ngược. Những khác biệt nhỏ tích tụ theo thời gian và cuối cùng bùng nổ ở một lỗi không đáng kể, nuốt chửng nguồn tài nguyên quý giá nhất của chúng ta: trạng thái dòng chảy và thời gian của lập trình viên.
Chúng tôi cũng đã cân nhắc các giải pháp nặng ký, như bắt buộc sử dụng Docker cho mọi dự án. Về lý thuyết, đó là "môi trường dưới dạng mã" hoàn hảo, nhưng đối với một nhóm chủ yếu phát triển web và cần lặp lại nhanh như chúng tôi, đường cong học tập, mức tiêu thụ tài nguyên và hiệu suất lúc tốt lúc không trên macOS lại mang đến những nỗi đau mới. Giải quyết một vấn đề lại tạo ra một vấn đề khác.
Thứ chúng tôi cần là một "đơn thuốc cho môi trường": một thứ có linh hồn "nhất quán" của Docker nhưng lại có thân xác "nhanh nhẹn và đơn giản" của phát triển cục bộ.
Sau một thời gian dài tìm tòi và thử nghiệm, nhóm của tôi, làm việc trên nền tảng macOS, cuối cùng đã tìm thấy đơn thuốc đó: Servbay phiên bản Team.
Nó đã hoàn toàn thay đổi mô hình hợp tác của nhóm chúng tôi.
Mô hình "Bếp trung tâm" cho môi trường Là trưởng nhóm kỹ thuật, tôi có thể định nghĩa một "bản ghi nhanh môi trường" được tiêu chuẩn hóa cho mỗi dự án trong Servbay của mình. Ví dụ, "Dự án thương mại điện tử A" phải sử dụng PHP 8.2, PostgreSQL 15 và Redis ; trong khi "Dự án trang web B" sử dụng Node.js 20 và MySQL 8.0. Sau đó, tôi chia sẻ cấu hình này với nhóm.
Thành viên mới bắt đầu công việc với "chi phí bằng không"
Tuần trước, chúng tôi có một đồng nghiệp mới. Trước đây, anh ấy có thể mất cả ngày hoặc hơn để thiết lập các môi trường khác nhau. Giờ đây, quy trình là: cài đặt Servbay -> tham gia nhóm của tôi -> xong. Servbay của anh ấy tự động đồng bộ hóa cấu hình môi trường của nhóm, và tất cả các dịch vụ và phiên bản cần thiết đã sẵn sàng ngay lập tức. Anh ấy đã bắt đầu viết mã trong giờ đầu tiên.
Chuyển đổi liền mạch giữa nhiều dự án, không can thiệp lẫn nhau Nhóm của chúng tôi đồng thời bảo trì nhiều dự án của khách hàng, mỗi dự án có một ngăn xếp công nghệ khác nhau. Servbay cho phép mỗi lập trình viên dễ dàng quản lý hàng chục dự án trên máy tính của riêng mình, mỗi dự án có thể được gắn với một phiên bản PHP, Node.js và cơ sở dữ liệu độc lập mà không có xung đột. Điều này trước đây là không thể tưởng tượng được.
Chia sẻ tức thì, giao tiếp linh hoạt Khi một đồng nghiệp hoàn thành một tính năng và muốn nhà thiết kế UI xem qua, họ không còn cần phải triển khai nó lên máy chủ thử nghiệm. Sử dụng tích hợp frp hoặc ngrok trong Servbay v1.13.0, họ có thể tạo một liên kết công khai chỉ bằng một cú nhấp chuột và chia sẻ trực tiếp trang web cục bộ của mình. Sự linh hoạt này đã tăng tốc đáng kể hiệu quả giao tiếp của chúng tôi.
Giá trị của một trưởng nhóm kỹ thuật không chỉ nằm ở việc viết mã xuất sắc, mà còn ở việc xây dựng một quy trình làm việc "không ma sát" cho nhóm.
Câu nói "Trên máy của tôi chạy được mà" giờ đã biến mất khỏi nhóm của chúng tôi. Thời gian chúng tôi tiết kiệm được giờ đây được dùng cho công việc sáng tạo hơn, tái cấu trúc mã, hoặc đơn giản là về nhà sớm hơn.