Thành công của mọi dự án công nghệ thông tin (CNTT) phụ thuộc vào nỗ lực của các thành viên tổ dự án.

Điều các thành viên tổ muốn là được đánh giá đúng về công việc họ làm. Nếu người quản lí dự án CNTT không đánh giá đúng họ, nhiều người sẽ cảm thấy dường như họ bị “bỏ rơi” và mọi sự có thể đi tới tồi tệ về sau. Người quản lí tốt bao giờ cũng giám sát tiến bộ của tổ và ca ngợi họ về công việc tốt của họ. Tất nhiên, người đó phải trung thực vì hoạt động này không thể bị ép buộc, nhưng tới từ mối quan hệ thực với tổ.

Phần thưởng như tiền thưởng hay nâng lương là tốt, tuy nhiên một lời đơn giản “Cám ơn bạn” hay “Bạn đang làm một việc tốt” cũng là cần thiết. Vấn đề là nhiều người quản lí không biết cách nói các câu đơn giản này. Vài tháng trước, tôi dạy môn quản lí cho người quản lí phần mềm, tôi hỏi: “Mỗi tuần các bạn cám ơn bao nhiêu lần cho những người làm việc tốt?” Rất ít người giơ tay. Một người quản lí nói: “Họ đã được trả lương để làm việc của họ; họ đáng phải cám ơn chúng tôi vì họ có việc làm. Sao chúng tôi phải cám ơn họ?” Đây là thái độ chung trong những người quản lí kiêu ngạo và kém kinh nghiệm. Cho nên tôi hỏi câu hỏi khác: “Điều gì sẽ xảy ra khi dự án thất bại? Người chủ công ti sẽ đuổi người quản lí dự án hay toàn thể tổ dự án?” Tất nhiên, không công ti nào sẽ đuổi mọi công nhân và giữ lại người quản lí. Chừng nào người quản lí dự án chưa nhận ra chân lí: “Thành công của dự án phụ thuộc vào nỗ lực của tổ dự án” và sẵn lòng thay đổi thái độ của họ, họ sẽ không tiến bộ thêm được gì. Những người quản lí thành công và có kinh nghiệm nhất đều hiểu điều này và họ có thái độ khác. Họ nói: “Tôi sẽ rất cẩn thận về bất kì phê bình nào nhưng chưa bao giờ ngần ngại trong việc ca ngợi tổ của tôi.”

Chất liệu then chốt để xây dựng “tổ dự án hiệu quả” là: Ý thức về chiều hướng; tin cậy và hỗ trợ; trao đổi tốt giữa các thành viên; và thừa nhận bên trong tổ. Nếu mọi thành viên đều có chung viễn kiến, tất cả họ đi theo cùng hướng. Nếu họ tin cậy và sẵn lòng hỗ trợ lẫn nhau thì sẽ không có xung đột giữa các thành viên tổ. Nếu họ thường xuyên chia sẻ thông tin với nhau thì mọi người biết tiến bộ của nhau và cách dự án làm việc. Nếu họ nhận được thừa nhận giữa bản thân họ thì họ được khuyến khích để đi tới cùng nhau. Tất cả những điều này tuỳ thuộc vào kĩ năng của người quản lí dự án. Người quản lí dự án phải biết cách đặt viễn kiến, khuyến khích tổ và động viên họ làm việc cùng nhau hướng tới mục đích dự án.

