What makes a good design? This is probably the most important and challenging question. I will make a distinction between theory and practice. To my experience, having a mix of both is most valuable. Let’s start with theory: Know the basic design patterns: Patterns are one of the most important tools an architect needs to have to develop maintainable systems. With patterns you can reuse designs to