Trong hai mươi năm qua, các nước phương tây đã khoán ngoài phần mềm “không thiết yếu” cho các nước có chi phí thấp để tiết kiệm tiền. Phần mềm “không thiết yếu” chủ yếu là “hệ thống phần mềm thừa tự” đã được phát triển từ nhiều năm trước nhưng cần một số thay đổi và lí do cho khoán ngoài là hạ thấp hơn chi phí của bảo trì phần mềm. Ngày nay do thiếu hụt công nhân công nghệ thông tin trên khắp thế giới, thị trường khoán ngoài đã thay đổi. Bên cạnh các hệ thống thừa tự, các công ti đang khoán ngoài việc phát triển phần mềm mới vì họ không có đủ công nhân để làm việc trên chúng. Tuy nhiên với công việc phần mềm mới, các kĩ năng đang trở thành yếu tố then chốt trong chọn lựa nước nào để khoán ngoài.

Với phát triển phần mềm mới, các công ti đang trao cho những nhà cung cấp làm khoán ngoài toàn bộ dự án phần mềm thay vì các mảnh nhỏ như viết mã và kiểm thử. Để làm điều đó các nhà cung cấp làm khoán ngoài phải có đủ người quản lí dự án phần mềm có kĩ năng, kĩ sư yêu cầu, người quản lí cấu hình và công nhân đảm bảo chất lượng cũng như người lập trình và người kiểm thử. Đây là lí do tại sao nhiều nhà cung cấp làm khoán ngoài thất bại vì họ không có đủ người với những kĩ năng này. Cho dù họ có những người này, nhiều dự án vẫn thất bại và tỉ lệ hỏng cao đã làm cho việc làm khoán ngoài mới thành rủi ro hơn cho khách hàng.

Trong quá khứ, các công ti phương tây đã đánh giá các nhà cung cấp làm khoán ngoài phần lớn dựa trên các kĩ năng lập trình và kiểm thử trước khi trao hợp đồng. Điều đó thường được thực hiện trên cơ sở “công ti sang công ti” dựa trên các chuẩn nào đó như CMMI hay ISO9000 v.v. Ngày nay qui trình trao hợp đồng có thay đổi sang cách nhìn rộng hơn về kiểm điểm đào tạo giáo dục của công nhân. Nếu đào tạo không có công nghệ cập nhật để tiến hành toàn thể dự án CNTT, quyết định là KHÔNG làm kinh doanh ở đó. Vì tỉ lệ thất bại dự án khoán ngoài đã tăng lên nhanh chóng trong một số nước và khách hàng bắt đầu tìm các điểm đến mới, thị trường đang thay đổi nhanh chóng. Một quan chức điều hành giải thích: “Phần lớn các hệ thống thừa tự đã làm việc; nếu thay đổi không được thực hiện đúng nó có tác động nhỏ lên kinh doanh. Chúng tôi chỉ cần thời gian để sửa và với chi phí thấp hơn của nhà cung cấp làm khoán ngoài, chúng tôi có thể dung thứ được điều đó. Tuy nhiên nếu một dự án mới mà chúng tôi cần lại không làm việc, điều đó sẽ tác động lớn tới kinh doanh của chúng tôi cho nên chúng tôi phải chọn lựa các nhà cung cấp làm khoán ngoài thật cẩn thận. Chúng tôi không thể nhìn vào một công ti với những kĩ năng nào đó vì con người thay đổi và có thể không còn ở đó, chúng tôi phải nhìn vào toàn thể giáo dục và đào tạo để chắc rằng có đủ công nhân có kĩ năng ở chỗ đó để giảm rủi ro. Phần lớn các nước đều có nhiều người lập trình và kiểm thử nhưng điều chúng tôi tìm cho dự án mới của chúng tôi là những kĩ năng chuyên sâu trong di động, tính toán mây, big data, ứng dụng sức khoẻ v.v. những kĩ năng này họ không có cho nên chúng tôi phải tìm các điểm đến mới. Chẳng bao lâu các hệ thống thừa tự sẽ được thay thế bởi hệ thống mới hơn cho nên khối lượng bảo trì cho hệ thống thừa tự sẽ ít đi nhiều; thị trường khoán ngoài truyền thống cho viết mã và kiểm thử không còn phù hợp trong thời thay đổi nhanh này vì công nghệ đang thay đổi nhanh. Thị trường làm khoán ngoài tương lai đang việc phát triển phần mềm mới trong công nghệ chuyên sâu và thị trường khoán ngoài sẽ thay đổi nữa.”

