Many developers seem to want to start designing and coding before they have studied and thought through all of the available information. They grab one fact, code, learn something else, code some more, learn more, redesign and rewrite what they have written, etc. This desire to start work before you know what you are trying to do has been ridiculed for ages and many Dilbert cartoons have been dedicated to it. Yet many developers and companies are doing this exact thing thinking that they are now being agile.
The intent of agile development isn't that you charge off with no knowledge. You still need to think and plan. You should only redesign or recode if something unexpected comes up, not something you just didn't bother to think through the first time.
Agile development may be the way of the future or it may be a passing fad, I have no idea which. What I do know is that a lot of what people think is "agile" is really "dumb as rocks".