Project Management part 2

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.

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University