easy changes 5 follow design principles and TDD, separate the code changing frequently from the code holds technology specific complexity, prefer modularity, delay decisions to last responsible moment, design simple simplicity is about achieving loose coupling and high cohesion majority of people do not know what is simple design, what makes it different in reality keep codebase easy to change