I used this way (autowrite) for a few months,
but it wasn't perfect for me - because when working with code (especially scripting languages such as python), saving open buffers in mid-work is dangerous (for example, if I have a cron that runs my code, and I'm in the middle of editing it, I might get syntax errors, name errors, etc.).
Now I've found a far better option, for me:
:set hidden (Saves all open buffers in the background, instead of closing them and re-opening on demand)
in conjunction with (the default, on my machine at-least):
:set confirm (Demands confirmation before closing unsaved buffers)
Credit must be given to all the commentators here
Hope this helps others...