Have a test server and a live server, work out your code on your test and when it is done, boom, bing bang in seconds you replace your old files with the new files and in seconds it is done.
as for limited roll outs, in your database, you could make a field called something like eligible
and have it set to 0 for no and 1 for yes. All those with yes selected will show different code or your test features.