Lead complex software projects effectively
Curious people may find this title familiar. It’s inspired by7 Habits of Highly Influential PeopleI used to think the book was a cliché until I read it myself. It’s awesome, and I think we can learn a lot from it, both in our personal lives and in our professional lives.
In this series of articles, I’m going to explore some of those habits, and how they can help us lead complex software projects more effectively.
Reactivity is our default operating mode. We react to stimuli experienced around us. We do not initiate in this mode, we only respond to circumstances. It also means that we are primarily promoting other people’s agendas, because we do not take our own stance.
On the other hand, hyperactivity does not come naturally. For this we need to spend energy. For this we have to think for ourselves and decide what we want. Being proactive means taking action and taking control of your destiny.
Most of the time, we are in reactive mode. It’s not all bad because it helps us adjust to the world around us. You do not want to be unaware of what is happening around you. However, if we have to lead, it is not enough to respond. We must take positive action towards a goal. We should be proactive.
Let’s say you have a project you want to lead. This is a complex project that requires a lot of work. It also requires coordination between many different teams. If you live in reactive mode, a few things are going to happen:
- You will not have time to work on it, because other “urgent” tasks will interfere.
- The other teammates certainly won’t have time for this, as they have other “urgent” tasks as well.
- Other teams can’t even think about it; They have their own agenda to worry about.
Bottom line: Your project isn’t going anywhere.
If you are in reactive mode there will always be something more urgent to deal with. Sometimes, that’s fine. A critical production bug is more urgent and important than a long-term infrastructure project. However, this shouldn’t happen very often – and if it does, it means you’ve prioritized importance for too long.
To dominate the instant, we must determine what is important to us. Once this is decided, we must take action to promote what is important to us in this matter – our project. This means a few things:
- Scheduling non-negotiable time to make progress on the project. In this way, you are indicating its importance. You are also taking control of your time instead of waiting for others to fill your calendar with your agenda.
- Making sure other teammates are onboard. You need to make sure they understand the importance of the project, and the role they need to play to get it off the ground. This may take some effort on your part, as they have other tasks to do.
- Making sure other teams are onboard. Different teams often have completely different agendas. You need to make sure your project is on their agenda. If it isn’t, be sure to communicate its importance (more than once, if necessary) to using them for the task.
The things that I have mentioned above should be done consistently. It is common practice to be proactive at the beginning of the project. But over time, the default mode creeps in, we become reactive and spend most of our time extinguishing the fire.
Reactivity is our default operating mode. It helps us adapt to the world around us, but it’s a terrible way to lead software projects.
To lead projects effectively, you need to be proactive. It is not enough to plan the execution of your project. You also need to set aside time dedicated to working on it, so that you can make progress even when unexpected urgency arises. And lastly, you must make sure it remains on the agenda of each of your stakeholders, both inside and outside your team.
#Advice #Leading #Software #Projects #Stay #Proactive #Guy #Erez #July