I am unable to deliver a project because the developer is stuck on a problem for the past 3 days. It looks like he can't actually solve it. I am extremely frustrated, and so is the developer.
What should I do? Client and MD is getting on my back.
Project Management Stack Exchange is a question and answer site for project managers. It only takes a minute to sign up.
Sign up to join this communityI am unable to deliver a project because the developer is stuck on a problem for the past 3 days. It looks like he can't actually solve it.
If you are the project manager, part of your job is to identify resource limitations and inform senior management of problems. In this case, the problem is a resource constraint and a project risk. Specifically:
You need to take this information to your leadership team, and they need to resolve it. They may choose to allocate or hire additional development resources, adjust the project schedule, or change the scope or requirements to bypass the problem altogether.
The decision of what to do about the problem itself isn't yours. Your responsibility is to effectively communicate information to those who are strategically responsible for the success of the project, e.g. senior management.
Generally speaking, this can happen. We don't have crystal balls, we only take guesses at the problem and solution and time it takes to reach it and sometimes those guesses are wrong.
Ask the developer for a plan. That could be more time, other resources or internal or external help. If he is stuck, he should already have reached out for help, for example to other developers in the company or Stack Overflow.
Make sure you know your budget for this feature.
Maybe the problem is not solvable inside your budget. Not all problems are, I don't know your requirements or budget.
If the developer is positive that he cannot solve the problem in budget, negotiate a solution with your client.
To make sure that does happen less often in the future, try to find out why the developer could not finish the feature and change whatever kept him from succeeding. Be prepared that maybe the requirements planning and budget were simply out of line, something a developer can do nothing about if he was not involved in it.
Generally speaking, there are several ways of implementing one feature, either technically, either functionally, or a mix of the two.
Sometimes a feature is impossible to realize because it's functionally too much complex as well.
Sometimes, the logical way of implementing a feature is not the easiest way. It could be the best, but not the easiest. And what the developer would have called "crappy" code is the solution to go in the first instance.
For example, if you need an algorithm asking for a loop, you will try to factor code so that you don't write code duplicates. Sometimes this kind of method is hard to write and you need to create a first version of the code which is one step before, not as maintainable but that does the job.
This is the same for the functional side. When it's to hard, maybe we should find a compromise between us and the customer. Most of the time it exists.