I can’t agree with article. When I start project I know big part of problems and I know that I should to solve them in future, so I make some investigation to make product features – not solution for current moment. There is big problem for programmers to make quick solution without thinking about future.
Also, there is a big problem when people make so global solutions that so hard to maintain – and boilerplates is not problem in this case.
Developers should be in the middle of this problems and it can be learned only with practice.

ps. sorry for my bad english