Mặc dầu việc làm khoán ngoài toàn thể phát triển phần mềm đang tăng lên nhưng phần lớn các công ti vẫn còn ngần ngại khoán ngoài các dự án mới. Họ lo nghĩ nếu họ phải phụ thuộc vào các nhà cung cấp làm khoán ngoài và kết quả không thoả mãn thì nọ có thể chịu rủi ro cao. Để cho chắc rằng họ sẽ có được kết quả tốt nhất, các công ti đã lấy các bước cần thiết để đảm bảo việc thực hiện đúng các dự án của họ bằng việc lựa chọn cẩn thận các nước có hệ thống giáo dục cập nhật nhất mà sánh được với giáo dục của họ và có đủ tri thức chuyên gia để phát triển các dự án của họ một cách đúng đắn. Một người quản lí giải thích: “Trong quá khứ, mọi sự chúng tôi tìm là chi phí nhưng ngày nay điều đầu tiên chúng tôi tìm là tri thức và kĩ năng. Chúng tôi muốn biết về tri thức chuyên gia của họ dựa trên hệ thống giáo dục mà công nhân có. Chúng tôi muốn chắc những người này, người làm công việc, là được đào tạo đúng để cho chúng tôi có khả năng chắc chắn liệu công ti làm khoán ngoài có kĩ năng đúng không. Trong quá khứ, nhiều người lập trình và người kiểm thử đã không có giáo dục đại học nhưng chỉ theo trường hướng nghề hay thậm chí vài tháng đào tạo lập trình. Điều đó có thể là ĐƯỢC cho viết mã và kiểm thử nhưng KHÔNG được cho toàn thể phát triển phần mềm vì chúng tôi cần nhiều hơn là chỉ viết mã và kiểm thử. Ngày nay công nhân ít nhất phải có giáo dục đại học đúng, tốt nghiệp từ các đại học tốt và đó là lí do tại sao chúng tôi đang kiểm điểm lại chương trình đào tạo một cách cẩn thận. Chúng tôi muốn chắc rằng công nhân hiểu cách thu được yêu cầu đúng, cách trắc nghiệm và kiểm nghiệm chúng. Chúng tôi muốn chắc họ biết cách thiết kế và thực hiện tương ứng với qui trình được xác định. Chúng tôi muốn thấy các kĩ năng mềm của họ để chắc các đường liên lạc giữa chúng tôi và họ làm việc đúng. Trong các dự án làm khoán ngoài, trao đổi giữ vai trò then chốt trong thành công của thực hiện. Điều cũng rất quan trọng là đặt thời gian chặt chẽ và hạn chót rõ ràng cho việc chuyển giao dự án. Những điều này sẽ đảm bảo rằng nhà cung cấp dịch vụ sẽ làm việc trên dự án phát triển phần mềm của các bạn mà không chậm trễ.”

—English version—

Outsourcing market is changing

In the past twenty years, western companies outsourced “non-critical” software to lower cost countries to save money. “Non-critical software were mostly “legacy software systems” that were developed many years ago but need some changes and the reason for outsource was to lower the cost of software maintenance. Today due to the shortage of information technology workers all over the world, the outsourcing market has changed. Beside legacy systems, companies are outsourcing new software development because they do not have enough workers to work on them. However with new software works, skills are becoming the key factors in selecting which countries to outsource to.

With new software development, companies are giving outsourcing providers the entire software projects rather a small pieces such as coding and testing. To do that outsourcing providers must have enough skilled software project managers, requirements engineers, configuration managers and software quality assurance workers as well as programmers and testers. This is why many outsourcing providers failed because they do not have enough people with these skills. Even they have these people, many projects still failed and the high rates of failures have made new outsourcing more risky for customers.

In the past, western companies assessed outsourcing providers mostly on programming and testing skills before awarded contracts. It is usually done in a “company to company” basis based on some standards such as CMMI or ISO9000 etc. Today the contract award process has changes to a much broader view of reviewing the education training of workers. If the trainings do not have the up to date technology to undertake the entire IT projects, decision is NOT to do business there. Because the rate of outsourcing project failures has risen quickly among certain countries and customers begin to look for new destinations the market is changing quickly. An executive explained: “Most legacy systems already worked; if changes are not done correctly it has small impact to the business. We only need time to fix and with lower cost of outsourcing providers, we can tolerate it. However if a new project that we need does not work, it will significantly impact our business so we must select outsourcing providers carefully. We cannot look to a company for certain skills as people change and may not stay there, we must look at the entire education and training to make sure that there are enough skilled workers in that place to reduce risks. Most countries have a lot of programmers and testers but what we are looking for our new projects are advanced skills in mobility, cloud computing, big data, health applications etc. these are skills that they do not have so we must look for new destinations. Soon many legacy systems will be replaced by newer systems so the amount of maintaining legacy systems will be much less; traditional outsourcing market for coding and testing is no longer suitable in this fast changing time as technology is changing fast. The future outsourcing market is on new software development in advanced technology and outsourcing market will change too.”

Although outsourcing the entire software development is increasing but most companies are still reluctant to outsource new projects. They worry if they have to depend on outsourcing providers and the results are not satisfactory they may suffer high risks. In order to make sure that they will get the best results, companies have taken the necessary steps to ensure proper implementation of their projects by carefully selecting countries that have the most up to date education systems that are comparable with theirs and have enough expertise to develop their projects correctly. A manager explains: “In the past, the things we look for was cost but today the first thing we look for are knowledge and skills. We want to know about their expertise based on the education systems that workers have. We want to make sure these people who do the works are properly trained so we are able to ascertain if outsourcing companies have the right skills. In the past, many programmers and testers did not have college education but only vocational or even few months of programming trainings. It may be OK for coding and testing but NOT the entire software development as we need much more than just code and test. Today workers must at least have proper college education, graduate from good universities and that is why we are reviewing training programs carefully. We want to make sure that workers understand how to obtain the right requirements, how to verify and validate them. We want to make sure they know how to design and implement according to a defined processes. We want to see their soft-skills to make sure the lines of communications between us and them are working properly. In outsourcing projects, communications play a key role in the success of the implementation. It is also very important to set strict timelines and clear deadlines for the delivery of the project. These will ensure that the service provider will work on your software development project without delay.”