In the context of Iterative Software Development, we ask the question: How much design should be done "up front"? We propose the approach of Adaptable Design Up Front, which focuses on capturing the essential aspects of the system and plans for extensibility and adaptability.