تصور کنید دیگر لازم نباشد تکتک آجرهای یک ساختمان را با دست بچینید و فقط کافی باشد قالبهای بتنی را دقیق طراحی کنید تا ساختمان خودبهخود شکل بگیرد. این دقیقاً همان اتفاقی است که اکنون در دنیای برنامهنویسی رخ میدهد و مرز بین «نوشتن کد» و «مهندسی سیستم» را بهکلی از بین میبرد.
به نقل از تحلیل منتشر شده در ۱۷ سپتامبر ۲۰۲۶ در وبسایت thelastsoftwareengineer.substack.com، توانایی هوش مصنوعی در تولید کد منبع، در حال جداسازی عمل «نوشتن کد» از عمل «مهندسی یک سیستم» است. این تحلیل سیگنالی است مبنی بر اینکه مهندسی نرمافزار در حال تجربه یک تغییر بنیادین در هویت خود است؛ تغییری که ما را از کار دستی «سنگتراشان» به طراحی ساختاری «نجارها» منتقل میکند.
عصر سنگتراشان
در گذشته، توسعهدهندگان مانند سنگتراشان عمل میکردند؛ یعنی هر خط کد را تکتک مینوشتند تا ذرهذره یک پل نرمافزاری بسازند. این فرآیند کند بود و از «درون به بیرون» پیش میرفت، به طوری که رفتار نهایی نرمافزار اغلب محصول جانبیِ نحوه ساخت فیزیکی کد بود. در آن دوران، چالش اصلی فنی روی «چگونگی» (How) متمرکز بود؛ یعنی جزئیات دقیق پیادهسازی یک قابلیت خاص.
این وضعیت دقیقاً بازتابدهنده ساخت پلهای باستانی است. سنگتراشان مستقیماً با سنگها کار میکردند و همزمان با رشد پل، ماده اولیه را تغییر میدادند. در برخی موارد مشهور، مانند سازههای رومیها، آنها توانستند به این فرم نهایی برسند بدون اینکه حتی نیاز به استفاده از ملات در ساختوساز خود داشته باشند.
پارادایم نجاری
اکنون مدل کاری به سمت «نجاری» تغییر میکند. این استعاره از تجربه شغلی پدربزرگ نویسنده این تحلیل گرفته شده است؛ کسی که تمام عمر خود را صرف ساختن پلهای جعبهای (Box Culverts)، پلهای رویگذر و پلهای مختلف در سواحل مرکزی کالیفرنیا کرد. با وجود اینکه این سازهها از بتن بودند، اما شغل رسمی او «نجاری» بود.
در ساختوساز مدرن پلهای بتنی، نجارها خودِ پل را نمیسازند؛ بلکه قالبهای چوبی را میسازند — همان مدلهایی که شکل و مرزهای سازه را قبل از ریختن بتن تعیین میکنند. در عصر هوش مصنوعی، این «قالبها» همان تستها، مستندات و حفاظها (Guardrails) هستند که تضمین میکنند کدهای تولید شده توسط مدل، دقیقاً طبق برنامه و درست کار میکنند.
همانطور که در تحلیلهای قبلی ما دربارهی امنیت مدلهای بازمتن اشاره کردیم، تمرکز بر لایههای حفاظتی اکنون حیاتیتر از خودِ کد است.
گردش کار جدید مهندسی
این گذار، مسئولیتهای اصلی برنامهنویس را بهطور بنیادین تغییر میدهد:
- تمرکز بر مرزها: مهندسان اکنون زمان بسیار بیشتری را صرف طراحی رابطها (Interfaces) و رفتارهای بیرونی میکنند تا منطق داخلی. آنها به جای تمرکز صرف بر جزئیات درونی، بر مرزهای نرمافزار تمرکز میکنند.
- اعتبارسنجی بهجای پیادهسازی: بخش بزرگی از شغل اکنون طراحی روشهایی است که تایید کند خروجی هوش مصنوعی با طراحی سیستم مطابقت دارد. این رویکرد با تعریف مهندسی نرمافزار به عنوان شاخهای از علوم کامپیوتر همسو است که راهکارهای کاربردی و مقرونبهصرفه برای مسائل پردازش اطلاعات در خدمت بشریت خلق میکند.
- تکرار سریع: چرخه OODA (مشاهده-جهتدهی-تصمیم-عمل) بهشدت کوتاه شده است. در گذشته، یک تصمیم طراحی ممکن بود هفتهها یا ماهها زمان ببرد تا در مرحله توسعه به نتیجه برسد و اثرش دیده شود. اکنون، تصمیمات طراحی فوراً در کدهای تولید شده منعکس میشوند.
پیامدها برای طراحی و نقش شغلی
این تغییر عملاً هر برنامهنویس را مجبور میکند به یک مدیر محصول (Product Manager) تبدیل شود. در گذشته، این تصور وجود داشت که توسعه کد «کار واقعی» است، در حالی که مدیریت پروژه کمتر فنی یا معتبر به نظر میرسید. اما وقتی هزینه نوشتن کد منبع به سمت صفر میل میکند، سوال حیاتی دیگر این نیست که «آیا میتوانیم این را بسازیم؟»، بلکه این است که «چه چیزی باید بسازیم؟».
برای مهندس مدرن، این یعنی منحنی یادگیری طراحی نرمافزار تندتر و دشوارتر میشود. چون اثر یک تصمیم طراحی اکنون فوراً قابل مشاهده است، برنامهنویسان رابطه علت و معلولی نزدیکتری بین معماری و ویژگیهای سیستم میبینند. آنها باید مهارتهای معماری خود را بسیار سریعتر از دوران کدنویسی دستی رشد دهند.
تغییرات ساختاری در توسعه
از نظر تاریخی، نرمافزارها از «درون به بیرون» طراحی میشدند. ابتدا ساختار هسته تصمیم گرفته میشد و سپس رفتار بیرونی بهشدت تحت تاثیر آن ساختار کد داخلی بود؛ درست مانند سنگتراشی که هر بار یک سنگ را در جای خود قرار میدهد.
اما در پارادایم جدید، مهندس اکثریت زمان خود را روی رفتار بیرونی میگذارد. کد تولید شده توسط AI، بازتابی از شکلی است که مهندس طراحی کرده است، نه بازتابی از نحوه ساخت دستی کد.
تکرار در برابر ماندگاری
برخلاف پلهای بتنی که پس از ریختن بتن دائمی و تغییرناپذیر میشوند، نرمافزار اجازه بازسازی مکرر (Iterative Regeneration) را میدهد. اگرچه بازتولید کل کد هزینهای دارد، اما توسعهدهندگان میتوانند محدودیتهای بیرونی را اصلاح کرده و چندین بار کد را بازتولید کنند. این موضوع باعث میشود درسهای آموخته شده از تکرارهای قبلی، مستقیماً در نسخههای آینده نرمافزار اعمال شود.
با پذیرش این تکنیکها، نقش مهندس نرمافزار از «کار واقعیِ» تایپ کردن، به «ارکستراسیون» سطح بالای سیستمهای پیچیده تغییر میکند. این تکامل اجازه میدهد تکنیکهای مهندسی در مقیاس بزرگ که قبلاً بهدلیل هزینه و زمان زیاد برای پیادهسازی دستی غیرممکن بودند، اکنون به راحتی اجرا شوند.
گام بعدی شما
- تمرکز خود را از یادگیری سینتکس زبانهای برنامهنویسی به یادگیری اصول معماری سیستم و طراحی رابطها منتقل کنید.
- مهارت نوشتن تستهای جامع (Test-Driven Development) را تقویت کنید، زیرا تستها اکنون همان «قالبهای بتنی» شما هستند.
- ابزارهای تحلیل استاتیک و حفاظهای خودکار را در گردش کار خود بگنجانید تا اعتبارسنجی کدها سریعتر شود.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو