Link bài viết gốc Tiếng Anh: https://viblo.asia/p/what-is-teamwork-1-bWrZnrnvZxw
Về chúng tôi
Chúng tôi là Media Max Japan (Việt Nam), 1 công ty phát triển sản phẩm phần mềm. Chúng tôi sẽ chia sẻ một series bài viết về việc làm thế nào để developer trở thành 1 developer giỏi và có tư duy đúng. Chúng tôi thực sự mong muốn được làm việc cùng những developers như thế này. Hiện tại MMJ (Việt Nam) đang open vị trí Front End Developers. Hãy gửi CV của bạn vào địa chỉ hr@mmj.vn nếu bạn quan tâm nhé.
Bài viết trước: Bạn có biết cách nghĩ đúng?
Giới thiệu
Bài viết này nói về cách làm việc nhóm, đặc biệt là trong công ty phần mềm.
Cách hiểu về Teamwork
Khi nói về "teamwork", bạn sẽ nghĩ về điều gì? Có phải là:
- Mọi người trong team có mối quan hệ thân thiết với nhau, như những người bạn hay như trong gia đình; hay
- Mỗi người trong team có vị trí và trách nhiệm rõ ràng; hay
- Có leader phân công công việc cho team.
Tuy nhiên, là một Software Engineer, tôi có suy nghĩ khác. Để tôi được giải thích kỹ hơn.
Các loại đội nhóm
Có rất nhiều loại teams khác nhau trên thế giới và mỗi một loại hình sẽ phù hợp cho từng cách vận hành khác nhau. Tôi sẽ tập trung vào 2 yếu tố sau đây trong việc phân loại teams, vì thế hãy chú ý đến chúng nhé:
- Những yếu tố quan trọng (deadline, giá trị mang lại hay luôn phải thắng trong các cuộc chơi....)
- Cách đưa ra các Quyết định
* Loại 1 - Nhóm của các chú khỉ (Groups of Monkeys)
Đây là loại đội nhóm nguyên thủy nhất. Chúng sống cùng nhau bởi vì muốn có sự an toàn. Chúng đi kiếm ăn cùng nhau và chống lại kẻ thù cùng nhau. Cơ bản là chúng không hề xác định mục tiêu gì cả. Điều chúng cần duy nhất là tất cả mọi người trong nhóm sống hòa thuận, yên bình. Vì thế nhóm này sẽ có 1 thủ lĩnh, người sẽ có quyền lực nhất và thường là khỏe nhất.
* Loại 2 - Nhóm Quân đội (Army)
Nhóm Quân đội luôn có mục tiêu/ sứ mệnh cần đạt được. Tất cả mọi người trong nhóm đều rất kỷ luật nghe theo lời của chỉ huy, là người có quyền cao nhất và được coi là người giỏi nhất. Kỷ luật được đặt lên hàng đầu, mọi thứ đều nghiêm khắc vì chỉ cần có sai sót thôi, cả đội có thể sẽ chết. Vì thế, họ áp dụng nghiêm các phân cấp, quy định, thỉnh thoảng cả các hình phạt để mọi người đều làm đúng theo lệnh được đưa ra.
* Loại 3: Nhóm "Nhà máy sản xuất hàng loạt" (Mass Production Theory)
Nhóm Nhà máy được coi là nhóm tân tiến. Nhóm này tương tự như nhóm Quân đội nhưng họ tập trung vào năng suất. Họ cần phải tạo ra một khối lượng lớn các sản phẩm. Mỗi người được phân công một công việc được định sẵn, rõ ràng, đơn giản và thường là lặp lại. Mục tiêu của người quản lý là làm sao có thể đảm bảo hoặc tăng hiệu suất và chất lượng sản phẩm.
Công việc của họ được dựa theo kế hoạch được lập trước. Họ thường có những bản kế hoạch rất chi tiết và luôn cố gắng làm theo một cách tốt nhất có thể.
Hiệu suất của mọi người thường như nhau bởi vì công việc giống nhau (tôi làm ra được bao nhiêu sản phẩm 1 ngày thì bạn cũng sẽ làm được tương tự như vậy). Do đó, lương sẽ được trả dựa theo số giờ làm việc. Mối quan tâm của những người quản lý là làm sao để nhân viên làm việc càng hiệu quả càng tốt. Thường thì công việc buồn tẻ hay những mâu thuẫn là nguyên nhân giảm hiệu quả công việc. Vì thế, ban lãnh đạo thường cố gắng để không khí làm việc thật vui vẻ và mọi người có những mối quan hệ tốt với nhau, giảm thiểu mâu thuẫn. Chúng ta thấy những lần đi vui chơi, ăn uống được coi là hoạt động "team building" của công ty
* Loại 4: Nhóm Sáng tạo (Creative team)
Nhóm Sáng tạo thì đối ngược với Nhóm Nhà máy. Họ tạo ra các sản phẩm sáng tạo như ảnh, nhạc, video, quảng cáo... Đối với những công việc này, số giờ bạn làm việc không liên quan đến chất lượng công việc. Tác phẩm 10 phút của 1 nghệ sĩ nổi tiếng đắt giá hơn nhiều so với bức vẽ của tôi vẽ trong vòng 1 tháng. Vì thế, họ không nhận tiền dựa trên số giờ họ làm, mà là trên giá trị công việc họ mang lại.
Tình bạn đôi khi được coi là có hại trong trường hợp này. Hãy thử tưởng tượng người bạn thân trong nhóm làm ra 1 thiết kế xấu tệ, nhưng do không muốn làm cô ý buồn, bạn đã không đưa ra nhận xét thẳng thắn. Vì vậy, kết quả của cả nhóm là có 1 sản phẩm chất lượng kém.
Nhóm Sáng tạo thường không có leader quyết định sẽ làm gì và làm như thế nào, mà thường mỗi người nghệ sĩ là người biết rõ nhất về chủ đề họ làm. Vì thế, với lọai đội nhóm này, chúng ta thực sự cần những thảo luân thành thật và hợp tác. Mọi người còn có thể có nhiều tranh luận và mâu thuẫn, gạt qua cảm xúc cá nhân, hướng tới mục tiêu chung là có được những kết quả tốt nhất. Chúng ta cần phân biệt rõ ràng giữa việc tranh luận căng thẳng trong công việc và tình cảm bên ngoài công việc.
* Loại 5: Nhóm Thể thao (Sports team)
Nhóm Thể thao, như 1 đội bóng, toàn đội chơi cùng nhau để thắng đội đối thủ. Trong khi chơi, tình huống thay đổi liên tục và mọi người cần phải phản ứng ngay lập tức mà không có cơ hội bàn bạc và trao đổi với nhau. Nhóm sẽ có Huấn luyện viên, là người đưa ra chiến thuật và cả team có thể thảo luận trước khi trận đấu diễn ra. Còn trong trận đấu, mỗi người chơi thực sự phải suy nghĩ độc lập và có quyết định của riêng mình. Một điểm đặc biệt nữa của nhóm Thể thao là mọi người đều có thể mắc lỗi. Vì thế, nếu ai trong team phạm lỗi, họ vẫn được mọi người tin tưởng để tiếp tục mang lại kết quả tốt nhất.
* Loại 6: Nhóm Cấp cứu y tế (Emergency Medical Team)
Nhóm Cấp cứu này là 1 nhóm làm việc mức độ khó nhất. Công việc của họ sẽ là chữa cho bệnh nhân bị tai nạn. Họ không thể dự đoán được khi nào sẽ có bệnh nhân tiếp theo, có bao nhiêu bệnh nhân ngày hôm nay, triệu chứng gì, cách chữa trị như thế nào, mức độ nặng ra sao... Đôi khi, có nhiều bệnh nhân đến cùng 1 lúc, họ còn cần quyết định xem ưu tiên người nào trước. Chỉ cần phản ứng chậm thôi, hoặc có sai sót gì, người bệnh có thể sẽ chết. Rõ ràng những bác sĩ cấp cứu không có kế hoạch cụ thể trong công việc vì tất cả mọi thứ đều không dự đoán trước được. Họ cần phải đưa ra những quyết định rất nhanh và chính xác. Mối quan hệ thân thiết giữa mọi người không giúp ích được gì mà có thể còn có tác hại. Mỗi người cần đưa ra quyết định và thống nhất dựa trên rất ít thông tin. Khi quyết định đã được đưa ra, bạn cần làm theo. Cái tôi của bản thân có thể sẽ giết chết bệnh nhân.
Phân loại đội nhóm
Trên đây là các loại đội nhóm khác nhau và chúng ta có thể phân loại dựa trên các đặc điểm sau:
-
Kỹ năng chuyên môn của các thành viên. Khi trong nhóm đều là những người ít kinh nghiệm, thì nhóm cần được dẫn dắt bởi 1 leader nhiều kinh nghiệm và có quyền đưa ra quyết định. Nếu trong nhóm mọi người đều có nhiều kinh nghiệm, mọi người có thể tự biết được mình cần phải làm gì và tự quyết định.
-
Mức độ rõ ràng của công việc. Khi công việc đã được xác định rõ ràng (giả sử là đã rõ ràng), thì kế hoạch chi tiết và cách thực hiện đúng là 2 việc quan trọng nhất. Kế hoạch được bảo vệ và làm theo đến cùng. Tuy nhiên, khi công việc rất là không chắc chắn, không ai biết câu trả lời là gì. Trong trường hợp này, chúng ta cần tiếp tục học và thay đổi hướng đi theo quá trình đó. Lúc này, thảo luận và hợp tác để tìm ra giải pháp tốt nhất trong mỗi giai đoạn là điều quan trọng cần làm.
-
Đánh giá kết quả. Khi chúng ta đo được kết quả công việc của từng cá nhân (như trong nhà máy), team thường được quản lý bằng các công cụ như KPI. Nếu là những công việc không đo đếm được, thì sự đo lường hay lương thưởng trong trường hợp này là không chính xác. Lúc này, khi làm việc, mọi người có những động lực nội tại của riêng mình.
Software team là như thế nào?
Bản thân trong lĩnh vực phần mềm, đội nhóm cũng có 2 loại: outsourcing team và product team. Hai nhóm này tính chất rất khác nhau mặc dù công việc của họ đều là xây dựng phần mềm. Dưới đây là những điều khác nhau điển hình:
Outsourcing | Product |
---|---|
Deadline rất quan trọng | Kết quả rất quang trọng |
Chúng ta biết khách hàng muốn gì | Chúng ta không biết người dùng muốn gì |
Product Owner quyết định làm cái gì | Theo dõi thị trường và cùng nhau quyết định |
Những yêu cầu không nên thay đổi quá nhiều | Yêu cầu thường được thay đổi liên tục |
Dự án ngắn hạn | Dự án dài hạn |
Càng ít bug càng tốt | Release càng nhanh càng tốt |
Được trả cho số giờ làm việc | Được trả theo kết quả công việc |
Outsourcing team
Từ sự so sánh trên, chúng ta có thể thấy outsourcing team trong phần mềm có những đặc điểm giống nhóm Nhà máy (Factory team) và 1 vài đặc tính của nhóm Cấp cứu y tế (Emergency Medical team).
Các dự án outsource thì thường làm theo yêu cầu của khách hàng và kết quả của sản phẩm (ví dụ như doanh số bán hàng) thì sẽ được chịu trách nhiệm bởi khách hàng. Nhiệm vụ của team là làm theo đúng deadline và thực hiện những điều khoản đã thỏa thuận. Đối với dự án outsource, chúng ta thường mặc định hiệu suất của các senior developer là như nhau (vì thế giá trị hợp đồng được tính theo man-month). Công việc thì được thực hiện theo kế hoạch. Chúng ta nhận yêu cầu, đưa ra ước lượng, deadline, và thực hiện theo biểu đồ được định sẵn (gantt chart). Giống như trong nhà máy phải không nào?
Tuy nhiên, trên thực tế, có rất nhiều điều không tính trước được trong quá trình thực hiện. Mỗi developer có kỹ năng khác nhau. Mỗi một dự án có những yêu cầu khác nhau nên chúng ta thường gặp phải những vấn đề về kỹ thuật không được tính trước, mặc dù là dùng cùng một tech stack. Khối lượng công việc sẽ tăng lên nhưng deadline thì vẫn giữ nguyên. Đây là những đặc điểm của Nhóm Cấp cứu y tế (Emergency Medical team).
Vì vậy, outsourcing team được định nghĩa giống như nhóm Nhà máy nhưng lại có những đặc tính như nhóm Cấp cứu Y tế. Sự lẫn lộn này khiến các dự án outsource gặp rất nhiều vấn đề, tuy nhiên, tôi sẽ không phân tích kỹ những vấn đề đó trong bài viết này.
Product team
Product team thì lại có những đặc điểm giống như nhóm Cấp cứu Y tế và nhóm Sáng tạo.
Do chúng ta làm sản phẩm nên kết quả chỉ nên được đánh giá bằng kết quả của chính sản phẩm đó, không dựa vào số giờ làm hay lượng công việc đã làm. Kể cả khi sản phẩm bạn làm không có bug, rất hoàn hảo, khi không có người dùng thì công việc cũng trở nên vô nghĩa. Đây là những đặc tính của nhóm Sáng tạo.
Bên cạnh đó, chúng ta tạo ra sản phẩm cho thị trường khó đoán được trước. Chúng ta không biết được người dùng thực sự cần tính năng gì. Đôi khi chúng ta cũng không biết được làm thế nào để làm tính năng đó. Chúng ta có quá nhiều việc và bugs phải xử lý nhưng thời gian lại có hạn. Vì thế, product team cần tập trung vào những việc ưu tiên cao và bỏ qua những việc có giá trị thấp (low impact). Chúng ta có bản kế hoạch nhưng cũng hiểu rằng kế hoạch thường sẽ bị thay đổi. Những đặc điểm này thì giống nhóm Cấp cứu Y tế.
Vì vậy, có thể nói cách đưa ra quyết định của Product team giống như trong nhóm Cấp cứu Y tế. Không có leader, không có ai biết được câu trả lời cả. Vì vậy chúng ta cần nói ra tất cả những ý kiến để tránh mâu thuẫn. Khi quyết định đã được đưa ra, mọi người cần làm theo mà không phàn nàn gì cả. Chúng ta cũng phân công công việc cho mỗi người. Tuy nhiên, điều quan trọng nhất là chất lượng sản phẩm. Do đó, nếu chỉ làm theo những gì được phân công thì thường là không đủ tốt. Mọi người cần đưa ra câu hỏi, và làm những việc hơn cả vị trí của mình yêu cầu.
Đặc điểm chung của teamwork ở Việt Nam
Khi nói chuyện với các bạn người Việt Nam, tôi cảm thấy quan điểm về team work của mọi người khác mình. Có vẻ như mọi người hình dung ra các đội nhóm giống như tính chất của nhóm Nhà máy. Tuy nhiên, khi bạn làm sản phẩm với tư duy của nhóm Nhà máy thì kết quả sẽ không bao giờ tốt được.
Tiếp theo
Đây là tất cả cho phần đầu của chủ đề làm việc nhóm (teamwork). Trong bài tiếp theo, chúng ta sẽ tìm hiểu về thế nào là làm việc nhóm, và các cách vận hành tốt nhất của software team, tập trung vào product team trong phát triển phần mềm.