25 Jun, 2021
Bản lộ trình nghề nghiệp cho người phát triển phần mềm
Một người tốt nghiệp Khoa học máy tính viết cho tôi: “Em tốt nghiệp năm ngoái và hiện thời làm việc như người phát triển ở một công ti phần mềm. Tại sao em vẫn cần bản kế hoạch nghề nghiệp sau khi có việc làm?”
Đáp: Dù bạn là sinh viên đại học hay người phát triển phần mềm, bạn vẫn cần có bản kế hoạch để quản lí nghề nghiệp của bạn. Có việc làm là không đủ vì bạn có thể mất nó; cho nên bạn phải học để giữ việc làm của bạn. Nhưng giữ việc làm là không đủ vì bạn phải đi lên và thăng tiến nghề nghiệp của bạn. Bản kế hoạch nghề nghiệp là bản lộ trình giúp bạn đạt tới mục đích của bạn. Bản kế hoạch nghề nghiệp thiết lập mọi bước bạn phải theo để có được việc làm, giữ việc làm, và trưởng thành trên việc làm của bạn bằng việc nhận diện các mục đích dài hạn và ngắn hạn để bạn đạt tới. Khi bạn là sinh viên, mục đích của bạn là học những kĩ năng nào đó và qua kì thi. Khi bạn tốt nghiệp, mục đích của bạn là có được việc làm. Sau khi có việc làm, mục đích của bạn là giữ nó và thăng tiến nó vào vị trí tốt hơn, đó là lí do tại sao bạn cần bản kế hoạch nghề nghiệp linh hoạt điều cho phép bạn thêm vào hay bớt ra các bước nào đó khi mục đích của bạn thay đổi.
Bằng việc có bản kế hoạch nghề nghiệp, bạn cũng có viễn kiến rõ ràng về con đường mà bạn phải lấy cũng như đánh dấu tiến bộ của bạn hướng tới mục đích của bạn. Bằng việc giám sát và cải tiến bản kế hoạch của mình, bạn có thể thiết lập những ưu tiên nào đó để giúp bạn khôi phục nếu bạn phạm sai lầm, hay đặt ra những bước mới khi bạn có tiến bộ ở công việc. Tất cả sinh viên của tôi đều nói với tôi rằng họ cảm thấy khác biệt với người khác sau khi hoàn thành bản kế hoạch nghề nghiệp của họ. Một sinh viên nói: “Bây giờ, em biết điều em muốn, em biết phải làm gì, và em biết tương lai của em sẽ là gì khi những người khác không có bản kế hoạch nghề nghiệp thì vẫn bước đi trong bóng tối mà không có phương hướng nào.” Một người tốt nghiệp khác quay lại và nói với tôi: “Sau khi có bản kế hoạch nghề nghiệp, mọi thứ là rõ ràng vì em biết em phải lấy bước nào để được đề bạt. Phần lớn các đồng nghiệp của em chỉ làm việc chăm chỉ và tin rằng làm việc chăm chỉ sẽ giúp cho họ thành công. Đến cuối, em được đề bạt nhưng họ thì không.”
Là người phát triển, bạn nên biết bạn muốn tiếp tới sẽ ở đâu và những năng lực và kĩ năng của bạn là gì. Bạn phải nhận diện tri thức và kĩ năng nào bạn cần để đạt tới mục đích tiếp của bạn và viết ra mọi bước mà bạn cần đi theo. Tất nhiên, chúng có thể thay đổi trong tương lai, nhưng ít nhất với bây giờ bạn nên có một số bước mà bạn có thể theo được. Vị trí tiếp thông thường cho người phát triển phần mềm có thể là người phát triển cấp cao và lãnh đạo tổ kĩ thuật cho nên bạn sẽ cần nhận diện các kĩ năng phụ thêm mà bạn cần để có được các vị trí đó. Bên cạnh các kĩ năng kĩ thuật bạn cũng cần kĩ năng mềm thêm và điều này phụ thuộc vào tương tác của bạn với các thành viên tổ khác và người quản lí của bạn. Bạn cần hiểu rằng bạn càng làm việc tốt với mọi người trong tổ, bạn càng trở thành người lãnh đạo tốt hơn của họ. Đây là bước cần thiết nơi bạn học nhiều hơn về quản lí dự án trước khi bạn có thể chuyển sang vị trí người quản lí dự án.
Từ vị trí người quản lí dự án, bạn sẽ học nhiều hơn về cách công ti của bạn vận hành và cách doanh nghiệp được quản lí nơi bạn cũng tương tác với người doanh nghiệp khác và bạn có thể xác định bước tiếp và cách tiếp cận của bạn. Nếu bạn vẫn muốn ở lại trong khu vực kĩ thuật bạn có thể đặt mục đích trở thành kiến trúc sư cấp cao nơi bạn dùng kĩ năng kĩ thuật và kinh nghiệm để thiết kế kiến trúc cho nhiều dự án phần mềm. Bạn có thể tổ hợp các kĩ năng kĩ thuật và quản lí của bạn để chuẩn bị làm kĩ sư yêu cầu, hay người phân tích doanh nghiệp nơi bạn làm việc với khách hàng và người dùng và phát triển các yêu cầu cho dự án. Con đường khác là chuyển hoàn toàn vào khu vực quản lí nơi bạn tương tác với quản lí cấp cao của công ti và đặt mục đích của bạn là giám đốc phần mềm, Giám đốc công nghệ (CTO) hay thậm chí Giám đốc thông tin (CIO).
Tất nhiên tuỳ theo kích cỡ công ti mà bạn có nhiều tuỳ chọn. Tuy nhiên có bản kế hoạch nghề nghiệp sẽ giúp bạn làm từng bước theo cách có tổ chức nơi bạn học cách định vị bản thân bạn trong công ti. Một bản kế hoạch nghề nghiệp tốt phải dựa trên tham vọng cá nhân của bạn, tri thức và kĩ năng của bạn cũng như hiệu năng của bạn trong công ti. Bạn nên xác định, tổ chức bản kế hoạch nghề nghiệp của bạn và giám tiến bộ của bạn v.v. Bạn sẽ biết rằng giữ việc làm của bạn còn khó hơn nhiều so với có được việc làm và thăng tiến trong nghề nghiệp lại còn khó hơn việc giữ việc làm vì bạn bao giờ cũng cần nhiều tri thức hơn, các kĩ năng phụ thêm, đặc biệt kĩ năng mềm vì chính kĩ năng mềm của bạn mới giúp cho bạn thăng tiến sang vị trí tiếp của bạn. Không có cách dễ dàng để đi lên nhưng với việc lập kế hoạch cẩn thận cho nghề nghiệp của bạn và quyết tâm, bạn sẽ thành công.
—English version—
A career roadmap for software developer
A Computer Science graduate wrote to me: “I graduated last year and currently work as a developer at a software company. Why do I still need a career plan after getting a job?
Answer: Whether you are a college student or software developer, you still need to have a plan to manage your career. Getting a job is not enough as you could lose it; so you must learn to keep your job. But keeping a job is not enough as you must move up and advance your career. A career plan is the roadmap that helps you to achieve your goals. A career plan establishes all the steps that you should follow to get a job, keep a job, and grow on your job by identifies long term and short term goals for you to achieve. When you are student, your goal is to learn certain skills and pass exams. When you graduate, your goal is to get a job. After getting a job, your goal is to keep it and advancing it into better positions, that is why you need a flexible career plan that allow you to add or remove certain steps as your goal changes.
By having a career plan, you also have a clear vision of the path that you should take as well as track your progress toward your goals. By monitor and improve your plan, you can establish certain priorities to help you recover if you make a mistake, or set up new steps as you are making progress at work. All of my students told me that they felt different from others after complete their career plan. A student said: “Now, I know what I want, I know what to do, and I know what my future will be when others without a career plan are still walking in the dark with no direction.” Another graduate came back and told me: “After having a career plan, everything is clear as I know what steps I should take to get a promotion. Most of my co-workers only work hard and believe that hard work will help them to success. In the end, I got the promotion but they did not.”
As a developer, you should know where you want to be next and what are your abilities and skills. You must identify what knowledge and skills that you need to achieve your next goal and write all the steps that you need to follow. Of course, they might change in future, but at least for now you should have some steps that you can follow. The usual next positions for software developer could be senior developer and Technical team leader so you will need to identify additional skills that you need to get those positions. Beside the technical skills you also need additional soft-skills and this depends on your interaction with other team members and your manager. You need to understand that the more you work well with people on the team, the better you become their leader. This is the necessary step where you learn more about project management before you can switch to project manager position.
From the project manager position, you will learn more about how your company operates and how the business is conducted where you also interact with other business people and you can determine your next steps and approaches. If you still want to stay in technical area you may want to set your goals to become a senior architect where you use your technical skills and experiences to design the architecture for many software projects. You may want to combine your technical and management skills to prepare for the Requirements Engineer, or Business analyst where you work with customers and users and develop requirements to projects. Another path is to switch completely into management area where you interact with company senior management and set your goal to be the Software director, Chief Technology Officer (CTO) or even Chief Information Officer (CIO).
Of course depending on the size of the company where you have several options. However having a career plan will help you to make each step in an organized way where you learn how to position yourself within the company. A good career plan should be based on your personal ambitions, your knowledge and skills as well as your performance in the company. You should define, organize your career plan and monitor your progress etc. You will learn that to keep your job is much more difficult than to get a job and to advance in your career is more difficult in keeping your job as you always need more knowledge, additional skills, especially your soft-skills because it is your soft-skills that help to advancing you to your next positions. There is no easy way to move up but with carefully planning your career and determination, you will succeed.