12 Jan, 2021
Người quản lí có kinh nghiệm
Một dự án điển hình thường yêu cầu các thành viên tổ có những kĩ năng kĩ thuật chuyên môn nhưng với người quản lí có kinh nghiệm, một mình kĩ năng kĩ thuật là KHÔNG đủ.
Thành viên tổ tốt cũng phải có kĩ năng trao đổi tốt, kĩ năng làm việc tổ tốt, và sẵn lòng mở rộng tri thức chuyên gia của họ bằng việc liên tục học những điều mới. Người quản lí có kinh nghiệm biết cách cung cấp cho tổ mình những cơ hội để mở rộng tri thức của họ và KHÔNG giữ cùng một người làm cùng một việc trong thời gian dài. Họ hiểu rằng nếu một thành viên tổ được thuê cho một dự án nhưng kĩ năng đặc biệt của anh ta lại không được cần tới ở đâu đó khác trong công ti, thì tốt hơn cả là cung cấp đào tạo cho anh ta để cho anh ta có thể chuyển sang dự án khác thay vì đuổi anh ta và thuê người khác. Người quản lí có kinh nghiệm biết rằng đào tạo liên tục là cấu phần cần thiết của công ti và đầu tư tốt nhất là đầu tư vào người của họ. Đó là lí do tại sao các công ti có người quản lí có kinh nghiệm có cơ hội thành công tốt hơn các công ti khác.
Điều khó nhất trong quản lí phần mềm là ước lượng thời gian cần để hoàn thành dự án. Nhiều dự án có vấn đề bởi vì ước lượng sai hay thiếu ước lượng và kết thúc với các thành viên tổ phải làm việc nhiều giờ liền hơn để làm cho dự án trở lại theo lịch. Nhiều người quản lí che giấu sai lầm ước lượng bằng việc buộc người của mình làm việc nhiều giờ liền và gọi điều đó là “năng suất” (Ít người hơn, nhiều việc hơn). Tuy nhiên, nhiều giờ liền thường là triệu chứng của vấn đề quản lí tồi, và chắc chắn không phải là cách xây dựng tổ. Làm quá giờ là khái niệm về “lên khuôn thời gian.” Nếu lịch biểu đang trượt, cấp quản lí sẽ gây sức ép lên tổ để “lên khuôn thời gian” bằng làm việc nhiều giờ liền hơn và đó là lí do tại sao nhiều người “kiệt lực” và rời bỏ dự án và việc đổi người thành nhân tố then chốt của thất bại dự án.
Phần mềm là “công việc trí tuệ”, bạn không thể ép buộc mọi người làm việc nhiều giờ liền mà không phạm sai lầm và sai lầm bao giờ cũng gây tốn nhiều thời gian để sửa chữa. Giải pháp tốt nhất là cho phép tổ về nhà và nghỉ ngơi sau tám giờ làm việc để cho họ có thể quay lại công việc khi trí não tươi tắn và rõ ràng. Cách tiếp cận tốt hơn sẽ là đặt một vạch thời gian ngắn hạn với mục đích đạt tới được, có thể được đạt tới trong thời kì hai tới bốn tuần (Cũng như Scrum trong phương pháp mau lẹ agile). Khi mục đích đó đã được đạt tới, tổ sẽ cần một ngày hay đại loại như vậy để nghỉ ngơi trước khi tiếp tục. Quan điểm ép buộc làm việc nhiều giờ liền là có hại cho tinh thần của tổ và kĩ năng trí tuệ của họ. Cho phép mọi người nghỉ ngơi sẽ cho phép họ làm thoải mái tâm trí họ, không phải nghĩ về công việc là giải pháp tốt hơn vì họ sẽ cảm thấy rằng họ hoàn thành cái gì đó. Người quản lí có kinh nghiệm bao giờ cũng hiểu điều này và đó là lí do tại sao dự án của họ có cơ hội thành công tốt hơn người khác.
Một vấn đề khác trong quản lí phần mềm là ước lượng tài nguyên cần để hoàn thành dự án. Nhiều dự án có vấn đề bởi vì ước lượng sai hay đánh giá thấp về tài nguyên. Trộn lẫn vấn đề này là sự kiện về những kĩ sư có kĩ năng cao bao giờ cũng được cần tới nhiều trong thị trường và họ có thể rời bỏ dự án bất kì lúc nào. Người quản lí phần mềm bao giờ cũng phải nhận biết về giá trị của kĩ năng của tổ mình và đối xử với mọi người theo cách tương ứng. Nếu họ sung sướng với điều họ đang làm thì ít có cơ hội họ sẽ bỏ đi. Trong cuộc suy thoái kinh tế cuối cùng vài năm trước đây, khi nhiều công ti sa thải người, các công ti hàng đầu thuê họ cho nên khi kinh tế phục hồi, chỉ các công ti hàng đầu mới tồn tại bởi vì họ có tất cả những công nhân giỏi nhất có thể được. Các công ti hàng đầu bao giờ cũng năng nổ tìm kiếm tài năng bởi vì họ hiểu tri thức và kĩ năng là tài sản tốt nhất của công ti. Một trong các bí mật của họ là sự tham gia của các kĩ sư phần mềm của họ vào việc chọn lựa qui trình, vì cái vào của họ là sáng cuốt nhất. Thay vì người quản lí làm việc thuê người, họ cho phép tổ chọn lựa các ứng cử viên bởi vì họ biết kĩ về kĩ thuật và họ có thể quyết định ai sẽ phù hợp tốt bên trong tổ của họ.
Tổ tốt là một nhóm người làm việc cùng nhau mà toàn thể là lớn hơn tổng của các bộ phận của nó. Trong thế giới đang thay đổi nhanh chóng của phát triển phần mềm, vun trồng nhóm tài năng những người làm phần mềm là điều bản chất. Người quản lí có kinh nghiệm KHÔNG chỉ tìm những người có kĩ năng đặc thù mà cả những người có thái độ tốt và khả năng làm việc trong nhóm. Vì làm việc theo tổ là quan trọng, người quản lí có kinh nghiệm bao giờ cũng giám sát các hoạt động tổ và kiểm tra bất kì khía cạnh nào của dự án có vấn đề với tổ và làm việc loại bỏ chúng trước khi chúng có thể gây ra thiệt hại. Tinh thần là một trong những cấu phần quan trọng nhất cho việc hoàn thành thành công của dự án phần mềm. Người quản lí có kinh nghiệm bao giờ cũng giám sát tinh thần của tổ một cách kĩ lưỡng như người đó giám sát lịch biểu hay ngân sách. Đó là lí do tại sao dự án của họ có cơ hội thành công tốt hơn người khác.
Điều quan trọng nhất cho người quản lí phần mềm là làm hết sức mình để giữ cho tổ tập trung trong khi có những phân tán trong công ti. Bằng việc dùng các thành viên tổ một cách hiệu quả, trong thời gian làm việc hợp lí, người quản lí dự án có để đảm bảo thành công dự án và thực tế sẵn sàng bắt đầu dự án tiếp khi thời gian tới. Một vấn đề thường hay bị bỏ sót khi dự án tiến tới hoàn thành là cung cấp cho các thành viên tổ sự liên tục. Tổ có nên được giữ lại cùng nhau không? Người kĩ sư có được cho hỗ trợ liên quan tới bổ nhiệm mới tiếp sau đó không? Những người quản lí có kinh nghiệm biết cách lập kế hoạch cho việc chuyển các thành viên tổ sang nhiệm vụ mới. Nếu các thành viên tổ cảm thấy rằng họ đang bị thải loại, điều đó có thể làm hạ thấp tinh thần. Khi các thành viên đi tới cuối dự án, họ cảm thấy dường như họ đã làm nhiều việc cho công ti và họ cần cảm thấy rằng công ti đánh giá cao họ khi họ yêu cầu hướng dẫn vào lúc chuyển tiếp. Phản ứng tự nhiên cho các thành viên tổ là thảnh thơi sau khi dự án được hoàn thành, đặc biệt nếu dự án đó là rất khó và yêu cầu nhiều giờ làm việc để hoàn thành nó. Tuy nhiên, họ cần được đảm bảo rằng họ sẽ có phân công và đào tạo khác cho dự án tiếp và cho nghề nghiệp lâu dài của họ. Người quản lí có kinh nghiệm bao giờ cũng hiểu điều này và đó là lí do tại sao dự án của họ có cơ hội thành công tốt hơn người khác.
Người quản lí nên biết cách chăm sóc dự án phần mềm bằng việc chăm sóc các thành viên tổ của họ. Họ là người thực tế tiến hành dự án. Họ là tài sản thực của công ti và là nguồn thu nhập tương lai của công ti. Tổ được chăm nom tốt có thể hoàn thành dự án dễ hơn nhiều so với tổ làm thêm việc, kiệt lực. Mọi người kết thúc dự án, họ làm mọi sự xảy ra và họ nên được quản lí cẩn thận bởi người quản lí có kinh nghiệm.
—-English version—-
experienced manager
A typical software project often requires team members to have specific technical skills but for an experienced manager, technical skill alone is NOT enough. A good team member must also have good communication skills, good teaming skills, and the willingness to expand their expertise by continuously learning new things. Experienced managers know how to provide their team with the opportunities to expand their knowledge and NOT keeping the same people doing the same things for a long time. They understand that if a team member is hired for a project but his particular skills are not needed elsewhere in the company, then it is better to provide training to him so that he can transit to another project rather than fire him and hire another. Experienced managers know that continuous training is a necessary component of a company and the best investment is investing in their people. That is why companies with experienced managers have better chance to succeed than others.
The most difficult thing in software management is estimating the time required to complete a project. Many projects have problems because wrong estimates or lack of estimates and end up with team members have to work more hours to get project back on schedule. Many managers cover their estimating mistakes by forcing their people to work long hours and call it “productivity” (Fewer people, more works). However, long hour is often a symptom of a bad management problem, and certainly not a way to build team. Overtime is a concept of “making up time”. If a schedule is slipping, management will pressure the team to “make up time” by working more hours and that is why many people “Burn out” and left the project and turnover is key factor of project failure.
Software is an “intellectual work”, you can not force people to work long hours without making mistake and mistakes always cost more time to fix. The best solution is allowing the team to go home and rest after eight working hours so they can come back to work when their mind is fresh and clear. A better approach would be to set a short-term timeline with achievable goal that can be reached within two to four week period (Such as Scrum in agile method). When that goal has been reached, the team would need a day or so to rest before continue. The view of forcing working long hour is harmful to a team’s morale and their intellectual skills. Allow people to rest will allow them to ease their mind without thinking about work is a better solution since they will feel that they accomplish something. Experienced managers always understand this and that is why their projects have better chance of success than others.
Another problem in software management is estimating the resource required to complete a project. Many projects have problems because wrong estimates or underestimates on resources. Compounding this problem is the fact that highly-skilled engineers is always in high demand in the marketplace and they can leave the project at any time. A software manager must always be aware of the value of the skills of his team and treat people accordingly. If they are happy with what they are doing there is less of a chance that they will leave. During the last economic recession few years ago, as many companies laid off people, top companies are hiring them so when the economy recovers, only top companies survive because they have all the best workers possible. Top companies always aggressively seek out talent because they understand the knowledge and skills are best assets of a company. One of their secret is the involvement of their software engineers in the selection process, since their inputs are the most insightful. Instead of manager doing the hiring, they allow the team to select candidates because they know their technical well and they could decide who would fit well within their team.
A good team is a group of people working together that the whole is greater than the sum of its parts. In the fast-changing world of software development, cultivating a talented group of software people is essential. Experienced managers do NOT look just for people that have specific skills but also people with good attitude and the ability to work in groups. As teamwork is important, experienced managers always monitor the teaming activities and check for any aspect of the project that has issues on the team and work to remove them before they can cause any damage. Morale is one of the most important components for the successful completion of a software project. Experienced manager always monitors the morale of the team as thoroughly as he monitors the schedule or budget. That is why their projects have better chance of success than others.
The most important thing for a software manager is to do his best to keep the team focused during any distractions in the company. By using team members effectively, within reasonable working hours, the project manager can ensure project success and actually ready to start the next project when the time comes. An issue often overlooked when a project approaches completion is providing the team members with continuity. Should the team be kept together? Will the engineer be given support regarding his next assignment? Experienced project managers know how to plan for the transition of team members to their next assignment. If team members feel that they are being discarded, it can lower morale. When members reach the end of a project, they feel as though they have done a lot for the company and they need to feel that the company appreciates them as they require guidance at a transition. It is a natural reaction for team members to relax after a project is completed, especially if that project was very difficult and many hours were demanded to complete it. However, they need to be assured that they will have another assignment and training for the next project and for their long-term career. Experienced managers always understand this and that is why their projects have better chance of success than others.
Managers should know how to take care of the software projects by taking care of their team members. They are the ones who actually carry out the projects. They are the company true assets and the source of future revenue. A team that is well cared for can accomplish a project much easier than an overworked, burnt-out team. People finish projects, they make things happen and they should be managed carefully by experienced managers.