Làm việc tổ là một trong những yếu tố quan trọng nhất trong dự án phần mềm. Ngay cả những người cùng làm việc với nhau để hoàn thành một mục đích dự án chung vẫn có thể bất đồng với nhau về phương cách hoàn thành mục tiêu này.

Chẳng hạn, người kĩ sư phần mềm và người đảm bảo chất lượng phẩn mềm (SQA) có thể không đồng ý về qui tri trình được yêu cầu để đạt tới mục đích dự án. Người SQA muốn người kĩ sư phần mềm tuân theo qui trình đã được xác định của tổ chức nhưng người kĩ sư phần mềm ưa thích qui trình khác mà anh ta nghĩ là tốt. Họ cả hai đều nghĩ vì dự án thành công trong đầu nhưng không đồng ý về cách tiếp cận. Sự bất đồng này sẽ tạo ra xung đột mà người quản lí dự án phải giải quyết.

Để chuyển giao dự án đúng thời gian, người lập trình muốn kiểm tra nhiều mô đun để cho làm việc nhưng bỏ qua hệ thống kiểm soát phiên bản và không muốn người quản lí cấu hình biết về điều đó. Lí do của anh ta là qui trình quản lí cấu hình mất thời gian, yêu cầu một số công việc giấy tờ và sự chấp thuận của ban thay đổi. Logic của anh ta là: “Vài dòng mã thay đổi chẳng hại gì.” Tất nhiên, người quản lí cấu hình không vui vẻ gì bởi vì ai đó đã bỏ qua thẩm quyền của anh ta. Họ bắt đầu tranh cãi cho dù cả hai đều muốn dự án thành công cho nên người quản lí dự án phải bước vào và giải quyết vấn đề này.

Bởi vì dự án đã tụt sau lịch, kiến trúc sư phần mềm muốn sửa một thuật toán bị lỗi nhanh chóng mà không thay đổi tài liệu và không phải xin chấp thuận từ người lãnh đạo kĩ thuật. Người đó chỉ nói với người kiểm thử để người này có thể sửa kiểm thử và hi vọng rằng mọi thứ sẽ ổn chung cuộc. Khi người lãnh đạo kĩ thuật tìm ra, người này rất bực, khi biết bao nhiêu rắc rối có thể gây ra trong pha bảo trì. Cho dù họ tất cả đều muốn chuyển giao sản phẩm chất lượng cho khách hàng nhưng họ không thể đồng ý được về giải pháp. Người quản lí dự án phải vào và giải quyết xung đột này.

Trong khi giải quyết khác biệt giữa các thành viên tổ, người quản lí dự án phải hiểu rằng từng người đều tiếp cận tới tình huống từ các cảnh quan khác nhau và đang cố gắng thoả mãn các mối quan tâm khác nhau. Thay vì lấy quan điểm địa vị, như ra lệnh “Anh phải tuân theo qui trình”; “Anh phải đổi mã trở lại” hay “Anh phải để anh ta yên vì chúng ta đã trễ rồi,” người quản lí dự án giỏi sẽ cố gắng hiểu mối quan tâm của từng thành viên tổ và đi tới giải pháp mà cả hai đều thoả mãn. Tại sao? Bởi vì xung đột tổ không phải là tình huống thắng-thua. Nếu họ không giải quyết được những khác biệt của mình, dự án sẽ thất bại và mọi người đều thua.

Bất kì giải quyết xung đột nào cũng phải bắt đầu bằng xem xét phương án của từng thành viên tổ nếu họ không thể đạt tới thoả thuận với nhau. Chừng nào mà một trong hai người còn cảm thấy rằng họ có thể đạt tới các phương án cho bản thân mình mà không cần thương lượng với người kia, họ không có động cơ nói với nhau. Mặt khác, khi họ thảo luận về những khác biệt của mình, họ sẽ thấy ra mối quan tâm của nhau, và đi tới giải pháp chấp nhận được mà tốt hơn là không thảo luận chút nào. Để giúp cho thảo luận và giải quyết vấn đề, người quản lí dự án phải động viên từng thành viên tổ nhìn vào mục đích và mục tiêu của dự án và thảo luận cách đạt tới chúng mà không tránh cứ người nào. Cả hai bên đều phải có cơ hội để diễn đạt cảnh quan của mình theo logic chứ không chứa nhiều tình cảm. Đây là lí do tại sao người quản lí dự án phải có kĩ năng nghe tốt bởi vì mọi người đều có cái gì đó để nói.

