تاملی در اصول طراحی نرم‌افزار؛ چگونه طراحی انعطاف پذیری داشته باشیم؟