In my team, all team members have their own development environment (by utilising Vagrant or Docker) where they write and test code. Rather than sharing a database among, each environment has its own, making it far easier to use.
We do, however, use seeds (containing dummy data and images) in order to get the same content in each of the databases. This way developers don't have to manually add content to the database.