Every engineering team has a project manager; some have more than one. In fact, the teams who claim to have no project managers actually have the most: everyone on that team is a project manager.
This isn't necessarily a bad thing. When your company is 5-10 people and you all work next to each other, it's easy for everyone to stay on top of the pipeline. You might use GitHub issues, or Trello, and if you need to collaborate on a feature, you can sit down and talk about it all day. If there is a hard deadline on something, everyone is aware of it. When working like this, the task of project management is split democratically, and everyone can process the relatively small stream of information they need.
But as this stream gets larger, your team won't be able to handle the load effectively without more time or expertise. GitHub notifications go ignored, emails are never sent or replied to, and oops!, your API is sending seconds instead of milliseconds. Or, worse, you built a feature none of your clients actually needs.
The natural reaction at these moments is for everyone to alternate between saying, “I need to get better at remembering these things,” and, “You need to tell me when something like this changes!” After a couple of these meetings, everyone is rightfully annoyed, and they all vow to add more reminders to their calendar, take notes at scrum, and beef up their to-do list. They fight against their nature, adding more and more interruptions into their productive time.
The reason this inevitably fails is because these management tasks feel like time sinks, busywork, or distractions. Everyone agrees they are necessary, but when they are alone at their desks, they feel like they aren't getting as much done as they used to, and all those damn meetings and emails are just bureaucracy. The distributed project management structure has hit its breaking point, and now an annoying, inefficient system is interfering with your team's core responsibilities and passions.
One piece of advice that has always stuck with me is, “don't do things the hard way.” Don't try to fix or overcome something through sheer willpower – instead, find the easiest and most resistance-free path to your goal. For some teams, that's ad-hoc project management. For teams having the issues I described, the easiest path is likely consolidation. Take all the responsibilities of keeping track of features, integrations, and deadlines, and put them all in one place. Find someone who can do this (not someone who hates it!) and let them handle it for the whole team. This means designating or hiring someone as the project manager, and allocating at least 50% of their time for these tasks.
I've gone through this process a couple of times now, and the best way I've heard project managers described is as the “grease” of a company. You already have all the parts in place and doing their job; the project manager is there to make sure energy is transferred as efficiently and losslessly as possible.