THISThis example of a trend in current software development is extremely annoying and disturbing.
If your software is suppose to behave like magic, you had better make DAMN sure that it ALWAYS behaves like magic.
AND do it at the design stage,
AND taking account of every possible unexpected input,
AND fully verifying the code,
AND adding checks on both the client and server side,
AND adding fail-safes so that when the checks fail the software recovers properly,
AND doing this for every damn feature.
But this presumptuous twat of a developer, obviously thinks that his first-cut at some agile magic code is perfect (and for a File-Syncing app no less!?!) and it is just the users that are foolishly wanting to mess up his ever-so-cool design.
And this is just one of thousands infesting our software development world today thinking that their ability to remove controls from the user is 'cool'.
If you have this attitude, it doesn't matter if you work for Google or some no-name startup -- you should leave. Now. You should not be building anything.
You are building a tool for the user, not a piece of art to be admired in a museum. Tools have user interfaces. Just as it is your job to avoid 10000 controls/widgets/menu options, it is also your job to give users a usable amount of controls appropriate to the task, and also to provide recovery options, like refresh, and preferably some control over how those controls appear ('Clean Screen' vs 'Advanced'...).
get practical
/<rant>
edit fmt