در پروژههای برنامهنویسی قبل از انتخاب تکنولوژی، مسئله را روشن میکنیم. مشخص میشود چه کسی از سیستم استفاده میکند، چه اطلاعاتی وارد یا پردازش میشود، کدام بخشها باید به سرویس دیگری متصل شوند و چه چیزهایی احتمالاً در آینده تغییر میکنند. بعد از آن ساختار فنی را طوری میچینیم که بخشهای مختلف از هم تفکیک باشند و توسعه یک قابلیت تازه، پروژه را به مجموعهای از کدهای وابسته و شکننده تبدیل نکند. ابزارهای مدیریتی، ارتباط با API، AJAX، تجربههای SPA و اتوماسیونهای داخلی هم بر همین اساس ساخته میشوند.
برای ما کدی که فقط روی سیستم توسعهدهنده درست کار کند، خروجی قابل قبول نیست. نسخه نهایی باید روی موبایل و دسکتاپ روان باشد، خطاها رفتار قابل پیشبینی داشته باشند، ورودیها و سطح دسترسی کنترل شوند و ساختار پروژه برای نگهداری بعدی قابل فهم بماند. انتخاب دیتابیس، معماری فایلها و منطق سمت کاربر با توجه به حجم کار و مسیر توسعه انجام میشود؛ هدف این است که نرمافزار بخشی از کار روزمره کسبوکار را سادهتر کند و با رشد مجموعه همچنان قابل استفاده بماند.
