Điều gì xảy ra khi dự án của bạn mất vài người then chốt?

Khó tìm được người phát triển phần mềm giỏi, đặc biệt khi họ làm việc tốt như một tổ. Ngay cả khi bạn tìm người thay thế được với đúng kĩ năng, họ có thể không làm việc tốt với tổ. Xung đột cá nhân là vấn đề thông thường trong mọi dự án phần mềm. Khi tổ dự án làm việc tốt với nhau, điều quan trọng là giữ họ cùng làm việc với nhau nhiều nhất có thể được.

Nhiều người quản lí không hiểu rằng khi mọi người rời bỏ công ti, họ cũng mang đi theo mình kĩ năng và tri thức. Bên cạnh kĩ năng kĩ thuật, họ cũng có tri thức về qui trình nghiệp vụ của công ti bạn và điều đó có thể là thảm hoạ nếu họ làm việc cho đối thủ cạnh tranh của bạn. Đây là những điều mà người quản lí phải xem xét nghiêm chỉnh vì sẽ tốn kém để tìm người thay thế và đào tạo họ. Vấn đề là: Làm sao bạn có thể tránh việc thuyên chuyển nhân viên và giữ cho các thành viên tổ ở lại trong một thời gian dài với công ti của bạn?

Dễ dàng kết luận rằng lí do mọi người ra đi là về tiền khi cách tốt nhất để có nhiều tiền hơn là đổi việc được trả lương tốt hơn. Tuy nhiên, khi tôi phỏng vấn hàng trăm người phát triển phần mềm, tiền KHÔNG PHẢI là lí do chính mà là môi trường làm việc và cách quản lí. Nếu người phát triển hài lòng với việc của họ và người quản lí của họ, họ sẽ không xem xét việc bỏ đi. Nếu không, họ sẽ bỏ đi đâu đó khác nơi có lương tương đương hay thậm chí kém hơn. Trừ phi bạn đang trả lương cho họ ít hơn nhiều so với giá trị thị trường, tôi nghĩ chúng ta nên loại bỏ yếu tố tiền là lí do chính cho mọi người bỏ đi.

Tôi tin cách tốt nhất để giữ người phát triển phần mềm hàng đầu ở lại là giúp họ thăng tiến nghề nghiệp qua đào tạo thêm. Người phát triển phần mềm thích học những điều mới để bắt kịp với thay đổi trong công nghiệp. Chẳng hạn, khi họ lần đầu tiên đi làm, họ hăm hở học bởi vì điều công nghiệp cung cấp là thách thức mới mà họ chưa bao giờ gặp trong trường. Họ học qui trình mới, công cụ mới, công nghệ mới, làm việc cùng bạn mới. Tuy nhiên, sau vài năm, họ trở nên quen thuộc với công việc, công cụ, qui trình cho nên môi trường làm việc trở thành thường lệ và đơn điệu. Không có thách thức mới, họ sẽ chán và có thể tìm cái gì đó khác để khám phá.

Là người quản lí, bạn nên để người phát triển biết rằng bạn quan tâm tới làm việc với họ trong thời gian dài và sẵn lòng giúp họ nhiều nhất có thể được. Bạn nên biết từng người phát triển một cách cá nhân và thấy mục đích nghề nghiệp và mong muốn của họ. Bạn nên hỏi họ muốn làm gì và họ muốn học gì vì từng cá thể đều khác. Tất nhiên, thách thức nào họ tìm kiếm và cái gì tạo động cơ cho họ có thể khác nhưng về toàn thể, bạn nên để họ nói cho bạn về ước muốn của họ. Bạn có thể thấy rằng một số người ưa chuộng làm việc trên dự án hiện có với các công cụ và qui trình quen thuộc nhưng những người khác ưa thích làm việc trên dự án mới với công nghệ mới. Cố giữ người phát triển của bạn làm việc trên những điều họ tận hưởng. Nếu họ muốn học cái gì đó mới, cung cấp đào tạo cho họ về công nghệ mới nhất, gửi họ theo các lớp kĩ thuật, xê mi na, và trả tiền cho đào tạo thêm xem như điều kiện rằng họ ở lại trong một thời gian. Bạn tôi người sở hữu một công ti phần mềm đã làm điều đó bằng hợp đồng cho mọi lớp học hay xê mi na mà công ti trả tiền, người phát triển phải ở lại thêm 6 tháng. Nếu họ bỏ đi, họ phải trả lại chi phí đào tạo. Bằng việc đầu tư vào giáo dục, cho người của mình công việc thách thức hơn, ông ấy có khả năng giữ tổ có động cơ và có kĩ năng rất cao.

Điều khác làm mọi người thoả mãn là thưởng cho họ bằng các vật dụng công nghệ. Bạn tôi cho người phát triển điện thoại di động mới mỗi năm, chừng nào họ còn ở lại với công ti, họ có thể giữ nó. Món quà năm nay là chiếc iPhone và ông ấy bảo tôi rằng chi phí cho điện thoại không là gì khi so với chi phí mất nhân viên kĩ năng cao. Khuyến khích này đi theo cùng đường làm hài lòng người phát triển và giữ cho môi trường làm việc có năng suất hơn.

