An interesting post. I totally agree with what the author has mentioned. Implementing agile practices will not work unless you have a disciplined and self motivated team. If the team is not motivated then the concepts like TDD, Unit testing, refactoring and Design patterns/design approach will always be a academic stuff.
"Talk and think about your design. Analyze the effectiveness of your design over time. Don’t act on a design idea until it’s time, but do think about the future and keep a running queue of design ideas circulating in the team."
In my personal opinion, unless it comes from the developer improving the code quality will never happen.