Một trong những yếu tố then chốt giúp các ứng viên thành công trong hành trình tìm việc đó là hiểu rõ bản mô tả công việc và danh sách các yêu cầu của nhà tuyển dụng đối với vị trí mà mình đã ứng tuyển. Tuy nhiên, thực tế là rất nhiều người, đặc biệt là sinh viên mới ra trường thường khá mơ hồ về các vị trí công việc tại các công ty khiến họ rơi vào tình trạng mãi không xin được việc. Bởi lẽ, chẳng ai tuyển một người không hiểu những việc mình sẽ làm nếu được ứng tuyển hoặc hồ sơ chẳng có một sự liên kết nào đối với những gì mà nhà tuyển dụng đang tìm kiếm.
Dưới đây là 5 nghề thuộc lĩnh vực IT hiện đang thu hút được sự quan tâm của rất nhiều người trên thị trường lao động. Hãy nắm rõ sự khác biệt giữa các vị trí này để lựa chọn cho mình một công việc phù hợp và tự tin hơn trong quá trình tìm việc nhé.
1. Project Manager
Project Manager (Quản lý dự án) là một chức danh phổ biến tại các công ty Outsourcing (thuê ngoài), được trả lương khá cao và rất có tiềm năng phát triển.
Công việc của Project Manager bao gồm:
- Lập kế hoạch, giám sát và đánh giá kết quả công việc; huấn luyện, hướng dẫn và rèn luyện tính kỷ luật cho nhân viên; đưa ra các sáng kiến, phối hợp, cải thiện các hệ thống, chính sách và quy tắc.
- Xây đựng đội ngũ nhân lực thông qua việc tuyển dụng, lựa chọn, điều chuyển và đào tạo nhân viên; duy trì một môi trường làm việc an toàn và bảo mật, đồng thời phát triển các cơ hội tăng trưởng cho từng cá nhân trong tổ chức.
- Xây dựng kế hoạch và quy trình làm ra sản phẩm, phần mềm theo yêu cầu hoặc nhu cầu của khách hàng.
- Sắp xếp quy trình, lịch làm việc của Developer, Tester và những vị trí liên quan, giám sát chặt chẽ để đảm bảo chất lượng và giao sản phẩm đúng hạn.
- Giao tiếp với khách hàng, bao gồm báo cáo tiến độ, tình hình những phần việc đã hoàn thành, những lỗi đang gặp phải để có phương án giải quyết.
- Đề xuất các chiến lược công nghệ thông tin, chính sách và thủ tục bằng cách đánh giá các kết quả đạt được của tổ chức, nhận dạng vấn đề, đánh giá xu hướng và thảo luận về các yêu cầu đặt ra.
- Trau dồi kiến thức về kỹ thuật và duy trì phong cách làm việc chuyên nghiệp bằng cách tham dự các hội thảo giáo dục, tạo dựng mạng lưới mối quan hệ….
Các kỹ năng cần có của một Project Manager:
1. Kỹ năng quản lý dự án, bao gồm lập quy trình chi tiết công việc cụ thể, thời gian hoàn thành các giai đoạn để giao sản phẩm đúng deadline, chẳng hạn như sắp xếp công việc theo thứ tự quan trọng, mức độ ưu tiên của từng phần việc, người chịu trách nhiệm cho từng phần để đảm bảo không bị trùng lặp và hoàn thành nhiệm vụ đúng hạn.
2. Kỹ năng lập kế hoạch để đảm bảo mọi thứ diễn ra theo đúng trình tự, chuyên nghiệp, công bằng trong việc phân công nhiệm vụ và khoa học.
3. Kỹ năng giao tiếp với khách hàng, bao gồm lắng nghe kĩ yêu cầu khách hàng và xem chi tiết phản hồi của họ để chỉnh sửa sản phẩm đúng nhu cầu.
4. Kỹ năng giải quyết vấn đề khi gặp rắc rối, bao gồm việc phân tích nguyên nhân rồi tìm giải pháp thích hợp qua các case study, kinh nghiệm từ đồng nghiệp.
Ngoài ra còn có một số yêu cầu kỹ năng sau: kỹ năng phân tích thông tin, trình bày vấn đề, quản lý trung tâm dữ liệu, phát triển ngân sách, liên kết, quản lý chất lượng, quản lý kỹ thuật…
2. Product Owner
Product Owner – đúng như tên gọi – là người sở hữu sản phẩm, hiểu tường tận về sản phẩm và các yêu cầu liên quan. Thông thường, tại các doanh nghiệp, Product Owner thường được đảm nhiệm bởi khách hàng. Nếu khách hàng không có người thực hiện thì vị trí này có thể phân cho Business Analyst (Phân tích kinh doanh) của công ty phần mềm hoặc đơn vị tư vấn. Ngoài ra, Product Owner cũng chính là người chịu trách nhiệm về yêu cầu đầu ra của sản phẩm và là người chấp nhận sản phẩm.
Công việc của Product Owner bao gồm:
- Product Owner là người phải trả lời được câu hỏi: “Tại sao phải có sản phẩm này?” Sản phẩm nên chứa đựng điều gì?” “Khi nào nên được ra mắt?”... trước khi Developer và Enginer bắt đầu công việc.
- Lập kế hoạch chi tiết cho việc xây dựng sản phẩm, bao gồm code, thiết kế, định hướng nội dung cũng như các phần việc liên quan.
- Quản lý, phân công công việc cho các Team khác (thường là Development và Design), đồng thời phối hợp với phòng Marketing, Sale… để thực hiện kế hoạch.
- Nghiên cứu nhu cầu người dùng để lập chiến lược thay đổi, nâng cấp, sửa chữa sản phẩm sao cho họ yêu thích và tiếp tục sử dụng.
Các kỹ năng yêu cầu của Product Owner:
1. Hiểu biết rộng về thị trường, sản phẩm, khách hàng, đối thủ…
2. Luôn sẵn sàng để phục vụ khách hàng và hỗ trợ cho đồng nghiệp.
3. Có trách nhiệm, tự ra quyết định và giải quyết vấn đề.
4. Kiến thức tổng quát về tất cả khía cạnh của sản phẩm, phần lớn là thiết kế, trải nghiệm người dùng, Code, phần mềm, cấu trúc dữ liệu, số liệu tương tác của người dùng với sản phẩm.
5. Có khả năng dẫn dắt, động viên nhóm dự án làm việc để họ phấn đấu hoàn thành dự án đúng mục tiêu đề ra.
3. Software Architect
Software Architect là “cánh tay phải” của một công ty tạo ra sản phẩm, được xem như “kiến trúc sư” xây dựng kiến trúc tổng thể của phần mềm và phương thức hoạt động cho những phần đó. Tùy theo nhiệm vụ mà Software Architect sẽ phụ trách các mảng công việc khác nhau.
- Kiến trúc sư nghiệp vụ (Enterprise Architect): Là cầu nối giữa chủ sở hữu sản phẩm và đội ngũ kĩ thuật. Họ là những người có kinh nghiệm chiều sâu trong lĩnh vực mà sản phẩm đang xây dựng; chịu trách nhiệm trong việc xây dựng và phát triển yêu cầu – thiết lập viễn cảnh, bộ khung của môi trường IT trong sản phẩm.
- Kiến trúc sư hạ tầng (Infrastructure Architect): Là người chịu trách nhiệm trong việc thiết lập, xây dựng giải pháp về cơ sở hạ tầng IT (ví dụ: mạng, các vấn đề bảo mật, thiết bị/ phương thức lưu trữ, ..) trong sản phẩm để đáp ứng nhu cầu của doanh nghiệp.
- Kiến trúc sư giải pháp (Solution Architect): Là người chịu trách nhiệm trong việc thiết kế, xây dựng giải pháp cho những yêu cầu của sản phẩm.
- Kiến trúc sư kĩ thuật (Technology-specific Architect): Là người chịu trách nhiệm về một hoặc một số lĩnh vực kĩ thuật cụ thể.
Các kỹ năng yêu cầu của Software Architect:
1. Có kinh nghiệm làm việc với kiến trúc tổng thể của một sản phẩm, hệ thống để có cái nhìn toàn cảnh về nó cũng như phát triển dần cách tư duy của một Software Architect thực thụ.
2. Thành thạo về một công nghệ nào đó, bao gồm cú pháp ngôn ngữ lập trình, APIs, frameworks, các mẫu thiết kế, nguyên lý, kiểm thử…
3. Có kiến thức nền tảng về các công nghệ liên quan khác để hỗ trợ cho việc xây dựng kiến trúc cho sản phẩm.
4. Quyết đoán khi đưa ra các quyết định về công nghệ, kỹ thuật cho sản phẩm của mình.
5. Khả năng giao tiếp tốt để truyền đạt được tầm nhìn vào thiết kế đó.
6. Kỹ năng lãnh đạo, bao gồm khả năng thúc đẩy các thành viên trong nhóm tham gia, tạo động lực cho team làm việc, lắng nghe, dẫn dắt họ.
7. Nhạy bén với các chuyển động kinh tế, có tầm nhìn.
8. Không ngừng học hỏi, trau dồi bản thân, luôn nghiên cứu những hướng kĩ thuật mới, từ kiến trúc IT cho đến ứng dụng và xu hướng phát triển ứng dụng.
4. Tester (kiểm thử phần mềm)
Tester là nhân viên kiểm thử phần mềm, chịu trách nhiệm kiểm tra phần mềm, ứng dụng trước khi chúng chính thức được ra mắt. Tùy vào dự án, giai đoạn và kiểu Testing (thủ công – Manual hay tự động – Automation) mà công việc của từng Tester sẽ khác nhau.
Nhìn chung, Tester sẽ chịu trách nhiệm tìm kiếm các lỗi hoặc thẩm định, xác minh xem hệ thống phần mềm/ứng dụng có đáp ứng các yêu cầu kỹ thuật và yêu cầu nghiệp vụ hay không, đảm bảo sản phẩm đáp ứng đúng chất lượng và yêu cầu mà khách hàng mong muốn.
Con đường sự nghiệp của một Tester có thể bắt đầu với chức danh chuyên viên kiểm thử phần mềm => Test Leader => Test Manager => Test Director.
Các kỹ năng yêu cầu của một Tester:
1. Có kỹ năng thiết kế, lập trình, phân tích và hiểu biết về các ứng dụng khác nhau của các phần mềm.
2. Khả năng ngoại ngữ để đọc, hiểu, viết được tài liệu chuyên ngành.
3. Cẩn thận, tỉ mỉ, nhạy bén, có thể nhìn ra được những vấn đề mà các Developer còn thiếu sót trong sản phẩm.
4. Nắm rõ phương pháp test cho từng case cụ thể tương ứng với từng domain, quy trình, sản phẩm, khách hàng, loại lỗi, đòi hỏi Tester phải nắm vững kiến thức cơ bản về phần mềm và kinh nghiệm test đa dạng sản phẩm.
5. Tư duy phản biện và tư duy logic từ nhiều góc độ để tìm ra được những lỗi ẩn sâu trong sản phẩm.
6. Kỹ năng giao tiếp khéo léo để truyền tải được ý nghĩa của việc kiểm thử đến cho những team liên quan.
Phân biệt Tester, QC và QA:
♦ Tester là nhân viên kiểm thử phần mềm, chỉ chịu trách nhiệm kiểm tra phần mềm, tìm kiếm các lỗi, thiếu sót trong sản phẩm trong quá trình thực thi hệ thống để Developer sửa lại, làm việc độc lập với team QC và QA.
♦ Quality Assurance (QA) là kỹ sư đảm bảo chất lượng, thiết lập và xây dựng sổ tay và các quy trình về các hệ thống quản lý chất lượng tại nơi đang áp dụng; đánh giá nội bộ hệ thống quản lý chất lượng hàng năm của công ty; tham gia các hoạt động cải tiến sản xuất, phối hợp với bên sản xuất khi có khách hàng đánh giá công ty, tham gia huấn luyện cho các bộ phận liên quan về việc áp dụng hệ thống, tiêu chuẩn và quy trình cũng như những thay đổi của hệ thống và quy trình cho phù hợp với yêu cầu thực tế.
♦ Quality Control (QC) là kỹ sư quản lý chất lượng. Đây là những người trực tiếp làm, kiểm tra các sản phẩm thực tế cho từng công đoạn của quá trình sản xuất. Kỹ sư QC đòi hỏi phải có kiến thức về sản phẩm đang làm, hiểu nội dung bản vẽ, thứ tự các công đoạn sản xuất, giám sát thường xuyên và trực tiếp tại hiện trường sản xuất….
5. DevOps Engineer
DevOps Engineer là kỹ sư làm việc với mô hình DevOps. Bất cứ ai, dù là Developer, Tester, QA… đều có thể làm được DevOps Engineer vì đây là một vị trí cực kì đa năng và làm việc chủ yếu với các hệ thống.
Công việc của DevOps Engineer bao gồm:
- Xây dựng, thiết kế hệ thống để các team Developement, Testing và Operation làm việc trơn tru, xuyên suốt, tối ưu hóa vòng đời phát triển phần mềm (SDLC – Software Development Life Cycle), tiết kiệm thời gian hoàn thành sản phẩm.
- Phối hợp với các team trên trong các giai đoạn khác nhau của phát hành sản phẩm, bao gồm: Build (xây dựng), Deploy (triển khai), Test (kiểm thử) và Continuous Improvement (cải tiến liên tục).
- Tạo, triển khai, khắc phục sự cố và duy trì hệ thống phần mềm hàng ngày.
- Liên tục nghiên cứu, đánh giá và làm việc với các công nghệ mới để tối đa hóa hiệu quả của phần mềm.
- Sử dụng các công cụ DevOps, điện toán đám mây, hạ tầng… để tăng hiệu quả đầu ra của sản phẩm.
Các kỹ năng yêu cầu của DevOps Engineer:
1. Khả năng làm việc với nhiều công nghệ và sử dụng thành thạo mọi công cụ để phục vụ cho nhiều quy trình.
2. Khả năng code, script, deploy và test vì phải phối hợp được với tất cả các team trong quy trình làm sản phẩm.
3. Theo dõi sát hệ thống để đảm bảo sự kết nối xuyên suốt trong quá trình thực hiện.
4. Khả năng quản lý dữ liệu với lượng data cực kì khổng lồ, liên quan tới nhiều team và công việc khác nhau.
5. Kỹ năng làm việc cross-team, kỹ năng con người. Đây là kỹ năng quan trọng nhất của một DevOps Engineer vì công việc này đòi hỏi khả năng làm việc nhóm rất cao.
Điều mà bất kì DevOps Engineer nào cũng phải ghi nhớ là chuyên môn kỹ thuật không làm nên vị trí này mà phải có tư duy DevOps với sự phối hợp chặt chẽ, hài hòa giữa các team và các giai đoạn tạo ra sản phẩm.