Would we have benefitted from doing more design (by which we probably mean more design before starting)? I dont see it. Indications in the code call for improvement, but more design would not, in my opinion, have reduced themit would just have consumed more time. There were certainly some design reversals in the optimization of Undo, discussed at length in earlier chapters, but there was far more up-front design there than in any other part of the system. I am inclined to think that doing less up-front design and paying more attention to how things were going would have worked better.
This result would have surprised me some years ago. When things went wrong in my code, I used to say that I wished I had done more design earlier. Now I do not feel that way. I wish that I had done more design while programmingthat is, I wish I had refactored the code when it first began to go bad. Personally I grow more comfortable all the time with very little initial design, which I replace with lots of intensive design thinkingand design actionduring implementation. Your mission is to try whats been done here and find your own balance. In a very real sense, this is the point of the whole book.