Tôi nhận được một email người gửi viết: “Tôi thích bài nói của thầy về phẩm chất người quản lí dự án nhưng thầy có thể nói sâu thêm về loại kĩ năng nào người quản lí dự án phải có không. Tôi đã làm việc như người phát triển phần mềm trong ba năm và muốn biết kĩ năng nào hay môn học đào tạo nào tôi cần trước khi xin việc làm người quản lí dự án phần mềm.”

Câu trả lời của tôi là: “Không có cái thay thế cho kinh nghiệm dự án, người quản lí dự án phần mềm phải có nhiều năm làm việc như người phát triển phần mềm trước khi trở thành người quản lí tốt. Theo ý kiến riêng của tôi, ba năm có thể KHÔNG đủ để có phẩm chất là người quản lí dự án phần mềm “tốt”. Để bắt đầu, tôi gợi ý rằng bạn nên học đào tạo trong các khu vực sau:

1)    Quản lí dự án phần mềm.

2)    Kĩ thuật ước lượng phần mềm.

3)    Quản lí rủi ro.

4)    Kĩ nghệ yêu cầu.

5)    Giám định chính thức và kiểm điểm ngang quyền.

6)    Kĩ năng mềm (kĩ năng con người, kĩ năng trao đổi, kĩ năng trình bày, kĩ năng viết v.v).

7)    Kĩ năng thương lượng và quản lí hợp đồng.

Bạn sẽ cần các kĩ năng đặc biệt sau (tri thức cùng kinh nghiệm) để thực hiện việc quản lí hiệu quả:

1)    Kĩ năng trong kĩ thuật quyết định. Không phải tất cả các dự án đều như nhau, tuỳ theo kích cỡ, độ phức tạp và khu vực miền ứng dụng, bạn có thể chọn các kĩ thuật ước lượng khác nhau. Phẩm chất tối thiểu: Bạn phải biết vài kĩ thuật ước lượng và thực hiện từng kĩ thuật ít nhất một lần.

2)    Kĩ năng trong vòng đời phát triển (Thác đổ, xoáy ốc, và Agile v..) Tuỳ theo kiểu dự án bạn sẽ chọn các vòng đời khác nhau. Phẩm chất tối thiểu: Bạn phải có kinh nghiệm với từng vòng đời ít nhất một lần.

3)    Kĩ năng lập kế hoạch dự án. Phẩm chất tối thiểu: Bạn phải có kinh nghiệm trong việc viết ít nhất ba kế hoạch dự án cho các kiểu dự án khác nhau (như, nhỏ, vừa và lớn).

4)   Kĩ năng trong quản lí rủi ro: Bạn phải biết cách nhận diện rủi ro dự án, tính xác suất xuất hiện, và biết cách theo dõi và giảm nhẹ rủi ro. Phẩm chất tối thiểu: Bạn phải làm việc như người lãnh đạo tổ rủi ro trợ giúp cho người quản lí dự án trong theo dõi và giảm nhẹ rủi ro ít nhất trong một dự án.

5)   Kĩ năng trong quản lí thay đổi và quản lí cấu hình: Bạn phải biết cách kiểm soát và quản lí các thay đổi. Phẩm chất tối thiểu: Thực hiện các hoạt động quản lí cấu hình trong ít nhất hai dự án. Thực hiện kiểm soát thay đổi trong ít nhất ba dự án.

6)   Kĩ năng trong giữ cân bằng tài nguyên, lịch biểu và chất lượng: Bạn phải biết cách điều chỉnh và tiến hành bù trừ trên ba góc nhìn này để giữ cho dự án còn ổn định. Phẩm chất tối thiểu: Hỗ trợ người quản lí dự án như một phụ tá trong ít nhất một dự án.

7)   Kĩ năng trong giám sát và theo dõi tiến độ: Biết một số phương pháp theo dõi như Quản lí giá trị thu được, theo dõi tiến độ, v.v. Phẩm chất tối thiểu: Làm việc như phụ tá cho người quản lí dự án trên ít nhất một dự án.

8)   Kĩ  năng trong tuyển cán bộ và lập ngân sách: Bạn phải có kinh nghiệm trong nhận diện và thu nhận tài nguyên nhân lực (cán bộ) và ngân sách (tài chính) trong ít nhất một dự án. Phẩm chất tối thiểu: Hành động như người phụ tá cho người quản lí dự án trong ít nhất một dự án.

