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á.

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.
Khi tôi làm việc tại Motorola vào cuối những năm 1980, Six Sigma chỉ được dùng bên trong công ti về cải tiến tấm nền, một lát mỏng vật liệu bán dẫn, trên đó các vi mạch được xây dựng lên. Qui trình chế tạo này là dễ sinh lỗi và tốn kém cho nên bằng việc áp dụng các cách đo (Six Sigma là 3.4 lỗi trên một triệu cơ hội) chúng tôi có thể giảm số các khiếm khuyết tương ứng. Tuy nhiên, những người khác đã thích ứng kĩ thuật này và thuật ngữ này vào trong các khu vực khác như kinh doanh, tài chính, phần mềm và qua thời gian, Six Sigma đã tiến hoá thành nhiều thứ với nhiều người.
Ngày nay, theo đào tạo của Motorola, Six Sigma là độ đo, phương pháp luận, và hệ thống quản lí.
Theo quan điểm độ đo, Six Sigma được dùng như thang cho các mức độ ‘tốt’ hay chất lượng. Một Six Sigma bằng 3.4 khiếm khuyết trên một triệu cơ hội (DPMO). Thuật ngữ ‘Six sigma’ bắt nguồn từ thuật ngữ toán học và thống kê như đơn vị đo theo biến thiên.
Theo quan điểm phương pháp luận, Six Sigma có thể được dùng như việc cải tiến doanh nghiệp hội tụ vào các qui trình tổ chức bởi: 1) Hiểu và quản lí yêu cầu khách hàng, 2) Gióng thẳng các qui trình nghiệp vụ then chốt để đạt tới các yêu cầu đó, 3) Sử dụng phân tích dữ liệu nghiêm ngặt để tối thiểu hoá biến thiên trong các qui trình đó, 4) Dẫn lái cải tiến nhanh và bền vững cho các qui trình doanh nghiệp. Để thực hiện các qui trình này, tổ chức phải áp dụng mô hình cải tiến có tên là DMAIC là chữ viết tắt cho: Define opportunity (xác định cơ hội); Measure performance (Đo hiệu năng); Analyze opportunity (Phân tích cơ hội); Improve performance (Cải tiến hiệu năng); và Control performance (Kierm soát hiệu năng)..
Theo quan điểm quản lí: Six Sigma chủ trương rằng các độ đo và phương pháp luận là không đủ để làm cải tiến qua thời gian. Điều quan trọng hơn là đối xử Six Sigma cũng là hệ thống quản lí để thực thi chiến lược doanh nghiệp bởi 1) Gióng thẳng chiến lược doanh nghiệp với nỗ lực cải tiến mấu chốt; 2) Động viên tổ tấn công vào các dự án có tác động cao; 3) Tăng tốc kết quả kinh doanh được cải tiến; 4) Giám quản nỗ lực để đảm bảo cải tiến được bền vững.
Về căn bản, Motorola nhấn mạnh rằng bạn phải dùng tất cả ba quan điểm này để đạt tới cải tiến bền vững qua thời gian. Các độ đo qui trình và phương pháp luận của Six Sigma phải được áp dụng cho các cơ hội cải tiến trực tiếp có móc nối tới chiến lược tổ chức. Để thực hiện phương pháp luận Six Sigma, tổ chức phải tạo ra các tổ với người lãnh đạo tổ. Những người này cần được đào tạo về phương pháp Six Sigma (Đây là nơi nhiều nhà tư vấn tới và đó là lí do tại sao Six Sigma trở thành rất phổ biến). Tổ phải biết cách dùng các độ đo và công cụ cải tiến (nhiều đào tạo hơn và nhiều công cụ hơn), cũng như biết cách trao đổi với khách hàng bên trong, bên ngoài, và nhà cung cấp vì họ là một phần của các qui trình mấu chốt của dây chuyền chuyển giao của tổ chức. Sau một số đào tạo, thành viên tổ có thể đạt tới hạng nào đó như Đai Đen, Đai Lục v.v. được lấy theo hệ thống đẳng cấp của Karate, kí hiệu cho những người có phẩm chất khác nhau, và tri thức chuyên gia. Lãnh đạo tổ Six Sigma (Đai Đen) biết cách dùng công cụ đo tại từng pha của cải tiến để xác định, đo, phân tích và kiểm soát biến thiên trong chất lượng qui trình, và để quản lí người, tổ và trao đổi.
Tôi đã trải qua việc dùng Six Sigma trong qui trình chế tạo điện tử khi tôi làm việc tại Motorola. Tuy nhiên, ngày nay có nhiều giải thích khác nhau thế về ứng dụng của Six Sigma vào các khu vực khác và khó làm quan sát khách quan để xác định cách nó làm việc. Chẳng hạn, để đạt tới Six Sigma trong phần mềm, điều đó có nghĩa sản phẩm phần mềm phải đạt tới không lớn hơn 3.4 khiếm khuyết trên một triệu dòng mã không? Tôi đã thấy nhiều công ti phần mềm tuyên bố đạt tới “Six Sigma” nhưng tôi không biết nó có nghĩa gì cho nên tôi thừa nhận dốt nát của mình trong khu vực này và để các chuyên gia giải thích nó.

