5 must-follow principles in advanced project management
This article is not telling about project management theory from books, but here are enlisted my key principles based on my years of practice.
Forecast and prevent problems.
“Everything that can possibly go wrong will go wrong” – this is a well known Murphy’s law and it’s even more actual in software development. In particular when a customer provides requirements with some hazy statements assuming that you understand the final expectation well, you still cannot expect that your dev team will have a correct understanding too. In such cases, it is not right to hope for the best, but all these requirements need to be well-detailed during team meetings to prevent any possible misunderstandings.
Visualize progress to see the whole picture, use appropriate tools
Even though this is a standard project management practice, its highly necessary to make the correct planning and avoid bad surprises for the customers. The common approach is to split requirements into smaller tasks, create estimates for each task, assign them to appropriate people and later track the GANTT diagram to see the current progress and real deadlines. It’s assumed that deadlines for the specific tasks can be edited during the iteration.
Always be aware of priorities, approaches and current problems
Reconsider task priorities occasionally, discuss approaches with the team (about delivery strategy, server infrastructure, technology, etc), assist the team in resolving current problems or make a necessary allocation.
Split the responsibilities correctly to avoid demotivation among the team
If you assign a more complex task to developer than his skills level – it is normal and will contribute to his experience growth. But if all the tasks related to e.g. administration, automation or infrastructure are assigned to a web developer then you should expect his demotivation about the job he is doing.
The mentioned types of tasks should be assigned to an IT administrator, DevOps and infrastructure expert correspondingly. And it is always better to allocate an external (but trusted) member than exploit your current staff with those tasks. If there are no trusted people available, then the problem lies more in recruiting than project management, but my tip here is to start building trustful friendly relationship with the experts in different areas. It is highly useful to be able to have specific/untypical tasks done on demand just because you have right people at hand and can assign those tasks to them.
React immediately in critical situations.
You should never hope for the luck. If the problem happened on the project it can never be ignored or postponed for the better time. Technical problems can be resolved by lead developers / tech leads, but everything related to organization problems, plannings, key decisions should be a subject of prompt intervention by management staff.