These days when I collaborate with other developers, we do it all in a git repo that is simply hosted on a VM everyone has ssh access to. Project management is done in a plan/ directory which has task entries like 1000-add_logout_button.txt Where 1000 is the priority. There is also a directory plan/done/ where tasks go that have been completed. In the plan/done/ directory, the priority gets replaced by the completion…
The first one doesn't really scale beyond a handful of people, since you risk losing work if the same file is being worked on by multiple people. Vim shouting at you that the file you're editing has changed on disk is not good enough.
I can see how this could work with a central repo, though. It does require everyone aligning on the same conventions and workflow, so you likely still need some software to ensure this is done correctly.