A good example of what I'm trying to ask about would be Facebook's new Timeline feature. In the beginning, only a select few were allowed access to timeline. As the feature became more solidified in how it was working and bugs were fixed in it, additional users were allowed access to the feature. At a later date, a large group of users were allowed access to the feature and now, its a general feature to all users. How does a development team manage this type of feature roll out?
I've played with the idea of using configuration settings to selectively control access if something is in testing or in production via a configuration file and conditional if statements in the code. Now while this okay for simple features, I believe that if we tried to implement this in a larger feature set it would become unmanageable.
What would be the best way of managing feature roll outs in this manner?