5 MINUTE READ
Project management is never an exact science, but when you combine it with the vagaries of software development, you have a recipe for disaster. Whether you are developing brand new software, or simply upgrading or adding on to the software you currently have, you can expect your fair share of challenges.
You and your team may put so much time, energy – maybe even some blood, sweat, and tears – into a project only to see it fail to live up to initial expectations. Ultimately, it’s the Project Manager’s (PM) responsibility to prevent this from happening.
Software development teams often adopt strategies that simply don’t work for their particular business or team at that particular time. Other teams adopt the right strategy but fall short on the execution.
By taking time to create and implement a well thought out software project management strategy, you drastically increase your chances of success.
Dmitriy Nizhebetskiy, Management Mentor at PMBasics, takes software developers and turns them into effective project managers. We spoke to him for advice on keeping teams motivated and projects on track.
Planning and prioritising
Planning and prioritising is the bedrock of project management. Dmitriy recommends a precise, well-defined approach.
“First, all parties (PM, team, customers etc.) must clearly understand the goal of the project. Tasks that do not help achieve the intended goal have no place within the project scope. They should be discarded outright.
Everything that does fall within the scope should then be prioritised as either ‘must have’, ‘should have’ or ‘nice to have’. After this, you should focus your efforts on producing tangible ‘must have’ results. If you finish all your ‘must haves’ with time remaining, then you should begin work on the ‘should haves’. Only when everything else has been completed should you switch to the ‘nice to have’ tasks” he said.
Following this process should result in the creation of a well-prioritised task list, or a schedule of daily, weekly and monthly activities. Having a shared understanding of priorities empowers a team to move in a uniform direction towards a common goal.
If you already rely heavily on your calendar during projects then you might want to check out During. Founder Zach Holman and team are using what they’ve learned from a combined 12.5 years at GitHub to “build a calendar for people who live in their calendar.” You can sign up for early access to the beta here.
Avoid needless distractions, not all distractions
Distraction can put the brakes on even the best planned projects.
With so many distractions these days, it’s very easy lose focus and stray away from priority tasks. As a result, some PMs adopt a zero tolerance policy to try and deal with the problem. However, Dmitriy was quick to point out that this approach is unrealistic.
“Distractions are inevitable and are a part of modern work. And many PMs do not handle them transparently. While it may seem counterintuitive, the best way to cut down distractions is to plan them into the project. Allow 2 hours for ‘distractions’. And keep your remaining 6 hours for effective project-focused work. If you refuse to accept distractions, you are fighting a losing battle” he said.
It’s wrong to assume distractions are unethical to do good work. In fact, some developers say their best work comes from not thinking about a problem for a while and returning to it after being distracted. It often helps to get away from a problem and return to it with fresh eyes.
However, as you are probably well aware, this doesn’t work everytime. If inadequate problem solving is consistently slowing down your projects, read ‘The Pragmatic Programmer’ by Andrew Hunt and David Thomas. First published in 1999, it remains highly relevant for modern development teams. The book isn’t focused on code or tied to a particular technology. It’s more about a mindset. It outlines a pragmatic way of approaching the challenges that inevitably crop up during development projects.
Some of the most common pitfalls project managers find themselves in are related to either over or under delegation of tasks. There is a level of trust involved in delegation. Team members should have the room they need to make decisions and complete tasks on their own.
“The only way to delegate tasks effectively is to delegate a lot. I believe that a project manager should delegate everything except for project management decisions, motivation, and facilitation of work,” said Dmitriy.
Handing over control in this way means accepting the project will not turn out the same way as if you did everything yourself. Often there is a temptation to think “It’ll be faster if I do it” or “At least it will be done right the first time”. But this is a trap that should be avoided. It’s the primary way project managers overwork themselves. Very few projects are successful as a one-person team.
Sure, you can probably do the task better and faster, but you wouldn’t be a project manager if you completed all the tasks. However, care must be taken to set expectations and communicate things clearly. “You should spend more of your time explaining your tasks and expectations than controlling them,” said Dmitriy.
Cultivating discipline and motivation
In order to cultivate discipline, a little bit of discipline is required. In other words, there must be a commitment to follow through. However, you should be prepared for the fact that you may be met with some degree of reluctance or even hostility.
“Usually, people do not see value in following processes and timelines. You need to work hard to show how they will benefit from some discipline. But when cultivated in the correct way, discipline often leads to self-motivation as people start to achieve more and there is a clear correlation between their efforts and the impact they make” said Dmitriy.
The key is is to avoid building a rigid framework. Boxing team members in to a certain way of doing things stifles creativity. “You need to keep the number of rules and policies to a minimum” said Dmitriy. Only rules fundamental to the success of the project should be implemented. Otherwise, team members should be free to experiment in order to find out which approaches generate the best results.