An Advice to Software-Project Planners

Şadi Elaşkar
2 min readSep 4, 2022

--

A common planning error which software project managers tend to make is underestimating the time/effort needed to support existing projects/clients (if they do it at all 🙂). They can easily think that they can roll out several implementations (could be projects, new features or clients) over the course of 6 months, and then consider them as ‘done’ work, and the team won’t need to regularly support/maintain those implementations.

I have seen this problem in companies of all sizes. The management simply doesn’t realize that with each implementation, you need to reserve some of the capacity of team to support existing implementations. The more implementations you do, the smaller team’s capacity gets. And eventually, your team won’t have time to work on new ‘healthy’ implementations, because they will be distracted too often with production issues.

Having an operations team is not a solution to this problem. Because, it is a planning error made by the management. This problem is not stemmed from lack of human resources, so adding more people the project won’t solve it. Having a separate team for supporting existing clients may even make this problem worse by feeding the misjudgement of decision makers:

“We have a team for that. Don’t worry about it.”

The results are probably obvious to the most:

  • Constantly missed deadlines
  • Poorer product quality, messy codebase.
  • Stressing working environment (especially hostile to people who are creative or like to do some solid work 🙂)
  • Unhappy clients and employees

Sad thing is that project management can usually get away with this. Because, impediments to blame are usually abundant.

My suggestion to people who are in charge of project planning is to push back against urges — internal (including self) or external — to deliver more. Instead, regularly go over existing issues (including the difficulties experienced by the team) and prioritize them over new features/projects etc.. This will:

  • Mean a cleaner codebase, smoother development process, fewer bugs and ‘unforeseeable’ impediments 😉
  • Prevent exhausting the team with insufferable amount of workload 🙂
  • Leave room for team members to learn and grow.
  • Eventually help set more realistic deadlines.

I hope to see more people who are aware of this common planning mistake, and do their plannings accordingly 🙂

--

--