Project Manager

Thousand years ago, the Greek philosopher Socrates taught his students “Know yourself”. Today, I like to use the same approach in software engineering by suggest that software project manager:

1) Know your project goal

For every software project, you must set priority because you can not complete everything at once. Without priority you will not be able to focus and achieve anything. You should be able to state the goal of your project in a single sentence such as “Schedule is priority number one” or “Functionality is the most important”. If you can’t, your chance of achieving success is not good.

Kipkis.com-project-manager.png

2) Know your team members

Your team members are the most important thing that you have and their performance will make your project success or failure. You must take care of them and make sure the team operates as a unified unit and not as a collection of individuals. Team communications are essential so you must invest time in promoting trust and ensuring that everyone knows what they have to do to achieve the goal.

3) Know your customers

You must communicate with your customers on a periodic basis (Daily, weekly). They will let you know which is important to them and although they will change their minds often but you must build good relationship with them because their satisfaction will be essential to your success.

4) Know your process

Many people like to code first then ask question later. That is why they need software engineering training because if you code without clearly understand the requirements then it will be very difficult to change once it gets started. So it is important to deciding exactly how you’re going to do by planning everything according to a process and understand that a good software engineer always follow the process to work efficiently. By following the process you will:
  • Build confidence in yourself that you are following a disciplined road map.
  • Have a contingency plan in the event that something goes wrong
  • Generate a disciplined atmosphere in the work environment.

5) Know your tasks.

Today most software requirements are complex so project manager must decompose them into smaller tasks for the team to implement them accordingly. The decomposition and organize these tasks is what software architecture is about. Team members must pay close attention to how each task fits the overall product. Without this systematic approach you end up with a hundred different pieces that can not be integrated.

6) Know your changes

We live in a changing world. As the project progresses things will eventually changes. Customers will come up with new ideas or your team may run into some issues during implementation. Changes must be controlled if you want to succeed. You need to build a flexible plan that absorbs changes as they come but you must not yield to any pressure. If you are too flexible your project will be out of control like a horse without a rider but if you are too rigid your project will break like glass every time change happens. You must evaluate all changes to identify impacts and determine priority, which change must be implemented first and which one can wait and discuss your plan with the customer.

7) Know your test

Do not expect things work perfectly so you must test everything as early as possible. Everybody makes mistakes so testing is the best way to find and eliminate errors. As soon as you get the requirements, prepare a test cases by asking yourself “How do I test this?” If you can not come up with a test case then either you do not understand the requirements or the requirements are not well defined by the customer. In that case, ask the customer how do they like to test it?

8) Know your limits

Success is the delivery of the finished product to a customer who is satisfied with the result. To do that you must be flexible. Don’t get locked into a rigid schedule but negotiate with the customer for a feasible time frame. Don’t get blinded by a method or tool because they are designed to support you but not solve your problems. You must use all the tools and people available to you but pay attention to what customer wants and adjust your priority and your plan to suit the conditions.

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University