Chris Hedgate makes a difference between a good and a great developer. The former writes code quickly, knows how to solve problems, but his code tends to be hard to maintain on the long run. The good developer keeps an eye on the future trying to make sure the code evolves cleanly. Hedgate advices on how to move from good to great.
Joe Utz sent me this. I thought it was an excellent presentation