Chuyện Nghề: Lược Sử 4 Năm Nghề
Tui viết bài này để giới thiệu lược sử công việc của mình (ở Grab) theo thời gian. Mục đích của bài viết là cho mọi người có cái nhìn sơ bộ, khái quát về mặt thời gian của series chuyện nghề này. Ai hóng drama thì ráng kiên nhẫn nha.
…
1 Tui gia nhập công ty từ tháng 2 năm 2018 vào một team gọi là “DAX iOS”. Team này trực thuộc một tech family tên là “Driver Experience (DEX)”. Nói cho dễ hình dung thì vai trò và nhiệm vụ của tech family này là chăm lo cho trải nghiệm tài xế. Từ thời điểm tui gia nhập team cho đến 7-8 tháng vế sau, tụi tui (tầm 10 người) cân cả cái app iOS của tài xế. Thời gian này, tui cùng các kỹ sư khác chủ yếu làm chức năng sản phẩm (product features). Một số kỹ sư cứng cựa khác thì làm engineering work. Lúc đó, chỉ có tụi tui làm việc qua lại với nhau. Hung lắm là có tương tác thêm với các một số bên liên quan như designer, product manager, QA… nhưng chung quy lại vẫn cùng tech family.
Khoảng nửa năm sau, các tech families (vd. Payment, Food/Express…) khác bắt đầu dồn lực vào chức năng cho app tài xế. Thời gian đầu, một số tech families chưa tuyển đủ kỹ sư iOS nên tụi tui đôi lúc “được” tạm thời bán cái qua làm giùm cho các team đó. Tức là 1-2 kỹ sư team tui sẽ tham gia cùng với designer, product manager, kỹ sư Android và Backend của tech family đó để chạy một (vài) features nào đó.
Về mặt kỹ thuật, đó không phải là một trở ngại đáng kể. Trước đó tụi tui cân tất cả features, có cái nhìn khái quát khá tốt về dự án, nên luôn đảm bảo đầu ra tốt. Nhưng cách thức làm việc lại là một vấn đề lớn. Vì đến từ 2 tech families khác nhau nên phong cách làm việc giữa 2 bên khác nhau, việc đưa ra quyết định giữa 2 bên cũng dựa trên những cơ sở khác nhau. Chẳng hạn như, đối với tech families đó thì deliveries và timeline là yếu tố rất quan trọng. Trong khi đó đối với tụi tui, còn phải cân nhắc đến các yếu tố về engineering như kiến trúc dự án (architecture), khả năng mở rộng (scalability). Thực tế có một điều tụi tui luôn phàn nàn trong buổi sprint retro. Đó là có nhiều tickets chưa qua grooming trước khi bắt đầu, nên đang làm thì phát hiện ra yêu cầu phần mềm không rõ ràng, không thấu đấu, chưa được chốt hạ, rồi backend chưa sẵn sàng, vân vân và mây mây. Điều này xảy ra nhiều lần, và không chỉ đối với 1 tech family nhất định. Hệ lụy của việc này là một số tech debt được thêm vào dự án vì nhiều lần gấp-gáp-cho-kịp-timeline. Sau này khi các tech families đó có kỹ sư iOS riêng thì những trường hợp như vậy cũng lặp lại nhiều lần. Lỗi do ai không biết nhưng nơi hứng chịu cuối cùng chính là codebase của dự án… Và như thể điều mà bạn không mong muốn xảy ra sẽ luôn xảy ra, phần codebase của các tech families với phong cách làm việc như trên sẽ có mức độ hỗn loạn cao hơn bình thường. Team DAX iOS, ngoài việc phải mần features của tech family, còn là team định hình kiến trúc (architecture), nền tảng lõi (core platform) của dự án nên việc đảm bảo chất lượng engineering bản thân nó đã là một gánh nặng, nay lại ngày càng nặng thêm.
2 Trong một năm đầu, tui xoay quần giữa 3 thể loại công việc chính: làm features của tech family mình, (đôi lần) được/bị bán cái qua làm features cho tech family khác, hoặc làm engineering work. Năm sau đó (tức 2019), các tech families (kể cả tech family của tui) đều gia tăng về số lượng kỹ sư. Điều này ám chỉ số lượng công việc tăng lên chứ không phải work load của các thành viên giảm xuống.
Bạn thử tưởng tượng một kỹ sư như một người người chạy xe đi giao hàng. Nếu chỉ chục người chạy xe trên đường thì cũng không là vấn đề dù đường nhỏ. Nhưng nếu có bảy tám chục người chạy xe thì cho dù nâng cấp mở đường rộng lên chút cũng không giúp ích nhiều. Có người chạy chậm, người chạy nhanh, người chạy ẩu, người lấn tuyến, người vượt đèn đỏ… rồi kẹt xe, khiến cho trải nghiệm giao thông của họ xấu đi. Ở cái phép so sánh này, team tụi tui vừa là những người chạy xe giao hàng vừa là những người bảo trì đường xá. Mấy cái ổ gà ổ voi trên đường cũng như mấy cái tech debt mà kỹ sư bỏ lại trong dự án. Ai xui chạy vô trúng ổ gà thì bị xóc, nhẹ thì bỏ qua mà nặng thì chửi đổng “tổ cha mấy đứa làm đường”.
…
3 Năm covid đệ nhất (2020), tui chuyển hẳn sang làm engineering work, focus chủ yếu vào scripting. Ngôn ngữ chỉ là công cụ, không phải đích đến. Tui tự nhủ sứ mệnh của mình là nâng cao trải nghiệm developer. Thứ gì giúp các kỹ sư làm nhanh hơn, trải nghiệm tốt hơn thì thuộc phạm vi công việc của mình. Lúc này, những người khác trong team thì code ios, còn tui chơi hệ riêng. Những tasks tui làm, ngoài community thấy rất bình thường, nhưng lại trở nên lạ lẫm đối với team. Vì vậy đối với một số quy trình làm việc cơ bản trong team chẳng hạn như code review, tui đều thấy không phù hợp với mình. Điều này cộng với mớ bòng bong covid khiến 2020 trở thành một năm tích tụ rất nhiều điều không hài lòng.
4 Năm sau đó (2021), có một sự tái cấu trúc (re-org) trong tech family. Trước đó, trong tech family có team iOS, Android, Backend, Designer, Product Manager… Hiểu nôm na là phân chia theo đặc trưng nghề. Sau đấy tech family chia ra thành nhiều pod nhỏ dựa trên chức năng, vai trò (vd. earnings của tài xế, các chức năng critical…). Có khoảng 3-4 pods như vậy, mỗi pod gồm cả kỹ sư iOS, Android, backend, designer, product manager… Nói chung là một bộ sậu hoàn chỉnh phụ trách chức năng nào đó. Trong các pods đó, có một pod đặc biệt là pod của tui, với nhiệm vụ là mần platform work. Vì pod của tui không có mần product features nên không có designer, backend, hay product manager… Nói cách khác là chỉ có iOS và Android chơi với nhau. Khi chia ra thành pods như thế này thì team iOS/Android cũ được gọi là chapter. Như vậy, tụi tui sinh hoạt, làm dự án theo pod của mình, báo cáo theo pod đó, nhưng cũng có những sinh hoạt theo chapter. Lúc này một tuần làm việc của tui sẽ có một buổi weekly meeting với pod của mình, và một buổi weekly meeting với nguyên chapter ios.
Một điểm cộng của sự chuyên biệt hoá này là các kỹ sư đều có chung ngữ cảnh. Trước đó khi làm mấy cái tasks trong team, tui cảm thấy bị cô lập vô cùng vì không có người cộng tác. Hầu như không có tương tác phản biện với các kỹ sư khác. Với mô hình làm việc mới thì đỡ hơn… Nhưng có một vấn đề lớn là cái pod này có quá ít người 😅. Ban đầu chỉ có 1 iOS, 2 Android. Về sau thì 2 iOS, 2 Android. Thực sự mà nói thì 2 iOS là hơi bị ít, so với độ phức tạp của công việc trong pod này. Tui cho rằng pod này chưa có được vị thế và nguồn lực xứng đáng để cáng đáng sứ mệnh của nó.
5 Và giờ 2022, tui ngồi đây kể lại chặng đường 4 năm (rưỡi) của mình. Tui trân trọng và biết ơn khoảng thời gian làm ở Grab. Tui hy vọng những ai đã từng là một phần của team DAX iOS, giờ dù ở đâu, cũng sẽ tìm cách toả sáng. You did survive here, you will survive there.
…
P/s: Pod của tui tên là DEDE, đọc là “đi-đi”. Và tui đã làm đúng như những gì nó bảo… Ủa!