What are the best practices for the development setup? I've started with Craft developing all locally. The struggle for me when working locally was synchronizing the database and the backend assets with coworkers on the same project.

In the last project we tried a different approach, where we have the db, the assets and the CP on a server. So all devs involved in the project had the same backend.

What we still had locally were our templates and frontend stuff. The db.php pointed to the remote db. The basepath pointed to our local root so it would load the local templates. 

I'm actually pretty happy with that solution the only problem I haven't figured out yet is using image transforms. Since I'm using locale templates (and a locale craft installation for templating ), the transforms tries to generate the images locally which doesn't seem to work. Maybe my configuration is off since I don't have to much experience with transforms and the configuration with this setup can get a little confusing as well :)

How does your setup look while working in a team?

And any suggestions for the my problem with transform?
That's the setup we use here. It's ok, but local development runs slowly because the database is off-site - we'll be moving to an internal database server in the new year because of that.

Image transforms we just deal with by manually syncing the folders every now and then. I believe Andrew Welch has a script to help manage that - I've not tried it https://github.com/nystudio107/craft-scripts

But I wish there was a way to tell Craft, in dev mode, that a missing image file is not a "stop everything" error.