Old rant from around 2013, by Simon N.
tl;dr: If your game forces users through content in a predesigned order, your design sucks.
A password system is extremely ugly.
You must put down keyboard and mouse, or whatever gaming controller, and use both hands to copy a password to paper. This is not how you should be celebrating passing a level. You should be rewarded by the game and not have to work.
You must maintain the physical/digital list of files handy at all times. For digital files, you gotta switch applications. Again, this is not something you should do when you've won a level and deserve a reward! This kills the flow.
Physical sheets of paper have even more problems. The sheet must get a premium shelf space, or go into a ring binder with premium shelf space. As a game designer, you should not have the audacity to demand that from the player. Your game is not the only one that gets played.
When you play your game at different computers, or carry around your portable computer, the password list is easily forgotten. It has the exact same problems as software manuals. Let's quote Joel Spolsky's Designing for People Who Have Better Things To Do With Their Lives:
Users Don't Read the Manual.
First of all, they actually don't have the manual. There may not be a manual. If there is one, the user might not have it, for all kinds of logical reasons: they're on the plane; they are using a downloaded demo version from your web site; they are at home and the manual is at work; their IS department never gave them the manual. Even if they have the manual, frankly, they are simply not going to read it unless they absolutely have no other choice.
Password-displaying screens have lead to usability problems in the past, where you accidentally exit the screen and can't read the password anymore. Some games display the current level's password during pause or after failing the level, good.
I will merit your passwort system only if your game runs on late-1980's systems, where you aren't sure whether you can save to disk.
User plays through the game. User crashes their hard disk. All data is lost, noes, they gotta play the mandatory tutorials again. Major design fail, because we've known beforehand that many people don't do backups. :->
You might think you're smarter if you mirror the save file in the cloud. Let's fast-forward three years, to when your user gets interested in our game again. Is internet working and stable? Server might have gone down? Forgot password? Forgot account name or sign-up email address? Emailing support is a major pain, so people will drudgingly play everything again.
Opaque save files without passwords have an extra problem that's not encountered with passwords. You can't skip a level on demand when others suggest you to play a particular unlocked level. This can be for all sorts of reasons. The most common reasons are cherry-picking good content, observing peculiar game physics in a certain level, and playtesting other people's levels. These needs are too common to ignore.
Forcing linear play with a save system is slightly better than forcing it with passwords. It still sucks. What's better?
This is obvious and I shouldn't even have to write about it. (No, I'm just lazy and pretend I will finish this some other day.)
New players want to play without using that option anyway.
Therefore, as a designer, you don't have to whine about how you'd want content to be played in order. As a player, you don't have to fear information overload when learning a new game. New players will take the game designer's intended route through the game.
Experienced players don't want to travel that road again, and need the option to unlock everything. If it's not there, you suck as a game designer for making them drudge through easy levels.
Unlock all levels from the get-go. This is the sanest approach in the first place. Organize content in meaningful ways, so that a new player can still play in "order", because that's what he wants to.
Unlocking levels is different from tracking progress. You can still track player statistics per level.
This was an interesting reply to the rant so far:
This [players will behave the same even when an unlock-all option is present] is simply not true. For me -- and, I suspect, for many [...] -- the experience of playing a game is all about the counterplay of frustration and satisfaction. If a reward is available for free, achieving it the hard way is lessened. When you reach a frustrating part, if there is a way to just skip it, the temptation is always there.
The consequence is, you will then enjoy the game more when other people can't use some option you wouldn't want to use.
How would you feel when the author ships two versions of the game, one with unlock-all and one without, and you choose and play the one without? That's how I treat the unlock-all option. It's not part of the game.
Satisfaction doesn't come from the reward, but from having accomplished something. You can't get that by skipping levels. I assert that this is true for most -- the reward isn't what drives people. Evidence is how people spend hours and hours on games that have unlock-all, how money is a very weak motivator for programmers, and how existing unwatched youtube videos of rewards don't affect game enjoyment.