Là người quản lí dự án, bạn phải lấy được yêu cầu từ khách hàng, lịch biểu kế hoạch, tài nguyên và thiết kế tất cả các đường găng, các cột mốc, các hạn chót để chắc chắn rằng bạn đáp ứng yêu cầu cũng như tạo ra các kiểm thử nội bộ, kiểm thử chấp nhận. Bạn cũng ban hành các chỉ dẫn, thiết lập các giao thức thông tin, báo cáo trạng thái, họp và giải quyết lỗi, vấn đề, tình huống khẩn trương và mọi tài liệu. Tuy nhiên, sau nhiều năm quản lí cả các dự án nhỏ và lớn, tôi có thể nói rằng nhân tố quan trọng nhất đem dự án tới thành công là “vấn đề nhân lực”.
Theo kinh nghiệm riêng của tôi, phần lớn các dự án phần mềm không bao giờ đi theo đúng kế hoạch bởi vì khách hàng bao giờ cũng thay đổi các yêu cầu nhưng không bao giờ thay đổi lịch biểu hay chi phí. Họ bao giờ cũng phàn nàn rằng dự án phần mềm bị chậm, đắt và không cung cấp cho họ điều họ muốn. Tuy nhiên, phần lớn dự án tôi quản lí bao giờ cũng thành công đầy đủ, tới mức độ nào đó, bởi vì những yếu tố “nhân lực” trong những dự án đó. Đó là lí do tại sao tôi nghĩ nhân lực là khía cạnh quan trọng nhất của tất cả các dự án phần mềm.
Khi dự án lâm vào vấn đề nghiêm trọng, phương pháp hay công cụ quản lí tốt nhất sẽ không có ích bởi vì chúng không được thiết kế để giải quyết loại vấn đề này. (Không công cụ nào có thể sửa chữa được phàn nàn của khách hàng và phương pháp quản lí được dạy trong đại học không bao quát các vấn đề về thay đổi yêu cầu – Bao nhiêu giáo sư đã từng thay đổi bài tập lớn cho học sinh?) Chỉ những người tận tuỵ, cam kết, có tính đổi mới cao với năng lực, kinh nghiệm và tri thức của họ mới có thể giúp bạn giải quyết được những vấn đề này.
Tôi không nói rằng chỉ nhân lực tốt mới làm cho các dự án phần mềm thành công nhưng không có nhân lực tốt thì dự án không thể được thực hiện. Tôi đã thấy nhiều nhân viên làm việc cần mẫn để sửa chữa vấn đề không đòi hỏi bao nhiêu ngày trong tuần hay bao nhiêu giờ trong ngày, nếu cần thì từ 14 tới 16 giờ là chuyện thường lệ. Họ sẽ thảo luận về điều được cần tới và điều có thể được thực hiện để giúp cho người quản lí dự án của họ tránh thất bại. Một số người có thể làm việc nhiều tuần để sửa hệ thống quan trọng nhất khi nó bị hỏng. Nhiều người ít ngủ hay không ngủ chút nào mà không phàn nàn gì. Cho nên để đảm bào thành công, người quản lí phải hỏi câu hỏi: Tôi phải tìm những người như thế ở đâu đây?
Câu trả lời là ở trong hành vi của bạn bởi vì chính người nhân viên giỏi sẽ tìm người quản lí xứng đáng để làm việc cùng chứ không theo cách khác. Phần lớn các bài giảng về quản lí không bao giờ đề cập tới việc khen thưởng hành vi tốt đẹp bạn muốn được lặp lại bởi vì phương pháp của người quản lí ít ảnh hưởng tới nhân viên và hành vi của họ. (Phần lớn các giáo sư chẳng bao giờ làm việc trong công nghiệp hay đòi có người làm việc cho họ để cho họ ra lệnh chứ không phải là khen thưởng hay thừa nhận) cho nên họ dạy rằng bạn là ông chủ và có quyền đòi hỏi nhân viên làm việc cần mẫn hơn và nhiều hơn thay vì hiểu rằng việc bó buộc đó không đem tới hành vi tốt nhất của nhân viên.
Để là người quản lí tốt, đặc biệt là người quản lí phần mềm bạn phải hỏi:
1) Tôi có phải cảm ơn những người làm việc tốt không?
2) Cá nhân tôi có nên viết bức thư ngắn hay email “cám ơn” mọi người về hiệu năng của họ không?
3) Tôi có nên áp dụng hiệu năng của nhân viên làm cơ sở cho đề bạt không?
4) Cá nhân tôi có nên thừa nhận công khai hiệu năng tốt của mọi người không?
5) Tôi có nên tổ chức họp tôn vinh sự thành công của các nhân viên không?
6) Tôi có phải yêu cầu chủ tịch công ti thưởng cho những người có hiệu năng tốt không?
Nếu câu trả lời là KHÔNG thì tốt hơn cả là bạn hãy học những điều này thật nhanh bởi vì người nhân viên tốt bao giờ cũng có cơ hội chọn lựa nơi làm việc tốt và những người quản lý giỏi.
Managing a software project is a difficult job: As a project manager, you must get requirements from customers, plan schedules, resources, and then design all critical paths, milestones, deadlines to make sure that you meet the requirements as well as create all internal tests, acceptance test. You also issue directions, set up transfer protocols, status reports, meetings and deal with bugs, issues, emergency situations and all documentations. However, after many years of managing both small and large software projects, I could say that the most important factor bringing a project to success is the “People issues”.
From my own experiences, most software projects never go according to plans because customers will always change requirements but never change the schedule or cost. They always complain that software projects that are late, costly and not give them what they want. However, most projects that I managed always complete, to some degree, successful because of the “Good people” on those project. That’s why I think people are the most important aspect of all software projects.
When project comes to serious problems, the best management method or tools will not help because they are not designed to solve these kind of problems. (No tool can fix customer’s complains and the management methods taught in university does not cover the issue of requirements changes – How many professor ever change the assignments to students?) It’s only the people who are dedicated, committed, highly innovated with their abilities, experiences, and knowledge can help you to solve these problems.
I’m not saying that only good people will make software projects success but without good people the project will not get done. I have seen many people work hard to fix problems no matter what day of the week or what hour of the day, if needed – a 14 to 16 hours of work is a normal routine. They will discuss and on what are needed and what can be done to help their project manager avoid failure. Some may work several weeks to fix the most important systems when it crashed. Many barely sleeping or no sleeping at all without complains. So to ensure success, manager must ask the question: Where do I find people like that?
The answer is in your behavior because it is the employees that are looking for the manager to work for and not the other way around. Most courses on management never address rewarding the behavior you want repeated because manager method have fewer ways to influence employees and shape their behavior. (Most professors never work in industry or having people work for them so they used to give order rather than reward and recognize) so they taught that you are the boss and have the right to demand employee to work harder and more rather than understand that coercion does not bring out the best behavior of employees.
To be a good manager, especially software manager you must ask:
1) Have I congratulate people who do a good job?
2) Have I personally write “thank you” notes or emails to people about their performance?
3) Have I use performance as basis for promotion?
4) Have I personally and publicly recognizes people for good performance?
5) Have I hold meetings to celebrate success?
6) Have I ask the president of the company to reward people with good performance?
If the answer is NO then you better learn these things quickly because good people always have the choice to work for you or somebody else.