Có khác biệt giữa “Làm việc theo tổ” và “Làm việc theo nhóm”.

Là người quản lí phần mềm, việc của bạn là quản lí mọi người và đảm bảo rằng họ “làm việc với nhau” để làm ra sản phẩm đầy đủ theo thời gian, trong chi phí và có chất lượng cao. Vì hầu hết các dự án phần mềm đều yêu cầu “làm việc theo tổ”, chính việc của bạn là hình dung ra liệu bạn có “nhóm” hay “tổ”, và tạo ra môi trường nơi họ có thể làm việc hiệu quả. Tất nhiên, mọi người nói về tầm quan trọng của “làm việc theo tổ” nhưng làm sao điều đó xảy ra được nếu họ chưa bao giờ làm việc trong một tổ?  Làm sao bạn có thể làm cho mọi người làm việc cùng nhau nếu họ được đào tạo ở trường rằng công việc cá nhân được coi là “tốt” còn làm việc theo tổ được coi là “gian lận”? Làm việc theo tổ giống cái gì? Làm sao bạn biết liệu đó là một tổ hay không? Ta hãy nhìn vào những tình huống sau để hiểu khác biệt giữa “làm việc theo tổ” và “làm việc theo nhóm”:

A là kĩ sư phần mềm và B là kĩ sư phần cứng, tất cả họ đều tốt nghiệp từ cùng một đại học và làm việc cho cùng một công ti. Họ thường gặp nhau để nói về trò chơi máy tính, âm nhạc, và phim mà cả hai đều thích. Họ có là mọt tổ không? – Không, họ KHÔNG là một tổ bởi vì họ làm việc trong nhóm khác nhau. Hoạt động của họ trong công ti không có liên quan với nhau và công việc của họ không yêu cầu họ làm việc cùng nhau.

C và D cả hai đều là kĩ sư phần mềm, tất cả họ đều tốt nghiệp từ cùng một đại học và làm việc cho cùng một công ti nhưng trong các dự án khác nhau. Bởi vì cả hai dự án của họ đang dùng công nghệ mới có tên XYZ, mỗi lần họ gặp nhau họ đều nói về công nghệ này. Họ có là một tổ không? – Không, họ KHÔNG là một tổ bởi vì họ làm việc trong các dự án khác nhau. Họ đang nói với nhau về công nghệ mới trên cơ sở bạn bè riêng, không như được yêu cầu.

E và F làm việc cho cùng công ti, trong cùng nhóm phần mềm. Từng người đều có trách nhiệm phân biệt cho các khu vực chức năng khác nhau. E hội tụ vào hệ phục vụ mạng còn F chịu trách nhiệm về ứng dụng phần mềm. Họ gặp nhau đều đặn trên cơ sở thông tin cho nhau về lịch biểu bảo trì mạng. Họ phối hợp với nhau trên cơ sở sao lưu hàng ngày, cập nhật phần mềm và an ninh. Họ có là một tổ không? – Không, họ KHÔNG là một tổ bởi vì họ có việc làm khác nhau, làm việc ở các khu vực khác nhau và không cần E và F cùng làm việc để đạt tới cái gì chung. Họ chỉ phải “phối hợp” với nhau để đảm bảo mọi sự làm việc tương ứng.

G và H cả hai đều là các kĩ sư phần mềm, họ làm việc trên một dự án rất lớn với hàng trăm kĩ sư. Bởi vì nó quá lớn, người quản lí chia dự án này thành nhiều nhóm nhỏ. Họ không biết nhau vì họ làm việc trong các nhóm khác nhau nhưng họ biết rằng một ngày nào đó, họ sẽ phải phối hợp các chức năng với nhau khi họ tích hợp công việc của mình vào sản phẩm cuối cùng. Họ có phải là một tổ không? – Không, dự án của họ quá lớn và họ thậm chí không biết nhau. Tuy nhiên nhóm của họ bên trong dự án lớn có thể vận hành như “tổ cộng tác”.

X và Y và sáu người khác làm việc trên một dự án phát triển phần mềm. Họ có những kĩ năng khác nhau nhưng tất cả đều cần để xây dựng sản phẩm phần mềm. Họ cam kết cùng nhau với cùng mục đích dự án và làm việc rất chặt chẽ để chuyển giao phần mềm trong việc lặp bốn tuần vì họ dùng Scrum – phương pháp mau lẹ agile. Họ chia sẻ các mục đích, họ đảm nhiệm lẫn nhau, và nếu họ không làm việc cùng nhau, không chia sẻ thông tin với nhau, không giúp đỡ lẫn nhau, và không học lẫn nhau, họ sẽ KHÔNG thành công và dự án có thể thất bại. Họ có là tổ không? – Có, dứt khoát họ là một tổ và làm việc tổ là quan trọng cho họ để thành công cùng nhau.

Vậy nên, là người quản lí phần mềm, làm sao bạn tổ chức mọi người làm việc như một tổ?  Sau đây là vài lời khuyên:

1)     Bạn phải thiết lập mục đích dự án và đảm bảo rằng mọi người làm việc cho dự án đều cam kết đạt tới mục đích đó, cũng như các thành viên cam kết lẫn với nhau để giúp nhau và chia sẻ việc đảm nhiệm.

