Not sure about the comprehensive spec at page 9 though: BDUF - Big Design Up Front is often a naive approach. Requirements and constraints tend to change as you go along. Too much up front specification can be a waste if 30 percent of those features never see any use. I'm all for thinking each specific task, function and web page properly right through before coding it, though. :)
I also have trouble with "design for reusability" at page 39. Building one-off components is a waste IF you are going to build similar stuff in the future. However designing things for reuse also incurs overhead in itself that first time around. The specific project context should determine if building for reuse is cost-effective. Also, designing for reuse can be taken too far. We sometimes burn ourselves by thinking too generally - see some of the more complex J2EE frameworks out there...