Always have the simplest thing that could possibly work(that can make all the test cases run)
Design through refactoring
a.Implement the first story, then the second, then remove the duplicated codes
b.Refactoring should be done step by step (Incremental Change)
3.Why XP suggests we only design for today? Won’t it bring too much re-work?
Re-work takes time, that’s right; But it’s risky to code for tomorrow to prevent re-work, because it takes too much time of current iteration. Re-work will not be the killer, but risks could be.
Avoid too many pictures for design, UML etc.
a.Pictures don’t provide feedback and thus risky.
b.Always ask the code for answers, and throw away the pictures once code are done. —
I don’t buy this. How can you get a overall grasp based on those smashed codes?
Architecture should be done when we implement the first story. We don’t expilictly make a architecture.