Khuyến khích của tổ là ý chí hành động cùng nhau. Tất nhiên, mọi người được khuyến khích bởi những điều khác nhau. Một số người được khuyến khích bởi cảm giác hoàn thành, người khác bởi thoả mãn với việc làm. Với phần lớn những người phát triển phần mềm, họ thoả mãn với công việc chất lượng và năng suất cao hơn. Khuyến khích không nên bị để lại cho duy nhất người quản lí dự án. Nó là trách nhiệm của mọi người để khuyến khích lẫn nhau. Không người phát triển nào muốn làm công việc chất lượng thấp nhưng họ cần đủ thời gian để chắc công việc của họ có chất lượng cao. Chính người quản lí dự án hỗ trợ cho họ đạt tới công việc chất lượng bằng việc cho phép họ có đủ thời gian. Đây là lí do tại sao người quản lí dự án phải ước lượng lịch biểu dự án đúng đắn và không nhân nhượng với sức ép từ khách hàng hay người quản lí cấp cao. Người quản lí dự án giỏi không bao giờ đặt lịch biểu một mình mà bao giờ cũng làm việc cùng các thành viên tổ để cho lịch biểu cuối cùng là quyết định tập thể của tổ. Điều đó là quan trọng để người quản lí dự án lắng nghe tổ và đề nghị của họ. Cùng nhau, họ nên thảo luận các tuỳ chọn đa dạng nhưng đến cuối đó nên là sự đồng ý và quyết tâm của tổ trong việc hỗ trợ cho lịch biểu cuối cùng.

Ngay cả khi tổ dự án làm việc tốt, việc bổ sung thành viên mới cũng có thể ngắt quãng sự năng động tổ. Đó là lí do tại sao người quản lí dự án giỏi bao giờ cũng yêu cầu tổ tham gia vào việc chọn thành viên mới cho tổ và không ra quyết định một mình. Chính quyết định tập thể của tổ về người họ muốn cho tham dự với họ và cho phép có thời gian làm cho thành viên mới cảm thấy được đón chào với tổ. Việc của người quản lí dự án là duy trì cân bằng trong dự án bằng việc tin cậy tổ làm việc của họ. Quá nhiều giám sát có thể làm cho thành viên cảm thấy không thoải mái nhưng ít giám sát làm cho tổ cảm thấy họ bị bỏ rơi. Những điều nhỏ bé như ngồi thường xuyên với các thành viên tổ để thảo luận về tiến bộ của dự án là tốt hơn nhiều so với việc yêu cầu từng thành viên tổ lên phòng của người quản lí để báo cáo về tiến bộ của họ. Nó chỉ ra rằng người quản lí thân thiện, chăm sóc tới họ như một phần của tổ chứ không phải là ai đó bên ngoài tổ. Mọi người quản lí dự án đều phải biểu lộ rằng mình có tham gia vào dự án hơn là bị bỏ ra khỏi nó. Đây là khía cạnh quan trọng thế vì người quản lí phải thường xuyên suy nghĩ về cách các cá nhân, cũng như toàn tổ, đã đóng góp cho dự án và công ti.

Lương cho các thành viên tổ nên phản ánh kĩ năng của họ và giá trị mà họ gia tăng cho công ti. Người quản lí dự án phải đặt con đường nghề nghiệp cho mọi thành viên tổ dựa trên kĩ năng và kinh nghiệm của họ. Điều này là bản chất bởi vì nếu các thành viên tổ biết điều gì sẽ giúp cho họ thăng tiến, họ sẽ ở lại lâu hơn thay vì đổi việc sang công ti khác. Không may ít công ti đã nhận diện rõ ràng con đường nghề nghiệp cho người phát triển của họ. Nhiều người được đề bạt dựa trên mối quan hệ chứ không phải là kĩ năng và kinh nghiệm của họ. Nhiều người được đề bạt vào cấp quản lí mà không có đào tạo đúng và ý thức về hoàn thành. Đây là vấn đề chính tại sao nhiều dự án thất bại, chúng đã không thất bại vì vấn đề kĩ thuật mà hầu hết vì sự bất tài của người quản lí.

