Source Control - The most undervalulued tool
So every company I've been at recently has been using a "flat" source control tool. I mean flat in that it's branching capabilities are so painful to use and unreliable that it's not worth the effort. Instead #defines and such are used to chunk out code and people have to manually "version" the code on their machines to keep track of new changes that shouldn't be going out into the world yet.
Anyway, point being, branching source control and allowing developers to create brances as needed to allow all code be in the repository and backed up and easily identified and rolled back is probably one of the biggest advantages today. This easy transition from today to yesterday to 3 weeks ago allows the rampant "playing" with new ideas/designs and still allow you to not loose something you did a month ago "accidentally"