1) Kĩ sư yêu cầu hay Người phân tích nghiệp vụ: Người phát triển có vài năm kinh nghiệm kĩ thuật, và có chiều sâu nào đó về tri thức kĩ thuật có thể làm việc như kĩ sư yêu cầu để nhận diện nhu cầu nghiệp vụ của người dùng. Kĩ sư yêu cầu làm việc với khách hàng, người dùng, người quản lí dự án, và kiến trúc sư hệ thống để đảm bảo rằng các yêu cầu được viết ra rõ ràng và được hiểu bởi cả hai phía. Việc làm này là một nghề tăng trưởng nhanh, được cần tới trong công nghiệp phần mềm bởi vì nó có thể tạo ra khác biệt giữa thành công và thất bại. Bên cạnh các kĩ năng kĩ thuật, nó cũng yêu cầu kĩ năng trao đổi tốt như kĩ năng trình bày, kĩ năng viết, kĩ năng thương lượng và kĩ năng quan hệ khách hàng.
2) Lãnh đạo kĩ thuật hay kiến trúc sư: Những người phát triển có kinh nghiệm, có những kĩ năng kĩ thuật chuyên sâu nhưng không muốn làm việc với khách hàng có thể làm việc như kiến trúc sư hệ thống. Vị trí này có tính kĩ thuật cao; nó thường bao gồm việc ra quyết định then chốt về cách hệ thống mới sẽ khớp vào trong kiến trúc tổng thể của tổ chức. Kiến trúc sư phải hiểu các yêu cầu của khách hàng, ra quyết định về cách phân rã những yêu cầu này thành các cấu phần khác nhau mà sẽ được cần cho hệ thống mới, cách khớp các cấu phần này vào trong kết cấu nền hiện có, và theo trật tự nào để thực hiện từng cấu phần. Kiến trúc sư phải nhận diện các vấn đề và rủi ro cũng như yếu tố chi phí và trình bày chúng cho cấp quản lí để được chấp thuận.
3) Người quản lí dự án: Những người phát triển có kinh nghiệm có kĩ năng kĩ thuật qua kinh nghiệm làm việc có thể tiến lên vị trí người quản lí dự án. Người quản lí dự án là người lập kế hoạch, tổ chức và quản lí các hệ thống máy tính mới hay nghĩ ra cách áp dụng các hệ thống hiện có vào các vận hành phụ. Người làm việc này thường phải chịu trách nhiệm thuê nhân viên, lập lịch biểu, và giữ dấu vết của tiến độ qua mọi pha phát triển. Người này cũng chịu trách nhiệm phân công công việc, giải quyết các vấn đề hàng ngày có ảnh hưởng tới công việc đó, và đảm bảo từng người lập trình đều làm việc theo phân công cho riêng mình. Người quản lí dự án có thể tiến hành tốt nhất chức năng này nếu người đó hiểu đầy đủ công việc mà mình quản lí. Người quản lí dự án phải vừa là “người của mọi người” cũng như “người của kĩ thuật” để thành công bởi vì người đó phải làm việc với cán bộ kĩ thuật và phi kĩ thuật ở mọi mức của tổ chức. Bên cạnh đó, người quản lí dự án phải quản lí tổ của mình để tạo ra sản phẩm mong muốn đúng thời gian.
4) Người quản lí: Việc làm tối thượng cho người quản lí dự án nhìn vào để đi lên là trở thành người quản lí. Có vài kiểu người quản lí, người quản lí cấp trung hội tụ vào công việc chiến thuật quản lí hàng ngày và người quản lí cấp cao như Giám đốc thông tin (CIO) hay Giám đốc điều hành (CEO), người quản lí toàn công ti. Vị trí này phù hợp nhất cho mọi người có kinh nghiệm với nhiều năm kinh nghiệm làm việc bởi vì các công ti cần những người hiểu nghiệp vụ và cách áp dụng công nghệ làm cho nó tốt hơn. Việc làm này yêu cầu đào tạo thêm, đặc biệt về nghiệp vụ, tài chính và quyền lãnh đạo bởi vì có khả năng tuân theo các chỉ đạo là quan trọng, nhưng có khả năng đưa ra đánh giá riêng của bạn cũng quan trọng tương đương.
Bên cạnh kĩ năng kĩ thuật, tôi tin rằng kĩ năng trao đổi là rất quan trọng cho mọi người phần mềm, dù bạn là người lập trình hay chủ tịch công ti. Mọi người phải học là một người trao đổi tốt. Tất nhiên kĩ năng trao đổi cần nhiều thời gian hơn để phát triển bởi vì nó yêu cầu cả kinh nghiệm và đào tạo để trở nên hiệu quả. Ngày nay, phần lớn các khách hàng không hiểu kĩ thuật để mô tả yêu cầu của họ cho người phát triển phần mềm cho nên điều quan trọng là người kĩ sư yêu cầu phần mềm hiểu nhu cầu của họ bằng việc thảo luận những điều đó với họ qua việc dùng “ngôn ngữ thông tục.”
Mặt khác, nhiều người kĩ thuật không hiểu nghiệp vụ mà họ phải thực hiện trong dự án bởi vì nhiều người không thích nói với khách hàng cho nên người kiến trúc sư hệ thống hay người lãnh đạo kĩ thuật phải giải thích các yêu cầu này bằng việc dùng “ngôn ngữ kĩ thuật” mà họ hiểu rõ. Học cách trao đổi, và có kiên nhẫn để thu lấy tri thức là kĩ năng bản chất mà nhiều người làm phần mềm không có và nhiều trường không dạy. Trao đổi không phải là về nói mà còn là về nghe, hiểu và có khả năng giải thích mọi sự theo cách rõ ràng và chính xác.
Chìa khoá để thăng tiến trong nghề nghiệp của bạn trong bất kì công ti nào là để cấp quản lí biết bạn biết gì. Bạn không thể cứ ở chỗ người lập trình mãi được bởi vì bạn phải phát triển kĩ năng mới, học những điều mới và đi lên. Bạn phải học cách trả lời các câu hỏi mà cấp quản lí hỏi, giải quyết các vấn đề khi chúng xảy ra, chấp nhận trách nhiệm mới trong dự án mới, và không ngần ngại đảm đương vị trí lãnh đạo và không ngần ngại chia sẻ ý tưởng tốt hơn. Bằng dự ứng thay vì phản ứng, bạn có thể đi xa bởi vì đó là khác biệt giữa “chỉ là người lập trình khác” hay là người hàng đầu cho việc đề bạt.
Công việc phần mềm là rất thách thức nhưng cũng rất đáng thưởng, bên cạnh việc chúng là việc làm được trả lương rất cao – Phần lớn người làm phần mềm đều làm ra nhiều tiền hơn các lĩnh vực khác và đó là nghề tăng trưởng nhanh nhất trên toàn cầu. Nó cũng có nhiều cơ hội hơn để làm việc ở qui mô quốc tế, theo nhiều nghiên cứu, trên 40% người làm phần mềm sẽ du hành trên thế giới để làm việc ở hải ngoại trong mười năm tới vì nhu cầu này là rất cao trên toàn cầu. Tất nhiên, để làm điều đó bạn cũng cần có kĩ năng ngoại ngữ.
Để trả lời câu hỏi của bạn về cái gì cần làm sau vài năm làm việc như người lập trình, câu trả lời của tôi là đi ra khỏi việc lập trình vào các khu vực kĩ thuật cao cấp hay các vị trí có xu hướng doanh nghiệp như kiến trúc sư hệ thống hay người quản lí dự án. Tất nhiên điều đó yêu cầu thời gian và nỗ lực về phần bạn nhưng tôi tin bản lộ trình nghề nghiệp này có thể giúp bạn quyết định phải làm gì.
Trong cuộc đời chuyên môn của mình, xin đừng quên rằng là nhà chuyên nghiệp bạn phải biết cách cân bằng cuộc sống và công việc bởi vì cuộc sống không phải là làm việc và làm tiền mà bạn phải nhớ rằng “Thứ nhất bạn là người và nghề chuyên nghiệp phần mềm tới sau” cho nên cần tận hưởng cuộc sống của bạn như một người có trách nhiệm với bản thân mình, gia đình mình, xã hội mình và đất nước mình.
Many students have asked me what they could do after working as software developers for many years. There are many career paths that experienced developer can select. Following are some:
1) Requirements engineer or Business Analysts: Developer who has few years of technical experience, and a certain depth of technical knowledge could work as requirements engineer to identify business needs of users. Requirement engineer works with customers, users, project managers, and systems architects to ensure that the requirements are clearly written and understood by both sides. This job is a fast growing occupation that is needed in the software industry because it can make the difference between success and failure. Beside technical skills, it also requires good communication skills such as presentation skill, writing skill, negotiation skills and customer relationship skill
2) Technical Lead or Architect: Experienced developers who have advanced technical skills but do not want to work with customers could work as system architect. This position is highly technical; it often involves making key decisions on how the new system will fit into the organization’s overall architecture. The architects must understand customers’ requirements, make decisions about how to decompose these requirements into different components that will be required for the new system, how to fit these components into the existing infrastructure, and in what order to implement each component. The architect must identify issues and risks as well as the cost factor and present them to management for approval.
3) Project Manager: Experienced developers who possess technical skills through work experience can advance into project manager position. The project manager is someone who plan, organize and manage new computer systems or devise ways to apply existing systems to additional operations. This job is often responsible for hiring the staff, setting the schedule, and keeping track of the progress through every phase of development. This person is also responsible for assigning the work, dealing with everyday problems affecting that work, and making sure each programmer is working on his own assignment. The project manager can best carry out this function if he truly understands the work he is managing. The project manager must both be a “people person” as well as a “technical person” in order to succeed because he must work with technical and non-technical staff at every level of the organization. Additionally, the project manager has to manage his team effectively to produce the desired product on time.
4) Manager: The ultimate job for many project managers looking to move up is to become the manager. There are several types of manager, the middle manager who focus on managing daily tactical work and the senior manager such as Chief Information Officer (CIO) or Chief Executive Officer (CEO) who manage the company. This position is best suited for very experienced person with many years of work experience because companies want people who understand the business and how to apply technology to make it better. This job requires additional training, especially in business, finance and leadership because being able to follow directions is important, but being able to make your own judgments is equally important.
Beside technical skills, I believe that communication skills are very important for all software people, whether you are a programmer or a president of the company. Everyone should learn to be a better communicator. Of course communication skills take much longer to develop because it requires both experience and training to become effective. Today, most customers do not understand technical to describe their requirements to software developers so it is important that software requirement engineer understand their needs by discussing thing with them using “Regular language”. On the other hand, many technical people do not understand the business that they must implement in the project because many do not like to talk with customers so system architect or technical lead must explain these requirements using “Technical language” that they understand well. Learning to communicate, and having the patience to gain knowledge is an essential skill that many software people do not have and many schools do not teach. Communication is not about talking but also listening, understanding and be able to explain thing in a clear and concise manner.
The key to advance your career in any company is to let management know what you know. You can not stay as programmer for ever because you like to code, you must develop new skills, learning new things and moving up. You must learn how to answer questions that management ask, solve problems when they happen, accept new responsibilities in new projects, and do not hesitate to assume leadership position and do not reluctant to share a better idea. By being pro-active rather than reactive, you could go far because it is the difference between being “just another programmer” or being the top person for a promotion.
Software jobs is very challenging but also very rewarding, beside they are very high paying jobs – Most software people make more money than other fields and it is the fastest growing occupations globally. It also have more chance to work internationally, according to several studies, over 40% of software people will travel to work oversea in the next ten years as the demand is very high globally. Of course, to do that you also need to have foreign language skill.
To answer your question on what to do after several years working as programmer, my answer is to move out of programming into more advanced technical areas or business-oriented positions such as systems architect or project manager. Of course it requires time and efforts on your part but I believe this career roadmap can help you to decide what to do.
During your professional life, please do not forget that as a professional you must know how to balance your life and work because life is not about working and make money but you have to remember that “You are a person first and a software professional later” so enjoy your life as a person who has responsible for yourself, your family, your society, and your country.
Trong tình huống khủng hoảng tài chính, nhiều công nhân có kĩ năng di cư sang nước khác vì cơ hội tốt hơn, việc làm tốt hơn, và lương tốt hơn. Theo nghiên cứu gần đây của chính phủ Mĩ, 78 phần trăm công nhân có kĩ năng được phỏng vấn trên toàn thế giới đều nói họ sẵn lòng sang bất kì nước nào vì việc làm tốt hơn. Gần 47 phần trăm nói họ sẽ rời khỏi đất nước quê hương của mình vào bất kì lúc nào và ba trong năm người nói họ sẽ làm như vậy mãi mãi. Nhiều năm trước trong quá khứ, số công nhân có kĩ năng cao di cư sang Mĩ và châu Âu đã tăng lên đáng kể, nhiều người bị hấp dẫn bởi lương và môi trường làm việc tốt hơn.
Nhưng điều gì xảy ra cho các nước mà những công nhân có kĩ năng này bỏ lại sau? Theo một nghiên cứu khác của chính phủ Mĩ, việc “chảy não” đã gây ra những vấn đề kinh tế lớn cho nhiều nước đang phát triển và họ tin rằng cạnh tranh toàn cầu làm hại họ. Gần 63 phần trăm các công ti địa phương bày tỏ mối quan ngại về việc di cư của công nhân có kĩ năng sang các nước đã phát triển và tin rằng chính phủ của họ KHÔNG “làm đủ” để dừng luồng chảy này. Tất nhiên, việc kiểm soát luồng người có kĩ năng trên khắp thế giới KHÔNG phải là ưu tiên cho nhiều chính phủ vì họ phải giải quyết với nhiều vấn đề quan trọng và khẩn thiết khác. Trong ngắn hạn, thay vì bằng việc cho phép đi mà giữ họ và không có việc làm tốt cho họ, là phí hoài tài năng của họ. Có ích lợi khi những người di dân này làm ra nhiều tiền hơn, họ có khuynh hướng dửi một số tiền về giúp gia đình và luồng tiền này có thể giúp nền kinh tế địa phương. Tuy nhiên, về dài hạn, sẽ khó tăng trưởng nền kinh tế bởi vì không có đủ người có kĩ năng để vận hành doanh nghiệp mới. Không có doanh nghiệp mới, nền kinh tế không thể cải thiện được rồi thất nghiệp và trì trệ có thể lan tràn.
Theo nghiên cứu này, Đài Loan, Ấn Độ và New Zealand bày tỏ mối quan tâm nhất về tác động của ‘chảy não’ lên nền kinh tế của họ nảy sinh từ việc những người có kĩ năng rời bỏ nước mình để sang làm việc ở nước khác. Mặt khác, Trung Quốc, Ireland, Philippines, Nhật Bản, và Hàn Quốc quan tâm ít nhất về vấn đề này. Trong những công nhân có kĩ năng xem xét về các cơ hội ở nước ngoài, Mĩ, Anh và Tây Âu là những điểm đến được ưa chuộng hơn bởi vì họ có thể kiếm lương cao hơn và cuộc sống tốt hơn so với ở nước họ. Nghiên cứu này cũng thấy rằng người càng đạt tới mức độ giáo dục cao, càng sẵn lòng đi hơn cho dù một nửa trong số họ sẽ phải học ngôn ngữ mới.
Nghiên cứu của Liên hợp quốc thấy rằng hiện tượng “chảy não” đe doạ làm tăng nghèo nàn và đe doạ các quốc gia đang phát triển. Dữ liệu chỉ ra rằng ở châu Phi và Trung Mĩ, hơn một nửa các sinh viên tốt nghiệp đại học di cư sang các nước đã phát triển, với những hậu quả nghiêm trọng tiềm năng cho các khu vực gay cấn như giáo dục, y tế và kĩ nghệ. Không có thầy giáo, kĩ sư và người chăm sóc sức khoẻ, các nước này sẽ không có khả năng cải thiện mặc dầu họ đã đầu tư nhiều vào giáo dục và đào tạo người của mình và rồi mất người cho nước khác.
Cuộc khủng hoảng tài chính hiện thời đã tạo ra tình huống khó khăn cho nhiều công nhân có kĩ năng ở ngay nước của họ. Với họ, di cư và tìm việc mới ở nước khác còn dễ hơn đợi việc làm ở chính nước của họ. Ngay cả với cuộc khủng khoảng này, nhiều nước đã phát triển vẫn còn mở cửa cho các công nhân có kĩ năng cao thông qua các chương trình đặc biệt. Mĩ có chương trình visa H1B cho những người có tài và trong phạm vi vài tuần, vài nghìn người có kĩ năng đã lấp kín hạn ngạch được cấp. Anh và Tây Âu cũng có chương trình tương tự để làm dễ dàng hơn cho những người có giáo dục cao vào và làm việc ở nước của họ. Tất nhiên, tất cả những điều này bị khống chế bởi luật cung cầu và sẽ tiếp tục có thay đổi trong thị trường việc làm. Nếu một nước có nhu cầu về những kĩ năng nào đó, nó sẽ cho phép nhiều người có kĩ năng đó vào một cách hợp pháp. Vì Mĩ có nhu cầu cao về kĩ sư phần mềm và hộ lí, nó đã làm dễ dàng hơn cho mọi người trên thế giới có những kĩ năng này di cư tới làm việc ở Mĩ. Trong mười năm qua, Ấn Độ và Philippine là hai nhà cung cấp chính những người có kĩ năng này cho Mĩ. Theo nghiên cứu mới, 10 việc làm hàng đầu cần tài năng ngoại là:
1. Công nhân có kĩ năng chế tạo
2. Kĩ sư phần mềm
3. Vận hành sản xuất
4. Chuyên viên máy tính
5. Cán bộ công nghệ thông tin
6. Bác sĩ dược sĩ
7. Y tá và hộ lí dược
8. Đại diện dịch vụ khách hàng
9. Kĩ thuật viên phòng thí nghiệm dược
10. Cán bộ kế toán & tài chính
Liên hợp quốc gợi ý rằng các nước đang phát triển nên làm cho những người có đào tạo cao ở lại bằng việc cung cấp điều kiện làm việc tốt hơn và thù lao tốt hơn. Tất nhiên gợi ý này bị nhiều người chỉ trích là “tốt trên giấy tờ nhưng không thực tế.” Gợi ý khác là thay thế người có kĩ năng cao với mức độ nhanh hơn việc ra đi của họ bằng việc cải tiến hệ thống giáo dục để đào tạo nhiều người hơn. Gợi ý này dựa trên nghiên cứu hàn lâm và cũng bị chỉ trích là “không thực tế, vì mọi người sẽ đi tới bất kì chỗ nào họ có thể có cơ hội tốt hơn.” Tuy nhiên, gần đây có một hiện tượng khác: Sự quay về của tài năng. Đây là trường hợp xảy ra phần lớn ở Ấn Độ và Trung Quốc khi kinh tế của họ được cải thiện, ngày càng nhiều người trở về, đặc biệt trong khu vực phần mềm. Gần 30% các công ti phần mềm ở Ấn Độ được thành lập hay được quản lí bởi những tài năng phần mềm trở về từ hải ngoại. Trung Quốc cũng báo cáo rằng số kĩ sư phần mềm trở về trong năm năm qua đã vượt quá số kĩ sư phần mềm rời khỏi nước. Chúng ta hi vọng rằng xu hướng này sẽ sớm xảy ra ở các nước đang phát triển khác.
—-English version—-
Blog193-Brain drain
With globalization comes “Brain-drain” phenomenon. In a financial crisis situation, many skilled workers migrate to another country for better opportunity, better jobs, and better salaries. According to a recent U.S government study, 78 percent of skilled workers interviewed worldwide said they would be willing to relocate to any country for better jobs. Nearly 47 percent said they would leave their home country at any time and three in five said they would do so permanently. In the past several years, number of highly skilled workers immigrated to the U.S and Europe increased significantly, many attracted by better salaries and work environment.
But what happens to countries where these skilled workers leave behind? According to another U.S Government study, the “Brain drain” had caused significant economic problems for many developing countries and they believed that the global competition hurt them. Nearly 63 percent of local companies express concern about the migration of skilled workers to developed countries and believe that their governments are NOT “doing enough” to stop this flow. Of course, controlling the flow of skilled people around the world is NOT a priority for many governments as they have to deal with so many other important and urgent issues. In the short term, by allowing people to go rather than keep them and not having good jobs for them, is a waste of their talents. There is a benefit as these migrating people are making more money, they tend to send some back to support their families and this flow of money could help the local economy. However, in the long term, it would be difficult to grow the economy because there are not enough skilled workers to run new business. Without new businesses, the economy can not improve then unemployment and stagnation could run rampant.
According to the study, Taiwan, India and New Zealand express the most concern about the impact of ‘brain drain’ on their economies resulting from skilled people leaving their country to work in another country. On the other hand, China, Ireland, Philippines, Japan, and S, Korea are least concerned about the issue. Among skilled workers considering foreign opportunities, the U.S., UK and Western Europe are the preferred destinations because they could make better salaries and better life than their own country. The study also found that the higher the level of educational attainment, the greater the willingness to move even half of them will have to learn new language.
The United Nation study found that the “brain drain” phenomenon threatens development of poor and developing countries. The data shows that in Africa and Central America, more than half of all university graduates migrate to developed countries, with potentially serious consequences for critical sectors such as education, health and engineering. Without teachers, engineers and healthcare people, these countries will not be able to improve although they had invested heavily on the education and training of their people and lost them to others.
The current financial crisis has created a difficult situation for many skilled workers in their own country. It would be easier for them to migrate and find new jobs in another country than waiting for jobs in their own country. Even with the crisis, many developed countries are still opening doors for highly skilled workers via special programs. The U.S have the H1B visa program for talents people and within a matter of weeks, several thousand skilled workers completely fill up the allocated quota. England and Western Europe also have similar programs to make it easier for highly educated people to enter and work in their countries. Of course, all of this is dictated by the law of supply and demand and there will continue to be changes in job markets. If a country has a need for certain skills, it will allow more people with that skill to enter legally. As the U.S has high demand for software engineer and nurse, it has made it easier for people around the world with these skills to migrate to work in the U.S. In the past ten years, India and the Philippine are the two main suppliers of these skills to the U.S. According to the new study, the top 10 jobs that need foreign talent are:
1. Manufacturing skilled workers
2. Software Engineers
3. Production Operators
4. Computer Specialists
5. Information Technology Staff
6. Medical Doctors
7. Nurse and Medical Assistants
8. Customer Service Representatives
9. Medical Lab Technicians
10. Accounting & Finance Staff
The United Nations suggested that developing countries make it worthwhile for highly-trained people to stay by providing better working conditions and better compensation. Of course this suggestion is criticized by many people as “good in paper but not practical”. Another suggestion is to replace highly skilled people at a rate faster than their departure by improving the education systems to train more people. This suggestion is based on an academic study and also being criticized as “not practical, as people will go to wherever they can for better opportunities”. However, recently there is another phenomenon: The return of talent. This is the case that happens mostly in India and China as their economies improved, more and more skilled people are returning, especially in the software area. Almost 30% of software companies in India are founded or managed by returning software talents from oversea. China also reported that the number of returning software engineer in the past five years have exceeded the number of software engineer leaving the country. Let’s hope that this trend will happen in other developing countries soon.