Why isn't there a row for "figuring out how large, poorly-documented legacy systems work"? That's what most of my daily development tasks consist of, anyway.
I couldn't agree more. Unless it's a startup, or the company produces "throw away" solutions. You're usually dropping in on a product where either the previous team was fired or it was boot-strapped by one guy who knew was he was doing, supported by 5 junior devs fresh out of college.
Don't forget the oh-so-common "We've built our core library up over years of different products, so it's kind of a mess".
Unfortunately, most new stuff on e.g. github isn't much better in this respect. So this is a competence most programmers have.