Điều chúng ta học hôm nay có thể lạc hậu sau vài năm cho nên một kĩ sư phần mềm không thể bằng lòng với điều bạn biết mà phải liên tục học những điều mới bởi vì học tập là hoạt động cả đời và bạn phải biết cách học, cách dỡ bỏ học và học lại. Tại sao lại dỡ bỏ học?
Bởi vì bạn phải quên điều bạn đã học nếu nó không còn hợp thời, và nếu bạn không quên nó, bạn có thể không còn khả năng học điều mới. Chẳng hạn, bạn biết cách lập trình trong COBOL và FORTRAN nhưng ngày nay, mọi người không dùng COBOL và FORTRAN nữa cho nên bạn phải học C++ hay JAVA. Các ngôn ngữ lập trình này là không tương hợp nhau, cấu trúc và ngữ cảnh của chúng khác nhau nên bạn phải quên COBOL và FORTRAN để học C++ và JAVA.
Học tập là kĩ năng có thể giúp bạn chuyển dịch thành công sang môi trường làm việc mới. Ta hãy nhìn vào nhu cầu học tập của người lập trình, người đang thăng tiến sang vị trí của người quản lí dự án bởi vì điều người lập trình tốt làm và điều người quản lí dự án tốt làm là khác nhau. Là người lập trình tốt bạn biết mọi khía cạnh kĩ thuật của tính toán, có khả năng thiết kế và viết mã theo qui trình, và làm việc trong tổ để đạt tới mục đích chung. Là người quản lí dự án bạn sẽ cần nhiều hơn là các khía cạnh kĩ thuật.
Bạn phải hiểu cái gì phải được làm trong dự án, cách làm nó và khi nào nó phải được hoàn thành để cho bạn có thể giải thích rõ ràng cho tổ dự án và động viên họ làm cho công việc được thực hiện.
Là người quản lí dự án, bạn cần nhận ra khác biệt giữa mọi người trong dự án, không phải mọi người đều có cùng kĩ năng hay xoay xở tốt, cho nên bạn phải biết cách phân công các nhiệm vụ khác nhau cho họ dựa trên khả năng của họ, và giúp họ giải quyết mọi vấn đề cá nhân để cho họ có thể làm việc cùng nhau như một tổ đạt tới mục đích của dự án. Là người quản lí dự án, bạn không nói với họ như người lập trình chia sẻ giải pháp kĩ thuật với nhau mà như ai đó chỉ đạo họ rõ ràng, giải thích cho họ về vai trò, trách nhiệm của họ rồi động viên họ làm nó tương ứng.
Đây là những kĩ năng mới mà bạn phải học và khi bạn học những kĩ năng này, bạn thực tế sẽ thay đổi cái nhìn của mình bởi vì quản lí là kĩ năng làm cho cái gì đó được thực hiện CHỨ KHÔNG chỉ làm cái gì đó. Bạn không thể xây dựng được cái nhìn mới trên đỉnh cái nhìn hiện tại của mình vì nó sẽ tạo ra xung đột, nhưng bạn phải dỡ bỏ kĩ năng khác để học kĩ năng mới. Buông bỏ cái nhìn không còn liên quan nữa là bước đầu tiên của việc học.
Là người quản lí dự án, bạn phải biết cách trao thông tin cho mọi người trong dự án cũng như nhận thông tin từ họ; bạn phải biết kĩ năng của họ và điều họ cần để cho bạn có thể hỗ trợ được họ. Là người quản lí, bạn phải tự mình làm gương để giải quyết vấn đề và đánh giá hiệu năng của họ để đảm bảo rằng họ đang làm việc hướng tới mục đích chung. Nhiều người hỏi tôi tại sao nhận và cho thông tin lại là kĩ năng mới khi mọi người nói và chia sẻ thông tin lẫn nhau mọi lúc.
Tất nhiên những người lập trình nói với nhau hàng ngày nhưng họ bình đẳng về việc chia sẻ tin tốt hay tin xấu, chẳng thành vấn đề mấy, nhưng với người quản lí dự án, người lập trình có thể không muốn chia sẻ mọi thứ cho nên bạn phải kiểm điểm cẩn thận thông tin mà bạn nhận được từ họ rồi thẩm tra lại nó. Nếu bạn không cẩn thận, thông tin có thể bị bóp méo, bị thay đổi và không là sự kiện nữa đặc biệt nếu tin là không tốt. Những người cho thông tin có thể KHÔNG nói cho bạn mọi điều cho nên bạn phải thẩm tra nó và việc thẩm tra thông tin là kĩ năng mới mà bạn phải học.
Là người quản lí bạn phải hành động theo thông tin bạn có và nếu bạn không có mọi sự kiện, bạn có thể ra quyết định sai. Dự án phần mềm tồn tại vì mục đích được xác định rõ: Chuyển giao phần mềm chất lượng trong phạm vi chi phí và lịch biểu mà bạn hứa với khách hàng và là người quản lí bạn phải có khả năng động viên và lãnh đạo tổ hướng tới mục đích chung cũng như giữ cho tổ được hạnh phúc. Quản lí hiệu năng dự án là kĩ năng bạn phải học bằng việc đem mình ra làm gương cho tổ để cho họ có thể theo. Mọi người sẽ theo bạn nếu bạn làm việc của mình tốt, chứng tỏ khả năng lãnh đạo của bạn, hành động tương ứng, và biểu lộ thái độ tích cực. Trên hết, bạn phải chăm sóc họ bằng việc chân thành với họ. Nếu họ tin cậy bạn và theo bạn, một nửa công việc dự án đã được hoàn thành rồi.
The concept of learning is facing fundamental changes due to the changes in technology and the global economy. What we learn today may be obsolete few years from now so a software engineer can not be content with what you know but must continuously learning new things because learning is a lifelong activity and you must know how to learn, to unlearn and re-learn. Why unlearn? Because you must forget what you already leaned if it is no longer valid, and if you do not forget it you may not be able to learn new thing. For example, you know how to program in COBOL and FORTRAN but today, people do not use COBOL and FORTRAN anymore so you must learn C++ or JAVA. These programming languages are not compatible, their structure and context are different so you must forget COBOL and FORTRAN in order to learn C++ and JAVA.
Learning is a skill that can help you successfully transition to the new work environment. Let’s look at the learning need of a programmer who is advancing to project manager position because what a good programmer does and what a good project manager does are different. As a good programmer you know all the technical aspects of computing, be able to design and code according to the process, and work in team to achieve a common goal. As a project manager you will need more than technical aspects. You must understand what must be done in a project, how to do it and when it must be completed so you can clearly explain to project team and motivate them to get it done. As a project manager, you needs to recognize the differences between people in the project, not everybody have the same skill or get along well, so you must know how to assign different tasks to them based on their abilities, and help them solving any personal issues so they can work together as a team to achieve the project goals. As the project manager, you do not talk to them like programmer sharing technical solution with each others but as someone who clearly directs them, explain to them about their roles, responsibilities then motivate them to do it accordingly. Theses are the new skills that you must learn and when you learn these skills, you actually will change your view because management is the skill to get something done NOT just do something. You cannot build a new view on top of your existing view since it will create conflict, but you must unlearn the other skill to learn new skill. Letting go of non-relevant view is the first step of learning.
As a project manager, you must know how to give information to people in the project as well as receive information from them; you must know their skills and what they needs so you can support them. As the manager, you must set yourself as an example to solve problem and evaluate their performance to ensure that they are working toward the common goal. Many people ask me why getting and giving information is a new skill when people talk and share information with each other all the time.
Of course programmers talk to each other everyday but they are equal so sharing good new or bad new are not much an issue but to a project manager, programmers may not want to share everything so you must careful review the information that you receive from them then verify it. If you are not careful, the information may be distorted, changed and not factual especially if the new is not good. The people who give the information may NOT tell you everything so you must verify it and information verification is a new skill that you must learn. As a manager you must act according to the information that you have and if you do not have all the facts, you may make the wrong decision. The software project exists for a well defined goal: To deliver quality software within costs and schedule that you promise the customer and as the project manager you must be able to motivate and lead the team toward the common goal as well as keep the team happy. Managing project performance is a skill that you must learn by setting yourself up as an example for the team so they can follow. People will follow you if you are doing your job well, demonstrate your leadership ability, act accordingly, and show a positive attitude. Most of all, you must take care of them by being honest with them. If they trust you and follow you, half of the project work already been done.