Thành công then chốt của bất kì thảo luận nào giữa các thành viên tổ liên quan tới xung đột tổ là khả năng của họ trong trao đổi với nhau. Đó là lí do tại sao người quản lí dự án cũng phải có kĩ năng tạo điều kiện tốt để cho phép mọi người nói một cách tự do nhưng KHÔNG bực bội. Mọi thành viên tổ đều phải có khả năng diễn đạt mối quan tâm của mình, và lắng nghe mối quan tâm của người kia và hiểu rằng họ tất cả đều có cùng mục tiêu bằng việc làm cho dự án thành công. Giải quyết xung đột yêu cầu hiểu biết sâu sắc dựa trên lắng nghe cẩn thận lẫn nhau mà không thiên vị gì và với tâm trí cởi mở. Thỉnh thoảng mọi người bị cố định vào cách diễn đạt quan điểm của họ và quên mất không lắng nghe người khác. Trong khi giải quyết sự khác biệt của họ tương ứng qua qui trình dựa trên mối quan tâm chung, không chỉ thành viên tổ có thể hoàn thành dự án thành công, mà họ cũng còn xây dựng mối quan hệ làm việc tốt hơn trên dự án và trong tươnglai. Đó là lí do tại sao việc có khả năng giải quyết sự khác biệt giữa các thành viên tổ là kĩ năng bản chất mà mọi người quản lí dự án phải có.

—-English version—-

Conflict resolution

Teamwork is one of the most important factors in software project. Even people working together to accomplish a common project goal may disagree with each other over the means to accomplishing the objective. For example, a software engineer and software quality assurance (SQA) person may not agree on the process required to achieve the project goal. The SQA person wants the software engineer to follow the organization’s defined process but the software engineer prefers a different process that he thinks would be better. They both have the success of the project in mind but do not agree on the approach. This disagreement will create conflict that the project manager must solve.

To deliver a project on time, a programmer wants to check out several modules to work on but ignores the version control system and does not want the Configuration management person to know about it. His reason is the configuration process takes time, requires some paperwork and approval of the change board. His logic is: “Few lines of code change do not harm anything”. Of course, the Configuration management person is not happy because somebody has bypassed his authority. They begin to argue even both want the project to be successful so the project manager must step in and resolve this issue.

Because the project is already behind schedule, an software architect wants to correct a defective algorithms quickly without changing the documentation and without getting approval from the Technical Leader. He only tells the tester so she can fix her test case and hopes that everything will be fine in the end. When the Technical Leader finds out, he is very angry, knowing how much trouble it can causes during the maintenance phase. Even they all want to deliver a quality product to customers but they cannot agree on the solution. The project manager must come and solve this conflict.

In resolving the differences between team members, project manager must understand that each person is approaching the situation from a different perspective and is trying to satisfy different interests. Rather than take positional views, such as giving order “You must follow the process”; “You should change the code back” or “You should leave him alone because we are already late,” a good project manager would try to understand the interests of each team member and come up with a solution that both would be satisfied. Why? Because team conflict is not a win-lose situation. If they fail to resolve their differences, the project will fail and everybody will lose.

Any conflict resolution should start by considering each team member’s alternatives if they cannot reach an agreement with each other. As long as either person feels that they can achieve alternatives for themselves without negotiating with the other, they have no motivation to talk to each other. On the other hand, as they discuss their differences, they will find out each other’s interests, and come up with an acceptable resolution that are better than no-discussion at all. To help in discussing and resolving the issues, the project manager should encourage each team member to look at the project’s goals and objectives and discuss how to achieve them without blaming anyone. Both sides must have a chance to express their perspectives in a logical without much emotional. This is why project manager must have good listening skill because everyone would have something to say.

The key success of any discussion between team members regarding team conflict is their ability to communicate with each other. That is why project manager must also have good facilitate skill to allow people to talk freely but NOT angrily. Every team member must be able to express their interests, and listen to the interests of the other and understand that they all have the same objective by making the project successful. Team conflict resolution requires a deep understanding based on careful listening to each other without any biases and with an open mind. Sometime people are so fixated on expressing their views and forget to listen to the other. In working out their differences accordingly through a common interest-based process, not only the team member can complete the project successfully, but they also build a better working relationship on the project and in the future. That is why be able to resolving the differences between team members is an essential skills that every project manager must have.