Lý do thực sự khiến các PR của bạn trở nên khổng lồ
Tôi từng làm việc tại một công ty có thói quen đẩy lên những pull request (PR) khổng lồ. Một PR có thể nằm chờ hàng tuần liền. Việc review nó đòi hỏi bạn phải nắm giữ toàn bộ một hệ thống con trong đầu. Lỗi chồng chất. Deadline bị trễ. Cuối cùng, chúng tôi đã phải xây dựng lại một phần lớn của hệ thống vì không ai có thể thay đổi nó một cách an toàn được nữa.
Các kỹ sư không hề tệ. Họ thông minh và làm việc chăm chỉ. Các PR trở nên lớn vì một lý do rất nhàm chán.
Không ai dạy họ cách chia nhỏ công việc.
Chúng ta thường coi các PR lớn là vấn đề về kỷ luật. Chúng ta nói: "Cứ tạo các PR nhỏ hơn đi." Chúng ta hành động như thể ý chí là sự khác biệt duy nhất giữa 1.500 thay đổi và 150 thay đổi.
Vấn đề không nằm ở ý chí. Chia nhỏ công việc lớn thành các phần nhỏ, độc lập là một kỹ năng. Hầu hết mọi người chưa bao giờ được dạy điều đó. Khi một ticket ghi "add billing", nó có cảm giác như là một nhiệm vụ duy nhất. Việc xác định xem một PR kết thúc ở đâu và PR tiếp theo bắt đầu từ đâu mới là phần khó nhất.
Tôi cũng từng đẩy những PR lớn. Tôi từng nghĩ "xong" nghĩa là giải quyết toàn bộ vấn đề cùng một lúc rồi gửi đi để review. Tôi đã mất nhiều năm mới học được rằng nhỏ hơn sẽ tốt hơn.
Các PR nhỏ đã thay đổi mọi thứ đối với tôi:
- Người review bắt được nhiều lỗi hơn. Một con người có thể xem xét khoảng 200 thay đổi. Họ không thể xem xét 2.000 thay đổi. Họ sẽ chỉ đọc lướt qua và approve.
- Việc merge diễn ra nhanh hơn. Các PR không còn nằm chờ trong hàng đợi nữa.
- Tôi không còn cảm thấy bị quá tải. Tôi tập trung vào từng phần một.
- Tôi trở thành một người lập kế hoạch tốt hơn. Bạn phải hiểu được hình thái công việc của mình thì mới có thể chia nhỏ nó ra.
Tôi bắt đầu nhìn nhận các hệ thống như những viên gạch Lego. Chúng là những mảnh nhỏ khớp lại với nhau. Một khi bạn đã nhìn thấy các viên gạch, việc cắt nhỏ công việc sẽ trở nên tự nhiên.
Đội ngũ hiện tại của tôi đẩy những PR nhỏ. Kết quả rất rõ ràng:
- Thời gian merge trung bình của chúng tôi là 1,5 ngày.
- Chúng tôi tìm và sửa lỗi nhanh chóng vì các thay đổi rất dễ đọc.
- Thời gian bàn giao của chúng tôi rất nhất quán.
Chia nhỏ công việc là một kỹ năng mà bạn phải huấn luyện. Bạn không thể khắc phục các PR lớn chỉ bằng một quy định. Bạn khắc phục chúng bằng cách dạy mọi người cách nhìn thấy các viên gạch.
AI khiến kỹ năng này thậm chí còn trở nên quan trọng hơn.
Trước đây, viết 2.000 dòng code tốn rất nhiều công sức. Chính sự khó khăn đó đã giữ cho các PR nhỏ hơn. AI đã loại bỏ sự khó khăn đó. Bạn có thể tạo ra những thay đổi khổng lồ chỉ với một prompt.
Công sức đó không hề biến mất. Nó chỉ chuyển sang người review. Người viết không tốn gì cả, nhưng người review phải trả toàn bộ cái giá đó.
Nếu kích thước không còn phản ánh khối lượng công việc mà tác giả đã thực hiện, thì kích thước cũng chẳng cho bạn biết được gì nhiều về rủi ro. Bạn phải quyết định xem phần nào xứng đáng nhận được sự xem xét kỹ lưỡng nhất của mình.
Hãy dạy đội ngũ của bạn cách nhìn thấu từng viên gạch. Đó là thói quen mang lại đòn bẩy lớn nhất trong kỹ thuật.
Đội ngũ của bạn quyết định như thế nào về việc PR nào cần được xem xét kỹ lưỡng và PR nào có thể được thông qua nhanh chóng?
Nguồn: https://dev.to/pixel-wraith/the-real-reason-your-prs-get-big-5cm3
Cộng đồng học tập tùy chọn: https://t.me/GyaanSetuAi