—-English version—-
Six Sigma
Six Sigma is one of the most popular quality management methodology used in the industry today. It started in 1986 as a statistically-based method to reduce variation in electronic manufacturing processes at Motorola. Originally, it is based on the “Total Quality Management” concept and adapted to the electronic industry but overtime, it is being “advertised” as a lot of different things with different meanings depends on who is explaining it.
When I worked at Motorola in the late 1980s, Six Sigma is only used within the company on the improvement of wafer, a thin slice of semiconductor material, upon which microcircuits are constructed. This manufacturing process is error-prone and expensive so by applying measurements (Six Sigma is 3.4 defects per one million opportunities) we can reduce the number of defects accordingly. However, other people had adapted the technique and terms into other areas such as business, finance, software and overtime, Six Sigma has evolved into many things to many people.
Today, according to Motorola training, Six Sigma is a metric, a methodology, and a management system.
From the metric view, Six Sigma is used as a scale for levels of ‘goodness’ or quality. A Six Sigma equates to 3.4 defects per one million opportunities (DPMO). The term ‘Six sigma’ come from mathematic and statistic term as a unit of measurement in variation.
From the methodology view, Six Sigma can be used as a business improvement that focuses an organization processes by: 1) Understanding and managing customer requirements, 2) Aligning key business processes to achieve those requirements, 3) Utilizing rigorous data analysis to minimize variation in those processes, 4) Driving rapid and sustainable improvement to business processes. To implement these processes, organization must apply the improvement model called DMAIC which is the acronym for: Define opportunity; Measure performance; Analyze opportunity; Improve performance; and Control performance..
From the management view: Six Sigma advocates that metrics and methodology is not enough to make improvements over time. It is more important to treat Six Sigma also as a management system for executing business strategy by 1) Align business strategy to critical improvement efforts; 2) Mobilize teams to attack high impact projects; 3) Accelerate improved business results; 4) Govern efforts to ensure improvements are sustained.
Basically, Motorola emphasizes that you must use all three views to achieve improvements that are sustainable over time. Six Sigma’s process metrics and methodology must be applied to improvement opportunities that are directly linked to organizational strategy. To implement Six Sigma methodology, organization must create teams with team leaders. These people need to be trained in Six Sigma’s methods (This is where many consultants come in and that is why Six Sigma become very popular). The team must know how to use metrics and improvement tools (More training and more tools), as well as knowing how to communicate with internal, external customers and suppliers as they are part of the critical processes of the organization’s delivery chains. After several trainings, team members may achieve certain ranks such as Black Belts, Green Belts etc. adapted from the Karate system which denote people with different qualifications, and expertise. Six Sigma team leaders (Black Belts) know how to use measurement tools at each phase of the improvement to define, measure, analyze and control variation in process quality, and to manage people, teams and communications.
I have experienced the use of Six Sigma in electronic manufacturing process when I worked at Motorola. However, today there are so many different explanations on the application of Six Sigma into other areas and it is difficult to make a objective observation to determine how it works. For example, to achieve Six Sigma in software, does it means software product must achieve no more than 3.4 defects per million line of code? I have seen many software companies claimed on achieve “Six Sigma” but I do not know what it means so I admit my ignorance in this area and let the expert explain it.