Về căn bản trong hầu hết các công ti CNTT, những người mới tốt nghiệp CNTT có thể bắt đầu như người kiểm thử để học thêm về cách phần mềm được phát triển trong công ti. Tuỳ theo số dự án và thời gian để thu được kinh nghiệm, họ sẽ được đề bạt thành người kiểm thử cấp cao (nếu họ muốn là người kiểm thử chuyên nghiệp) hay người phát triển tập sự (nếu họ muốn làm lập trình). Qua thời gian, người phát triển tập sự nên được đề bạt lên người phát triển cấp cao rồi người lãnh đạo kĩ thuật. Với từng vị trí, lương phải được điều chỉnh tương ứng để cho mọi người cảm thấy rằng họ gia tăng giá trị cho công ti cũng như đóng góp cho thành công kinh doanh của công ti. Chính việc của người quản lí dự án là nhận diện những người tiềm năng để đề bạt, giúp họ trở thành chuyên nghiệp bằng việc cung cấp cho họ cơ hội để thăng tiến sự phát triển nghề nghiệp của họ.

Con đường nghề nghiệp kĩ thuật là rất đơn giản. Nó thường dựa trên cảnh quan ba chiều: Chiều cao hay tăng trưởng chức năng. Chiều ngang hay khác biệt chức chức, và chiều sâu hay tri thức và kĩ năng. Tăng trưởng chức năng ngụ ý nghề nghiệp và nhân viên có thể tiến từ vị trí này lên vị trí cao hơn trong cùng lĩnh vực. Chẳng hạn: người kiểm thử tập sự tới người kiểm thử cấp cao rồi người quản lí kiểm thử. Khác biệt chức năng ngụ ý nghề nghiệp và nhân viên có thể tiến từ khu vực này sang khu vực khác. Chẳng hạn: người kiểm thử sang người phát triển rồi đảm bảo chất lượng, hay người quản lí dự án. Chiều thứ ba của tri thức và kĩ năng ngụ ý chuyên môn hoá nhiều hơn thành các chuyên gia chuyên nghiệp. Chẳng hạn: Người quản lí kiểm thử tiến sang người dạy kiểm thử, rồi nhà tư vấn kiểm thử. Người phát triển sang người thiết kế, kiến trúc sư, và rồi người lãnh đạo kĩ thuật. Kiến trúc sư phần mềm sang kiến trúc sư hệ thống và kiến trúc sư trưởng rồi đến kĩ sư trưởng. Người quản lí dự án sang người quản lí tập dự án (nhiều dự án) rồi người quản lí chương trình, rồi giám đốc CNTT.

Để xây dựng sản phẩm và dịch vụ phần mềm chất lượng tốt, người quản lí cấp cao phải dành thời gian phát triển người riêng của họ bên trong công ti; đánh giá đúng đóng góp của họ và cung cấp cho họ con đường nghề nghiệp tốt. Đó là cách tốt nhất và cách duy nhất để phát triển công ti.

—-English version—-

Succesful IT Manager

The success of every Information Technology (IT) project is depending on the efforts of project team members. What team members want is to be appreciated for the works they do. If IT project manager does not appreciate them, many would feel as though they are ‘abandoned’ and things can go bad afterward. A good manager always monitors the team’s progress and praises them for their good works. Of course, he has to be honest because this activity cannot be forced, but come from a genuine relationship with the team.

Reward such as bonus or raise in salary are good, however a simple “Thank you” or “You are doing a good job” is also necessary. The issue is many managers do not know how to say these simple phrases. Few months ago, I taught a management course for software managers, I asked: “How many time each week do you thank your people for doing good jobs?” Very few people raise their hands. One manager said: “They got paid to do their jobs; they should thank us because they had jobs. Why do we have to thank them?” This is the common attitude among arrogant and less experienced managers. So I asked another question: “What will happen when a project failed? Would the company owner fire the project manager or the entire project team?” Of course, no company would fire all workers and keep the managers. Unless project managers realize the truth: “The success of a project is depending on the efforts of the project team” and willing to change their attitude, they will not advance any further. Most successful and experienced managers understand this and they have different attitude. They said: “I would be very careful of any criticism but never hesitate in praising my team.”

