معماران باید به طور مداوم «حس زمینه‌ای» خود را توسعه داده و به کار گیرند – زیرا برای مشکلاتی که ممکن است بسیار متنوع باشند، هیچ راه‌حل یکسانی وجود ندارد.

اصطلاح نافذ «حس زمینه‌ای» اولین بار توسط ابرهارت رشتین در کتاب معماری سیستم‌ها: ایجاد و ساخت سیستم‌های پیچیده (۱۹۹۱) ابداع و با بینش خاصی توصیف شد:

«ایده‌های اصلی رویکرد شهودی در معماری سیستم‌های پیچیده از پرسیدن از معماران ماهر درباره‌ی روش‌های برخورد با مسائل بسیار پیچیده نشأت گرفته است. معماران و طراحان باتجربه احتمالاً پاسخ خواهند داد: “فقط از عقل سلیم استفاده کن.” … اما اصطلاح بهتری از “عقل سلیم”، “حس زمینه‌ای” است – دانشی درباره‌ی آنچه که در یک زمینه‌ی خاص معقول است. معماران حرفه‌ای از طریق آموزش، تجربه و مثال‌ها، تا زمانی که مسئول حل مشکلات در سطح سیستم می‌شوند – معمولاً پس از ۱۰ سال – حجم قابل توجهی از حس زمینه‌ای را در خود انباشته‌اند.» (رشتین، معماری سیستم‌ها)

یکی از مشکلات بزرگ صنعت نرم‌افزار، به نظر من، این است که افراد اغلب مسئول حل مسائلی هستند که نیاز به حس زمینه‌ای بیشتری از آنچه که تاکنون کسب کرده‌اند دارد. شاید دلیل آن این باشد که صنعت نرم‌افزار تنها دو نسل قدمت دارد و با سرعتی سرسام‌آور در حال رشد است. شاید روزی که این مشکل دیگر وجود نداشته باشد، بتوان آن را نشانه‌ای از بلوغ این صنعت دانست.

من در پروژه‌های مشاوره‌ای خود، بارها و بارها نمونه‌هایی از این مشکل را مشاهده کرده‌ام. مثال‌های رایج شامل عدم استفاده از طراحی دامنه‌محور (Domain-Driven Design) در موقعیت‌های مناسب، فاصله گرفتن از دیدگاه عمل‌گرایانه و طراحی بیش از حد یک راه‌حل نرم‌افزاری نسبت به نیاز واقعی، و ارائه‌ی پیشنهادهای غیرمرتبط یا نامعقول در هنگام بحران‌های بهینه‌سازی عملکرد است.

مهم‌ترین دانش درباره‌ی الگوهای نرم‌افزاری، دانستن این است که چه زمانی باید از آن‌ها استفاده کرد و چه زمانی نباید. همین امر درباره‌ی فرضیه‌های ریشه‌ای مشکلات و اقدامات اصلاحی مرتبط در هنگام تحلیل مسئله نیز صدق می‌کند. در هر دو فعالیت – معماری سیستم و تحلیل مشکلات – اصل اساسی این است که هیچ راه‌حل یکسانی برای همه‌ی مسائل وجود ندارد؛ معماران باید حس زمینه‌ای خود را پرورش داده و آن را در طراحی و حل مشکلات معماری خود به کار گیرند.

نویسنده: Randy Stafford