Tuesday, June 28, 2016

GES2016 và câu chuyện về Tech Team.

Khi ở GES, tôi ít khi để tâm đến mấy chuyện về entrepreneurship cho lắm vì thực ra cái này giờ gặp như cơm bữa ngán ngẩm rồi, tài liệu có đầy ra trên mạng đó.
Thứ có thể khiến tôi có thể nói chuyện hơn 3 phút ngoài “what is your name?” “where are you from?” hay “who do you do?” … đó là “hey, does Vietnam developer use Docker much?”, “What is your stack for Gcall?”, “How do do apply CI and agile in your team?” “how long do you release a new version?” “how long do do fix a bug for your customer?”
Và tôi có một buổi nói chuyện cả đêm với một cậu nhóc tên Ali mới 20 tuổi, người jordan bỏ học computer science để làm node.js developer của 1 startup trong 1 hack hub (coworking space) và hơn 45 phút nói chuyện với với Qasar Younis , COO của Y Combinator. Tôi nhận ra nhiều điều về sự khác nhau giữa văn hoá và tuy duy của tech team và tech mate giữ Á Đông và Mỹ.
1) Văn hoá “Whitebeard” và “LoL”
Nếu ai có đọc truyên One Piece thì ắt hẳn sẽ biết nhân vật Whitebeard, nếu ai chưa đọc có nôm na có thể tạm hiểu là “người cha đáng kính và những đứa trẻ”. Khi còn outsource, nhiều năm liền, tôi luôn tự hỏi là làm sao tháo gỡ được nút thắt cổ chai ở cái chỗ gọi là “CTO”. Một CTO thực sự giỏi lắm chỉ xử lý được 2–3 dự án trong cả năm. Trong khi mỗi dự án đều đòi hỏi công nghệ khác nhau, viết một sử dụng lại nhiều lần chỉ gặp ở những team nào có source khách hàng giống nhau sẵn. Văn hoá này đòi hỏi CTO phải trở thành siêu nhân, đặc biệt là phải hiểu công nghệ để phân chia dự án và phân bố người. CTO có thể nói giống “shit handler” của cả team. Công nghệ ngày càng mới, nó bắt buộc người CTO phải học mới và master cực nhanh để hướng dẫn lại team nếu muốn cả team cùng làm, và người CTO đó phải chinh phục được team về năng lực mình. CTO thay đổi chỉ là điều kiện cần để team thay đổi. Chuyện gì xảy khi CTO không cứng? Nó giống như làm assignment thời sinh viên vậy đó, thầy giáo giao đề, thằng chia là thằng tổng hợp và cũng là thằng siêu nhân nhất team, chia ra mạnh thằng nào thằng nấy code, xong ghép lại … thằng tổng hợp là thằng code lại từ đầu đến cuối, cuối cùng teamwork lài cái gì? Thằng tổng hợp mà tạch là cả team tạch theo.
“LoL” là tên viết tắt từ game Liên Minh Huyền Thoại, kịch bản gần giống với Dota của Warcraft. Game phân rõ chiến lược mid, top, bot phải làm gì và tuỳ cơ ứng biến ra sao để cân bằng đội hình. Nó buộc mỗi người phải trở thành CTO trong chính phần họ xử lý, nó buộc người CTO phải tự thay đổi để thuyết phục các CTO khác thay đổi lại cho phù hợp.
Tôi gặp Ali, Ali’s Brother và Art. Họ chỉ có vỏn vẹn 3 người để build 1 tool rất cool để người khác dạy lập trình dang support và họ chỉ mới 20–21 tuổi.
2) Master your own framework or others.
Đẳng cấp hơn thua của một developer là master ngôn ngữ mình đang làm việc nhưng đẳng cấp hơn là viết tool/lib để làm việc với ngôn ngữ đó tốt hơn, tối ưu hơn, tránh những công việc lặp đi lặp lại. Và cuối cùng là tư liệu hoá nó để người khác cùng sử dụng.
Tư duy này ở hiếm thấy ở các lập trình viên trẻ ở Việt Nam kể cả già. Thường tôi thấy các bạn thường làm theo quy trình, copy code/đọc code và sửa code đè lên, đến khi rối tung rối mù lại chửi thằng trước viết ngu. Mấy bạn già mà tui biết thì họ luôn cho các các source code bao năm qua họ làm từ công ty này qua công ty khác là thứ quý nhất của họ, họ cho rằng sự hơn thua của họ khi là leader và lính lát là quăng cho 1 thằng lính mới vào đống source họ đã viết bao năm qua nào đó để sửa. Họ cho rằng tốc độ làm sản phẩm của họ là sự chỉnh sửa trên chính đống source họ viết, cũng như nhiều người khác viết bao nhiêu năm nay là lợi thế cạnh tranh của họ. Tôi cũng chưa rõ là tôi đúng hay sai hay phiến diện hay không?
Nhưng tôi thích mà cái cách Ali giới thiệu về những tool bạn đó tự build để có thể code nhanh hơn hay cái cách bạn nó giải thích tại sao lại không dùng react.js mà phải tự build vì đơn giản là bạn đó không cần nhiều như react.js , bạn đó chỉ cần dùng vài thứ trong concept đó, tại sao bạn đó phải học hết những cái bạn đó không dùng, rồi khi bạn đó muốn refactor hay muốn tối ưu hơn bộ mã nguồn của mình bạn đó phải phụ thuộc vào framework đó. Hay dùng docker với các stack mình viết ra như thế nào? Bạn đó tranh luận với cả anh trai của mình về cách dùng docker trong stack của anh trai bạn đó.
3) LOL và Age of Empire 3
Khi tôi nói chuyện với Qasar Younis về scale tech team. Câu hỏi làm tôi vấn vương là scale số lượng hay scale năng lực ? Liệu rằng bạn có đủ sức quản lý 50, 100, 150 kỹ sư …?
Khi công ty bạn nhỏ, nó giống 1 game trong LOL, mỗi người đều phải là siêu nhân hoặc phấn đấu thành siêu nhân, khi công ty bạn lớn nó sẽ trở thành Age of Empire 3, nó đòi hỏi những bạn cùng chơi phải ai phải biết rõ là người lam kinh tế để chỉ quản lý công nhân hay tài nguyên … nói trắng ra là “bơm tiền”, ai sẽ làm nhiệm vụ thám thính và công kích … nó đòi người chơi lúc này phải biết quản lý, tuyển chọn và đào tạo ra nhiều người có năng lực như họ đã từng. Giao tiếp nhiều hơn, lỗi nhiều hơn, hoạt động nhiều hơn, sự học cũng sẽ nhiều hơn … CTO nào sẽ có đủ sức cho chuyện này? Bạn có đủ nổi tiếng hay tiền để mời Thuận Phạm không? Và liệu anh ấy có muốn cùng làm việc với những kẻ không có chí cầu tiến?

from : Phuc Tan Pham 

Buy me a coffee