2)     Bạn phải kiểm tra các kĩ năng cần để làm công việc và phân công người làm việc tương ứng theo kĩ năng và kinh nghiệm của họ. Mọi người phải hiểu vai trò, trách nhiệm và đảm nhiệm của mình.

3)     Bạn phải phân tích công việc vì một số công việc một người có thể hoàn thành từ đầu tới cuối nhưng một số công việc đòi hỏi nhiều người làm việc cùng nhau và tích hợp để tạo ra sản phẩm tập thể cuối cùng cố kết vì công việc của họ tuỳ thuộc vào công việc của người khác.

4)     Bạn phải họp đều đặn để thảo luận tình trạng dự án, kiểm điểm công việc, và nhận diện các vấn đề và rủi ro trong các thành viên tổ. Họ cũng cần chia sẻ điều đã được hoàn thành và điều còn chưa và liệu có cần ai giúp gì thêm không.

5)     Bạn phải thiết lập hệ thống giám sát nơi người cấp cao hay người có kinh nghiệm có thể giúp đào tạo và hỗ trợ người khác.

Xây dựng tổ không xảy ra một cách ngẫu nhiên đâu. Nó phải được lập kế hoạch và được đào tạo và việc của bạn như người quản lí sẽ làm khác biệt giữa người quản “tổ” hay người quản lí “nhóm”. Như nhiều người trong các bạn có thể thấy sự khác biệt giữa thể thao theo tổ như bóng đá, và thể thao cá nhân như tennis. Không đội bóng nào thắng được gì nếu cầu thủ chỉ muốn đá vào bóng. Là môn thể thao tổ, bóng đá bao giờ cũng cần một huấn luyện viên người cung cấp chiến lược, kế hoạch, và huấn luyện người của họ để phối hợp bởi vì tất cả họ đều chia sẻ một mục đích chung: Thắng trận đấu. Cùng điều đó có thể được áp dụng cho dự án phần mềm.

—-English version—-

Blog185- Teamwork and group work

There is a different between “Team-work” and “Group-work”. As a software manager, your job is to manage people and make sure that they are “working together” to get the product complete on time, within costs and with high quality. As most software projects require “teamwork”, it is your job to figuring out whether you have a “group” or a “team”, and create an environment where they can work effectively. Of course, people talk about the important of “teamwork” but how does it happened if they never work in a team?  How can you make people working together if they are trained in school that individual work is considered “good” and teamwork is considered “cheating”? What does teamwork look like? How do you know whether it is a team or not? Let‘s look at the following situations to understand the differences between “team-work” and “group-work”:

A is a software engineer and B is a hardware engineer, they all graduated from the same university and working for the same company. They meet often to talk about computer games, music, and movies that they both enjoy. Are they a team? – No, they are NOT a team because they work in different group. Their activities in the company are not related to each other and their works do not require that they work together.

C and D are both software engineers, they all graduated from the same university and working for the same company but in different projects. Because both of their projects are using a new technology called XYZ, each time they see each other they talk about this new technology. Are they a team? – No, they are NOT a team because they work in different projects. They are talking with each other about the new technology on their own friendship, not as required.

E and F work for the same company, in a same software group. Each has distinct responsibility for different functional areas. E is focusing on Network server and F is responsible for software applications. They meet on a regular basis to keep each other inform on network maintenance schedules. They coordinate with each other for daily backup, software updates and security. Are they a team? – No, they are NOT a team because they have different jobs, work in different areas and it is not necessary for E and F to work together to achieve anything in common. They only have to “coordinate” with each other to make sure things work accordingly.

G and H are both software engineers, they work on a very large project with hundred engineers. Because it is too large, manager divided the project into several small groups. They do not know each others as they work in different groups but they know that someday, they will have to coordinate their functionalities together as they integrate their works into the final product. Are they a team? – No, their project is too big and they do not even know each other. However their groups within the larger project could function as “collaborative teams”.

X and Y and six other people work on a software development project. They have different skills but all of which are necessary to build the software product. They jointly commit to the same project goal and work very closely to deliver the software in four-week iterations as they are using Scrum – an agile method. They share goals, they are mutually accountable, and if they don’t work together, do not share information with each others, do not help each others, and do not learn from each other, they will NOT succeed and the project may fail. Are they a team? –Yes, definitely they are a team and teamwork is important for them to succeed together.

So, as a software manager, how do you organize people to work as a team?  Following are some advises:

1)     You must set up project goals and make sure that everybody on the project is committing to achieve that goals, as well as members mutually committing to help each other and sharing accountability.

2)     You must examine the skills needed to do the work and assign people to work according to their skills and experiences. People must understand their roles, responsibilities and accountability.

3)     You must analyze the work as some works that one person can complete from start to end but some works require several people to work together and integrate to create a coherent collective final product as their works depend on others’ work.

4)     You must have regular meeting to discuss project status, review works, and identify issues and risks among team members. They also need to share what have been accomplished and what have not and whether anybody needs help.

5)     You must set up mentoring system where senior or experienced people can help train and support the others.

Building a team doesn’t happen by accident. It must be planned and trained and your job as a manager will be different from the manager “a team” or manager “a group”. As many of you can see the different between a team sport such as soccer, and individual sport such as tennis. No soccer team ever wins anything if member only want to kick the ball. As a team sport, Soccer always need a coach who provides strategy, plan, and train their people to coordinate because they all share a common goal: To win the match. The same can be applied to software project.