It sounds like a lot of those problems could be solved, or at least mitigated, by better communication between these developers.
If the goal is to grow a piece of software over time (as in many startups), any architecture that relies on "better communication" is doomed to fail, simply because it limits the size of the team that can handle it (and thus growth).