Một người quản lí phần mềm viết cho tôi: “Sau bốn năm làm việc như người phát triển phần mềm, em được đề bạt làm người quản lí dự án. Công ti cử em theo lớp học quản lí dự án hai tuần để cải tiến kĩ năng của em. Em cũng học nhiều từ blog của thầy. Em muốn là người quản lí dự án phần mềm giỏi nhất. Thầy có lời khuyên phụ nào không?”

Đáp: Là người quản lí dự án mới, bạn sẽ thu được nhiều kĩ năng và kinh nghiệm hơn với thời gian làm quản lí dự án phần mềm. Cấp quản lí của bạn đã nhận ra bạn là người phát triển giỏi và đã thưởng cho bạn vị trí mới. Công ti cũng đã đầu tư vào bạn bằng việc cử bạn đi dự khoá đào tạo. Bây giờ bạn cần chứng minh khả năng lãnh đạo của bạn đặc biệt trong quản lí dự án phần mềm với báo cáo đúng về tiến độ và thành công của dự án.

Để trở thành người quản lí dự án phần mềm hiệu quả, bạn phải tập trung vào mục đích và hạn chót của dự án của bạn, hỗ trợ cho tổ của bạn, và làm việc tốt với mọi người hỗ trợ cho dự án và khách hàng. Với mọi dự án, bạn cần đặt ra viễn kiến hay chiều hướng cho tổ tuân theo. Bằng việc có viễn kiến, bạn biết đích xác mục đích và chủ định của bạn và cấp quản lí mong đợi gì từ bạn. Và chừng nào bạn còn giữ trao đổi rằng viễn kiến đã không thay đổi, bạn sẽ thành công. Nếu bạn có thể chuyển giao kết quả mong muốn, cấp quản lí sẽ nghĩ về bạn như người quản lí dự án hiệu quả.

Từng dự án đều có lịch biểu. Thỉnh thoảng nó được khách hàng đặt ra, thỉnh thoảng do cấp quản lí. Bạn cần hiểu rõ ràng về lịch biểu và lí do tại sao họ đặt ngày tháng đó. Bằng việc hiểu lí do; bạn sẽ biết liệu nó là ngày tháng cố định mà không thể được thay đổi hay là ngày tháng tuỳ tiện mà bạn có thể thương lượng. Bạn phải làm việc với tổ dự án của bạn để đi tới ước lượng thoả đáng mà tổ của bạn sẽ hỗ trợ. Từ những ước lượng này, bạn có thể bắt đầu thương lượng với cấp quản lí về lịch biểu. Nếu lịch biểu là ngày tháng cố định và có khác biệt lớn giữa ước lượng của bạn và lịch biểu này, bạn phải hỏi xin thêm người hay giảm chức năng dự án. Tất nhiên, nếu đó là ngày tháng linh động thì bạn có thể xin thêm thời gian. Một số người quản lí dự án không coi trọng lịch biểu hay không bao giờ để ý tới nó và đó là lí do tại sao nhiều người không chuyển giao dự án của họ đúng thời gian. Đừng cho phép bản thân bạn lâm vào tình huống đó. Coi lịch biểu là quan trọng và phải chắc rằng bạn không bao giờ bỏ lỡ hạn chót. Bằng việc làm điều đó, cấp quản lí sẽ nghĩ về bạn như người quản lí có kĩ năng có giá trị, đáng tin.

Mọi dự án đều có ngân sách. Ngân sách là công cụ kiểm soát để đo tính hiệu quả của nỗ lực quản lí. Ngân sách thường được theo dõi bởi người chủ công ti để nhận diện rủi ro và lợi nhuận. Phải chắc rằng bạn ước lượng ngân sách của bạn đúng đắn và cẩn thận với chi tiêu của bạn. Là người quản lí dự án, bạn phải giám sát và kiểm soát ngân sách của bạn một cách cẩn thận trong khi dự án đang thực hiện.

Tổ phần mềm thường có xung đột giữa các thành viên. Lí do là nhiều người phát triển chưa bao giờ nhận được đào tạo về tổ hay biết cách làm việc trong tổ. Lúc bắt đầu dự án, phải chắc rằng bạn dành thời gian để xây dựng tổ và phân công vai trò, trách nhiệm cho từng thành viên một cách rõ ràng và hợp lí để tránh mọi xung đột về sau. Mỗi ngày, dành thời gian cùng tổ để nói chuyện với họ và khuyến khích họ về công việc của họ. Bằng việc làm việc với tổ trên cơ sở hàng ngày, bạn có thể nhận diện các vấn đề và giải quyết chúng trước khi chúng trở thành không thể giải quyết được. Khả năng của bạn để giải quyết các xung đột có thể là thuộc tính quan trọng nhất cho việc quản lí dự án thành công. Bạn chắc chắn muốn được biết tới như người quản lí hiệu quả. Bạn không muốn để cho quản lí cấp cao phải bước vào để giải quyết xung đột cá nhân cho bạn.

—-English version—-

Effective project manager

A software manager wrote to me: “After four years working as a software developer, I was promoted to project manager. The company sent me to a two-week project management course to improve my skills. I also learned a lot from your blog. I want to be the best software project manager. Do you have any additional advices?”

Answer: As a new project manager, you will gain more skills and experiences with time in managing software projects. Your management has recognized you as a good developer and rewarded you with a new position. The company also invested in you by sent you to a training course. Now you need to demonstrate your leadership abilities especially in software project management with proper reporting of project progress and successes.

To become an effective software project manager, you should focus on your project goals and deadlines, support your team, and work well with all people supporting the project and customers. For every project, you need to set vision or direction for the team to follow. By having a vision, you know exactly your purpose and goals and what management expects from you. And as long as you keep communicating to ensure that the vision has not changed, you will succeed. If you can deliver the desired result, management will think of you as an effective project manager.

Each project has a schedule. Sometime it is set by customer, sometime by management. You need to understand clearly about the schedule and the reason why they set that date. By understand the reason; you will know whether it is a fixed date that cannot be changed or an arbitrary flexible date that you can negotiate. You must work with your project team to come up with a reasonable estimate that your team will support. From these estimates, you can begin to negotiate with management on the schedule. If the schedule is a fixed date and there is a significant difference between your estimate and the schedule, you should ask for more people or reduce project functionality. Of course, if it is a flexible date then you could ask for more time. Some project managers do not take schedule seriously or never pay attention to it and that is why many failed to deliver their projects on time. Do not allow yourself into this situation. Consider the schedule as important and make sure that you never miss a deadline. By doing that, management will think of you as a dependable, valuable skilled manager.

Every project has a budget. Budget is a control tools for measuring the effectiveness of management’s effort. The budget is often tracked by company owners to identify risk and profits. Make sure that you estimate your budget correctly and be careful with your spending. As project manager, you should monitor and control your budget carefully while the project is underway.

Software teams often have conflicts among members. The reason is many developers have never received team training or know how to work in team. At the beginning of the project, make sure that you spend time to build the team and assign roles, responsibilities to each member clearly and reasonably to avoid any conflict later. Each day, spend time with the team to talk to them and motivate them about their works. By being with the team on a daily basis, you can identify issues and solve them before they become unsolvable. Your ability to resolve conflicts may be the most important attribute for successful project management. You certainly want to be known as an effective manager. You do not want to get top management to step in to solve personal conflicts for you.