The introduction of app files a few releases ago almost made me forget about update sets completely. For the applications and environments I was working with I solely relied on the "Publish to update set" option to create a full update set from all of the application files for the application that I was working on.
The was great since I would never have to worry about forgetting to include a critical application file or worrying if I had the correct update set selected before I did the development work. Application files and the inheritance intelligence they have are pretty reliable.
The downside of this approach is that you have to bundle and migrate the entire application every time you make a change. The biggest problem with this is trying to explain to your change advisory board that you really only made one change when the retrieved update set has hundreds of files.
Fuji introduces a new update set concept that automatically manages a separate update set for each application scope in your instance. App scopes can be from custom application built in your environment or 3rd party applications downloaded from the store.
When you have an application scope selected for your user session, the app's default update set will automatically capture your changes. If you change your session to another application scope, the update set will change as well.
You can still have multiple update sets in progress for a given application scope and manually switch between them if you want to breakup the changes into different sets.