9)  Kĩ năng trong ra quyết định, kể cả cộng tác, kèm cặp và huấn luyện. Phẩm chất tối thiểu: Bạn phải làm việc như một phụ tá cho người quản lí dự án trong ít nhất một dự án.

Bên cạnh những đào tạo và kĩ năng này, bạn phải có cả kĩ năng viết và nói nữa.

Như bạn có thể thấy rằng phải mất thời gian và kinh nghiệm để trở thành người quản lí dự án “giỏi nhất”. Thực tế, tôi viết các yêu cầu này dựa trên nhiều “mô tả việc” cho người quản lí dự án phần mềm trong công nghiệp phần mềm và sửa đổi nó cho người phát triển như bạn. Tôi muốn thấy rằng bạn trở thành người quản lí dự án phần mềm “GIỎI NHẤT” thay gì chỉ là người quản lí dự án “TRUNG BÌNH”.

Theo ý kiến tôi, người quản lí dự án là vai trò tới cùng với nhiều trách nhiệm và công việc khó khăn cho nên xin xem xét nó một cách nghiêm chỉnh. Bạn đừng bao giờ lẫn lộn “vai trò” và “chức danh”. Ba năm trong phát triển phần mềm có thể KHÔNG đủ, bạn vẫn cần thêm vài năm nữa để học thêm nhiều thứ để là người quản lí phần mềm “GIỎI NHẤT” cho nên xin tiếp tục học tập rồi cơ hội của bạn sẽ tới khi bạn đã sẵn sàng.

—-English version—-

Project Management Skills

I received an email where the sender wrote: “I like your writing about the quality of project manager but can you be more specific on what kind of skills the project manager must have. I have worked as software developer for three years and want to know what skills or what training courses that I need before apply for a software project manager job.”

My answer: “There is no substitute for project experiences, software project manager must have several years working as software developer before become a good manager. In my personal opinion, three  years may NOT be enough to qualify as a “Good” software project manager. To start, I suggest that you take trainings in the following areas:

1)    Software Project Management.

2)    Software Estimation techniques.

3)    Risk Management.

4)    Requirements Engineering.

5)    Formal Inspections and Peer Reviews.

6)    Soft Skills (People skills, communication skill, presentation skill, writing skill, etc).

7)    Negotiation Skills and Contract management.

You will need the following specific skills (Knowledge with Experience) to perform the management job effectively:

1)    Skill in estimation techniques. Not all projects are the same, depending on the size, complexity and domain area, you may select different estimation techniques. Minimum qualification: You must know several estimation techniques and implement each technique at least once.

2)    Skill in development lifecycles (Waterfall, Spiral, and Agile etc.) Depending on the type of project then you will select different lifecycle. Minimum qualification: You must have experience with each life cycle at least once.

3)    Skill in project planning. Minimum qualification: You must have experience in writing at least three project plans for different types of project. (i.e., Small, medium and large);

4)    Skill in risk management: You must know how to identify project risks, calculate occurrence probability, and know how to track and mitigate risks. Minimum qualification: You must work as risk team leader that assist project manager in tracking and mitigate risk at least on one project.

5)    Skill in change management and configuration management: You must know how to control and manage changes. Minimum qualification: Implement configuration management activities in at least two projects. Implement change control on at least three projects.

6)    Skill in resource, schedule and quality balancing: You must know how to adjust and conduct trade-off on these three views to keep project remain stable. Minimum qualification: Support project manager as an assistant on at least one project.

7)    Skill in monitoring and tracking progress: Know several tracking methods such as Earn Value Management, progress tracking etc. Minimum qualification: Work as assistant to project manager on at least one project.

8)    Skill in project Staffing and Budgeting: You must have experience in identify and acquire resources (Staff) and budget (Financial) on at least one project. Minimum qualification: Act as assistant to project manager on at least one project.

9)    Skill in Decision Making, including collaboration, mentor and coaching. Minimum qualification: You must work as assistant to project manager in at least one project.

Beside these training and skills, you must have both written and verbal communication skills too.

As you can see that it takes time and experience to become a “GOOD” software project manager. Actually, I wrote this requirement based on several “Job descriptions” of software project manager in software industry and modify it for developer like you. I would rather see that you become the “BEST” software project manager than just an “AVERAGE” project manager.

In my opinion, Project manager is a role that comes with a lot of responsibilities and hard work so please consider it seriously. You should never confuse the “role” with a “title”. Three years in software development may NOT be enough, you still need few more years to learn more things to be the “BEST” software project manager so please continue to learn then your opportunity will come when you are ready.