Một trong các lí do mà mọi người bỏ đi là kiệt lực. Công việc phần mềm là tẻ nhạt và căng thẳng với nhiều cuộc họp, thay đổi kĩ thuật, lỗi, kiểm thử và kiểm thử nữa. Phần lớn người phát triển phần mềm làm việc hơn 8 giờ một ngày cho nên kiệt sức là vấn đề chính. Đôi khi, đổi việc để thoát khỏi căng thẳng là giải pháp. Là người quản lí, điều quan trọng là nuôi dưỡng người của bạn và giữ cho họ khỏi đi tới điểm kiệt lực. Cách tốt nhất để giữ môi trường làm việc lành mạnh là có hoạt động phụ để làm giảm nhẹ căng thẳng. Bạn tôi cho phép người phát triển chơi thể thao sau công việc hàng ngày. Ông ấy có bàn bóng bàn dựng đấy và có thi đấu giữa các công nhân, ông ấy cũng tổ chức các hoạt động xã hội như khiêu vũ, hát karaoke vào cuối tuần để giữ cho người phát triển thoải mái. Ông ấy bảo tôi rằng tổ có vui đùa cùng nhau rất giống như làm việc cùng nhau tốt. Khi họ tận hưởng làm việc cùng nhau và giúp đỡ lẫn nhau, năng suất tăng lên và tất nhiên, kinh doanh của ông ấy được lợi từ điều đó. Với thoả mãn việc làm cao trong các nhân viên, ông ấy không có thuyên chuyển nhân viên trong nhiều năm qua. Ông ấy tóm tắt công thức thành công của mình là: “Nhận diện người phát triển tốt, tìm ra điều họ muốn, trả lương họ tốt, giữ họ hạnh phúc, đào tạo họ về những điều mới, xây dựng cách làm việc tổ tốt và nuôi dưỡng họ như thành viên trong gia đình.” Đó là lí do tại sao công ti ông ấy là một trong những công ti phát triển nhanh nhất ở thung lũng Silicon ngày nay.

Tôi hi vọng bằng việc chia sẻ công thức thành công của ông ấy, một số trong các bạn có thể có khả năng tái tạo lại điều đó cho thành công của bạn. Nhớ rằng chính con người đóng góp cho công ti và mất người then chốt là cái gì đó bạn nên tránh bằng mọi giá.

—-English version—-

Keeping people

What will happen when your project lose a few key people? Good software developers are hard to find, especially when they work well as a team. Even when you find replaceable people with the right skills, they may not work well with the team. Personal conflicts is a common issue in every software project. When a project team works well with each others, it is important to keep them together as long as possible.

Many managers do not understand that when people leave the company, they also take their skills and knowledge with them. In addition to technical skills, they also have the knowledge about your company business processes and it could be a disaster if they work for your competitors. These are things that managers must seriously consider as it would be costly to find replacement and train them. The question is: How can you avoid employee turnover and keep team members to stay for a long time with your company?

It is easy to conclude that the reason people leave is about money as the best way to get more money is to change job for better pay. However, as I interviewed several hundreds software developers, money is NOT the main reason but the work environment and management. If developers are happy with their jobs and their managers, they will not consider leaving. If not, they will leave for equal or even less pay elsewhere. Unless you are paying them for much less than the market value, I think we should eliminate the money factor as the main reason for people to leave.

I believe the best way to keep top software developers to stay is to help them advancing their careers via additional trainings. Software developers like to learn new things to keep up with the change in the industry. For example, when they first come to work, they are eager to learn because what industry offers is new challenge that they never encounter in school. They learn new processes, new tools, new technology, working with new friends. However, after few years, they becomes familiar with the work, the tools, the process so working environment become a routine and monotonous. Without new challenge, they will be bored and maybe looking for something else to explore.

As managers, you should let developers know that you are interested in working with them for a long time and willing to help them as much as you can. You should know each developers individually and find out their career goals and desires. You should ask them what they want to do and what they want to learn as each person is different. Of course, what challenges they seek and what motivates them may differ but overall, you should let them tell you about their wishes. You may find out that some prefer to work on existing projects with familiar tools and process but others prefer to work on new project with new technologies. Try to keep your developers working on things they enjoy. If they want to learn something new, offer to train them on the latest technology, sending them to technical classes, seminars, and offer to pay for additional trainings as condition that they stay for a period of time. My friend who own a software company has it on contract that for every additional class or seminar that his company paid for, the developers should stay an additional 6 months. If they leave, they have to reimburse the training costs. By investing in educations, giving his people more challenging works he is able to keep a very highly skilled and motivated team.

Another thing that make people happy is reward them with technology gadgets. My friend gives his developers new mobile phone every year, as long as they stay with the company, they can keep it. This year the gift is an iPhone and he told me that the cost for the phone is nothing comparing to the cost of losing highly skilled employees. This incentive go a long way towards pleasing developers and keep the working environment more productive.

One of the reasons that people leave is burnout. Software work is tedious and stressful with many meetings, technical changes, errors, tests and more tests. Most software developers work more than 8 hours a day so burnout is a major issue. Sometime, change job to get away from stress is the solution. As managers, it is important to nurture your people and keep them from getting to the burnout point. The best way to keep a healthy work environment is having extra activities to relieve stress. My friend allows his developers to play sports after work everyday. He has ping pong tables set up and have tournaments among his workers, he also organizes social activities such as dancing, karaoke on week-end to keep his developers happy. He told me that a team that has fun together is much more likely to work together well. As they enjoy working with each other and help each other, the productivity improves and of course, his business benefits from it. With high job satisfaction among employees, he has no employee turnover in the past several years. He summarized his formula to success as: “Identify good developers, find out what they want, pay them well, keep them happy, train them on new things, build good teamwork and nurture them just like members of family”. That is why his company is one of the fastest growing company in Silicon Valley today.

I hope by sharing his formula for success, some of you may be able to replicate that to your success. Remember that it is the people who contribute to the company and losing key people is something you should avoid at all cost.