ماتت هندسة البرمجيات. هذا ما تريد الأصوات الأعلى صخباً على "تويتر التقني" أن تصدقه. إنهم يشاركون تسجيلات شاشة لأدوات ذكاء اصطناعي تقوم بإنشاء تطبيقات كاملة من مجرد وصف نصي من فقرة واحدة، ويتساءلون لماذا قد يدفع أي شخص أموالاً لمبرمج بشري لكتابة الكود. هذا الذعر مفهوم، لكنه يخطئ الهدف تماماً.

الذكاء الاصطناعي لا يستهدف المهندسين، بل يستهدف كل من يخطئ في اعتبار سرعة الكتابة بمثابة حُكم تقني. هناك فجوة هائلة بين "البرمجة" و"الهندسة"، وهذه الفجوة هي المكان الذي تكمن فيه المهنة بأكملها.

يمكن لمساعد الذكاء الاصطناعي أن يقدم لك خمس طرق مختلفة لتنفيذ ميزة ما قبل أن تنهي رشفة قهوتك. لقد انتقلت نقطة الاختناق؛ فلم نعد نحدق في ملف فارغ متسائلين كيف نبدأ، بل نحدق في خمسة حلول محتملة متسائلين أي منها لن ينهار في اللحظة التي يبدأ فيها تدفق حركة المرور الحقيقية. هذا القرار هو جوهر الهندسة، أما كل ما عدا ذلك فهو مجرد قواعد لغوية (syntax).

العرض التجريبي ليس هو المنتج

شاهد أي عرض تجريبي للبرمجة باستخدام الذكاء الاصطناعي وسترى واجهة جميلة تكتمل في دقائق. ما لن تراه هو استنزاف مجمع اتصالات قاعدة البيانات (database connection pool) تحت ضغط العمل. لن ترى حدود المعدل (rate limits) المفقودة في نقطة نهاية واجهة برمجة التطبيقات (API endpoint)، أو غياب سجلات التدقيق (audit logs)، أو تكاليف التخزين الناتجة عن تسجيل كل تفاعل للمستخدم في حاوية كائنات (object bucket) لأن الذكاء الاصطناعي اعتقد أنها مكان ملائم لتخزين الحالة (state).

تتطلب أنظمة الإنتاج القابلية للتوسع (scalability)، والأمان، والأداء، والتحكم في التكاليف. هذه الصفات غير مرئية في مراجعة سريعة (sprint review)، فهي لا تظهر إلا عندما يصل المستخدمون الفعليون بسلوكياتهم غير المتوقعة، وحالاتهم الاستثنائية (edge cases)، ورفضهم للنقر على الأزرار بالترتيب الذي توقعته. لقد شاهدت الكثير من المشاريع المدعومة بالذكاء الاصطناعي التي بدت مثالية في مرحلة ضمان الجودة (QA) ثم تحولت إلى دروس مكلفة في الأسبوع الذي تلى الإطلاق.

أصبح الكود البرمجي الذي يعمل رخيصاً، أما الهندسة الجيدة فلا.

ما يهم الآن

المهندسون الذين يزدهرون في هذا التحول ليسوا أولئك الذين يكتبون الأسرع، بل هم الذين يعرفون الأسئلة التي يجب طرحها قبل توليد سطر واحد من الكود.

  • يحددون المشكلات بوضوح. سيقوم نموذج الذكاء الاصطناعي بحل المشكلة الخاطئة بكل سرور إذا تركت له العنان. سيبني طبقة تخزين مؤقت (caching layer) معقدة للوحة تحكم تعتمد بكثافة على القراءة ولا يستخدمها سوى ستة محللين داخليين. لن يتوقف ليسأل عما إذا كانت المشكلة الحقيقية هي فقدان فهرس قاعدة البيانات (database index) أو نموذج بيانات معيب بشكل أساسي. المهندس الماهر يعيد صياغة المشكلة حتى يصبح الحل واضحاً، سواء تطلب ذلك كتابة كود أم لا.

  • يقسمون الأنظمة الكبيرة إلى أجزاء صغيرة. يتفوق الذكاء الاصطناعي في السياق المحلي؛ إذ يمكنه كتابة دالة واحدة، أو مكون واحد، أو اختبار واحد، لكنه يواجه صعوبة في استيعاب بنية موزعة (distributed architecture) كاملة في ذهنه. المهندسون الذين يمكنهم تفكيك النظام المتجانس (monolith)، ورسم حدود حول الخدمات، وتحديد العقود (contracts) بين الفرق، هم من يحولون مقتطفات الكود المولدة إلى أنظمة مستدامة.

  • يتحدون اقتراحات الذكاء الاصطناعي. إن ثقة النموذج ليست سوى سراب. فقد يقترح بنيات تحتية تتجاهل زمن انتقال الشبكة (network latency)، أو يوصي بمكتبات تم إيقاف دعمها منذ سنوات، أو يحل ميزات لا توجد أصلاً في المتطلبات.