Do you find this helpful? Do you have tips or advice? How can I improve? Please let me know @engineerturnspm or



I learned to trust others to do:

  • Programming – I trust all the programmers on my team to be able to code correctly to the written specs. I make sure there’s a peer review process in place and done regularly to ensure there’s feedback among them and internal learning is in place.
  • Testing – I trust all the programmers and analysts to do testing and cover all the corner cases (the edge cases) to the written specs. Again, peer reviews is important.
  • Design and Architecture – I usually get help from more experienced tech team members. However since my background is in software engineering, I like to review the design and architecture when they are ready and give them feedback.

But Verify

Here are a few things I must keep an eye on.

  • Working on the right things everyday.
  • Conflicts are managed and solved creatively.
  • Learning process is in place. Team member learning from one another, learning from an expert, learning from past experience.
  • Listening to the customer everyday.
  • Communications to team members, customers, management team, PMO.
  • Accountability of everyone.
  • External influences such as policy and compliance.
  • Expectations are communicated and managed.

There are much more. For fun go read 100+ lessons learned by NASA here. Rethink why you want to be a PM.

Important Concepts to be Aware of

Mythical man month

Adding manpower to a late software project makes it later.

Theory X, theory Y

Theory X stresses the importance of strict supervision, external rewards, and penalties: in contrast, Theory Y highlights the motivating role of job satisfaction and encourages workers to approach tasks without direct supervision.

Maslow’s hierarchy of needs

Five dysfunctions of a team

Diffusion of innovation