The key ingredients to build an “effective project team” are: Sense of direction; trust and support; good communication among members; and recognition within the team. If all members share the same vision, they all move toward the same direction. If they trust and willing to support each other then there will not be any conflicts among team members. If they frequently share information with each other then everybody know each other’s progress and how the project is working. If they receive recognitions among themselves then they are motivated to move forward together. All of these things depend on the skills of the project manager. A project manager must know how to set vision, motivate the team and encourage them to work together toward the project goals.

Team’s motivation is the will to act together. Of course, people are motivated by different things. Some people are motivated by sense of accomplishment, other by job satisfaction. For most software developers, they are quality work and higher productivity. Motivation should not be left to only the project manager. It is everyone’s responsibility to motivate each other. No developer wants to do low quality work but they need enough time to make sure their works are of high quality. It is the project manager to support them to achieve their quality works by allowing them to have enough time. This is why project manager must estimate project schedule correctly and does not yield to pressure from customers or senior managers. A good project manager never set schedule alone but always works with team members so the final schedule is the team’s collective decision. It is important, for project manager to listen to the team and their recommendations. Together, they should discuss various options but in the end it should be the team’s agreement and commitment to support the final schedule.

Even when the project team is working well, adding new members could disrupt the team dynamics. That is why a good project manager always asks the team to participate in selecting new members for the team and does not make the sole decision. It is the team’s collective decision on whom do they want to join them and allow time for the new member to feel welcome to the team. The Project manager’s job is to maintain a balance in the project by trust the team to do their works. Too much monitoring may make members feel uncomfortable but less monitoring also make the team feels like they are abandoned. Small things like sitting down often with team members to discuss project’s progress is much better than asking each member to go to the manager’s office to make report on their progress. It shows that the manager is friendly, care for them and as part of the team not someone outside the team. Every project manager must show that he is involved in the project rather than removed from it. This is such an important aspect because manager must constantly reflect on how individuals, as well as the whole team, have contributed to the project and the company.

Salaries for team members should reflect their skill and the value that they add to the company. Project manager must set career paths for all team members based on their skills and experiences. This is essential because if team members know what would help them to advance, they will stay longer rather than change job to another company. Unfortunately few companies have identified a clearly defined career path for their developers. Many people are promoted based on the relationship rather than their skills and experienced. Many people are promoted into management without proper trainings and a sense of accomplishment. This is a major issue why so many projects failed, they did not fail because the technical issues but mostly on the incompetent of the managers.

Basically in most IT companies, newly IT graduates could start as testers to learn more about the way software is developed in the company. Depend on the number of projects and time to gain experience; they will get promoted to senior testers (If they want to be professional testers) or junior developer (If they want to do programming). Over time, junior developers should be promoted to senior developers then technical leaders. For each position, salary must be adjusted accordingly so people feel that they are adding value to the company as well as contributed to company’s business success. It is the job of the project manager to identify potential people for promotion, to help them to become professional by providing them opportunity to advance their career’s growth.

A technical career path is very simple. It is usually based on a three-dimension perspective: Height or functional growth. Width or Functional differentiation, and Depth or knowledge and skills. Functional growth implies the career an employee can make from one position to higher position in the same area. For example: junior tester to senior tester then test manager. Functional differentiation implies the career an employee can make from one area to another area. For example: tester to developer then to quality assurance, or project manager. The third dimension of knowledge and skills implies a much more specialize into professional experts. For example: Test manager to Test instructor, then Test consultant. Developer to Designer, Architect, then Technical Leader. Software architect to System architect and Chief Architect then Chief Engineer. Project manager to Portfolios manager (More than one project) then program manager then IT Director.

In order to build good quality software products and services, senior managers must spend time developing their own people inside the company; appreciate their contributing and providing them with a good career path. That is the best and only way to grow the company.