There's an obvious problem in the development of any game intended to provide challenge that people have vastly different levels of skill, and if you make a game hard enough to satisfy good players then the bad players simply won't be able to get through it. The obvious answer is to allow the player to adjust the difficulty. And a lot of games do this. But for some reason a lot of games don't and their designers argue against it. I'm going to spend most of this article refuting their objections and showing the horrible problems with their alternate solutions.
First of all, let me make one thing clear about my position: the difficulty should always be adjustable inside of a playthrough. Having the player make this choice at the start of the game before they know hardly anything about it and then forcing them to stick with it is an asinine thing to do.
One objection anti-adjusters make is "if you let the player adjust the difficulty, they'll just lower it whenever they get to a hard part, and you'll kill the game's challenge". First of all, this idea is completely contradicted by any experience with competitive gamers in real life. Just how many people have beaten their favorite games with adjustable difficulty on the hardest setting even though they died dozens of times doing it and at some points got very frustrated? You're talking to a gamer who's done not only that but challenge runned some of his favorite games using house rules to make them harder than they could go. Turns out, we competitive gamers have a basic understanding of ourselves and we know that challenge is the crux of our enjoyment.
There are only two cases where I have lowered the difficulty during a playthrough intended to provide challenge: either when the game's difficulty is unfair, in which case this is a good thing because I'm getting out of something I'm not enjoying, or when I realize that I have the difficulty set to a level that is genuinely too high for me - again a good thing (although I can't actually think of any times I've done this). I have never lowered the difficulty in a way that deprived me of a fun experience.
Some people argue that the game should detect the player's performance and auto-adjust the difficulty based on how much they seem to be struggling. The problem here is that this assumes that all players seek an equal level of challenge. Some people (the "competitive" gamers like me) want the game to be hard enough that we die a lot, but other players want the game to be balanced so they can get through it mostly without dying. And this doesn't always correspond to skill. So if you balance the auto-adjuster so that it makes a section easier as soon as you die once on it, then the competitive gamers will be frustrated because you're preventing them from trying again at the same challenge. If you balance it so that it only makes it easier after you've died several times on the same section, then the casual players will still get frustrated with the difficulty and are likely to quit. This system can never serve all players.
Another system popular in RPGs is allowing the player to level-grind. This is asinine too. Everyone agrees that grinding is no fun, so why would you suggest forcing the weaker players - who are usually the same ones who don't want to be challenged in the first place - to do it instead of just allowing them to change the settings? Worse, in the case of a competitive-minded gamer who genuinely needs to level grind, they have no way of knowing when they should stop. Odds are they end up either needing to go grind some more after another long session of losses at the boss or making the fight too easy and wishing they hadn't.
Finally, I should mention that adjustable difficulty has a huge advantage in terms of increasing a game's replayability. You can beat a game on normal, then go through it on hard once you have more practice, then maybe even attempt it on nightmare. Each playthrough can increase the total consumption time of the product by as much as or more than it took to beat it the first time. And all these extensions are achieved with minimal developer effort (at least compared to how long it took to add the "normal" level). This isn't possible in many of the other systems proposed.