Coaching & Mentoring Software Project Teams
Within the realm of software development projects, project managers are generally considered as nosy, irrelevant and obstacles on the path to project completion – both by developers and their managers. This is mostly because by nature software development is driven by a wish list and constrained only with time, scope and money. Time and scope is generally interdependent, while money can always be worked around by taking a less costly approach e.g. lets build it instead of buying, or outsource it to South Asia etc. This can never be done for projects in the construction industry or within manufacturing for instance, since the constraints are physical and cannot be toyed with too much.
5 Paths to Project Success
Having faced problems a few times within my software development projects and after being a witness to a horrendous software delivery project (by another team); I have narrowed the solution down to a short list of actions that need to be done by project managers in order to minimize future catastrophes and make these projects a success. I find the easiest path to project success is to coach the teams on why certain steps or actions are important and how PM methodologies can be best used for that project.
1. Explain to the team why you are doing something
Think a little aloud and explain to the team why you are doing something, ask them what they think. Remember at all times that they are not drones, they are software engineers. They think through every thing hence when you think aloud they will start understanding the bigger picture and help you get there. They will trust you.
2. Tell them about previous experience
Give examples from previous experience and tell them what you learnt and how the application of PM methodology back then would have helped alleviate the problems. Don’t think that they will think less of you. Most of them already do. You can only go up.
3. Make the WBS with them
Sit with them when you make the WBS. Question their answers and explain what you are thinking and what you wish to achieve. Keep thinking loudly.
4. Build with maximum flexibility
Understand the differences and make them work for you. By nature project managers can’t help plan, anticipate and have alternates for everything they do. On the other hand, software engineers and development managers do not operate this way and prefer to build something that doesn’t fall prey to viruses, malware and hacks. This is when a project manager needs to coach the team on how to build with maximum flexibility so it can be extended since the PM knows that the client will want to be able to specify his own parameters or properties.
5. Go over the plan
When planning details of project engagement/communication go over the plan with the team so they understand what you need to do and what they need to do when problems occur. They will automatically not try to do anything to create problems such as taking in client wish lists and gold plating the project.