من المعروف جيداً أن الذكاء الاصطناعي التوليدي يمكنه إنتاج صور واقعية ورسوم توضيحية ولوحات فنية بمجرد إعطائه تعليمات.
في غضون ذلك، يتركز الاهتمام في عالم الأعمال على قدرة الذكاء الاصطناعي التوليدي على إنشاء البرامج.
يعمل الذكاء الاصطناعي التخاطبي بفضل نماذج اللغة الكبيرة، وهي تقنية أساسية، ويتفوق في المحادثة بلغات مختلفة والترجمة بينها.
لغات البرمجة، المستخدمة لإنشاء البرامج، هي أيضاً نوع من أنواع اللغة. فالمبرمجون البشريون، بمعنى من المعاني، يترجمون متطلبات البرمجيات التي يتلقونها شفهياً إلى لغات برمجة.
ولهذا السبب، فإن الذكاء الاصطناعي التوليدي التخاطبي، الذي يستخدم نماذج اللغة الكبيرة، بارع جداً في البرمجة أيضاً.
علاوة على ذلك، تعد البرمجة مهمة فكرية غالباً ما يمكن فيها التحقق من صحة النتائج تلقائياً وفوراً. وهذا لأن البرنامج الذي تم إنشاؤه يمكن تنفيذه والتحقق منه تلقائياً لمعرفة ما إذا كان ينتج الإخراج المطلوب.
في الواقع، عندما ينشئ المبرمجون البشريون برنامجاً، غالباً ما ينشئون في الوقت نفسه برامج اختبار للتحقق من النتائج، مطورين البرنامج الرئيسي مع التحقق من أنه يعمل كما هو متوقع.
يمكن للذكاء الاصطناعي التوليدي أيضاً التقدم في البرمجة مع الاختبار بنفس الطريقة. إذا قدم إنسان تعليمات دقيقة، فمن الممكن للذكاء الاصطناعي أن يكرر تلقائياً ويكمل البرنامج حتى يجتاز جميع الاختبارات.
بالطبع، بسبب قيود قدرات البرمجة للذكاء الاصطناعي التوليدي وغموض التعليمات البشرية، هناك العديد من الحالات التي لا يمكن فيها اجتياز الاختبارات حتى بعد العديد من التكرارات. علاوة على ذلك، غالباً ما تؤدي الاختبارات غير الكافية أو غير الصحيحة إلى أخطاء أو مشكلات في البرنامج المكتمل.
ومع ذلك، مع تحسن قدرات الذكاء الاصطناعي التوليدي، وصقل المهندسين البشريين لأساليب تعليماتهم، بالإضافة إلى آليات تعزيز معرفة الذكاء الاصطناعي التوليدي بالبرمجة من خلال البحث على الإنترنت، فإن نطاق إنشاء البرامج المناسبة تلقائياً يتوسع يوماً بعد يوم.
بالإضافة إلى ذلك، ومع تركيز عالم الأعمال، تستثمر الشركات الرائدة في البحث والتطوير في الذكاء الاصطناعي التوليدي بكثافة في تحسين قدرات البرمجة للذكاء الاصطناعي التوليدي.
في هذا الوضع، من المتوقع أن يتسارع توسع نطاق وحجم مهام البرمجة المؤتمتة التي يمكن تكليف الذكاء الاصطناعي التوليدي بها.
هناك العديد من الأمثلة لأفراد لم يطوروا برامج من قبل قاموا بإعداد بيئة تطوير أساسية باستخدام معلومات الإنترنت، ثم اعتمدوا على الذكاء الاصطناعي التوليدي في البرمجة، وأكملوا المشاريع معاً كفريق من اثنين.
أنا كمبرمج، أستخدم الذكاء الاصطناعي التوليدي في البرمجة. وبمجرد أن أتعود عليه، يمكنني إكمال البرمجيات دون تعديل البرنامج على الإطلاق، ببساطة عن طريق نسخ ولصق التعليمات البرمجية في الملفات وفقاً لتعليمات الذكاء الاصطناعي التوليدي.
بالتأكيد، هناك العديد من الحالات التي أواجه فيها صعوبات. يرجع معظمها إلى اختلافات طفيفة بين إعدادات جهاز الكمبيوتر الخاص بي أو أداة تطوير البرمجة والتكوينات الشائعة، أو لأن مكونات البرمجيات المجانية أحدث مما تدرب عليه الذكاء الاصطناعي التوليدي، مما يتسبب في فجوة معرفية، أو لأن طلباتي غير عادية بعض الشيء.
في الحالات التي لا توجد فيها مثل هذه التناقضات الطفيفة أو الظروف الخاصة، وعندما يُطلب إنشاء وظائف برمجية شائعة جداً، يتم إنشاء برامج مناسبة في معظم الحالات.
نحو عصر البرمجيات السائلة
كمطور برمجيات، يمكنني إصدار البرامج التي أنشئها، وهذه البرامج، التي يصدرها مهندسونا، يستخدمها بعد ذلك مستخدمون مختلفون.
إن المستقبل الذي يمكن فيه لأي شخص القيام بهذا التطوير للبرمجيات باستخدام الذكاء الاصطناعي التوليدي هو امتداد للمناقشة حتى الآن.
ومع ذلك، هذا ليس مجرد تغيير على جانب تطوير البرمجيات؛ فالتغييرات الكبيرة قادمة أيضاً إلى جانب المستخدم.
يمكن إنجاز مهمة توجيه الذكاء الاصطناعي التوليدي شفهياً لإضافة أو تعديل وظائف في البرمجيات تلقائياً، ليس فقط خلال مرحلة التطوير قبل إصدار البرمجيات، بل أيضاً أثناء استخدامها. علاوة على ذلك، يمكن أن يؤديها مستخدم البرمجيات نفسه.
يمكن لمطوري البرمجيات تحديد نطاق ما يمكن تغييره وما لا يمكن تغييره، ثم إصدار البرمجيات مع ميزات التخصيص المدعومة بالذكاء الاصطناعي التوليدي.
وهذا من شأنه أن يسمح للمستخدمين أن يطلبوا من الذكاء الاصطناعي التوليدي تعديل بعض المضايقات البسيطة أو تفضيلات تصميم الشاشة داخل البرنامج.
علاوة على ذلك، يمكن للمستخدمين إضافة ميزات مفيدة موجودة في تطبيقات أخرى، أو دمج عمليات متعددة بنقرة واحدة، أو عرض الشاشات التي يتم الوصول إليها بشكل متكرر كلها على شاشة واحدة.
بالنسبة لمطوري البرمجيات، فإن تمكين مثل هذا التخصيص من قبل المستخدمين يقدم فوائد كبيرة: فهو يزيل عبء تنفيذ طلبات الميزات بأنفسهم، ويمكنه تعزيز شعبية البرمجيات عن طريق تجنب المراجعات السلبية وعدم الرضا عن قابلية الاستخدام.
عندما يتمكن المستخدمون من تغيير الشاشات والوظائف بحرية بهذه الطريقة، فإن المفهوم ينحرف بشكل كبير عما نطلق عليه تقليدياً "البرمجيات".
سيكون من الأنسب أن نطلق عليها "البرمجيات السائلة"، مما يعني شيئاً أكثر مرونة وقابلية للتكيف من البرمجيات (التي هي بالفعل أكثر مرونة من الأجهزة)، وشيئاً يناسب المستخدم تماماً.
كانت الوظائف تُنفذ في السابق بواسطة الأجهزة فقط. ثم ظهرت البرمجيات القابلة للاستبدال، مما أتاح تحقيق الوظائف من خلال مجموعة من الأجهزة والبرمجيات.
من هنا، يمكننا تصور ظهور البرمجيات السائلة، أي الأجزاء التي يمكن تعديلها بواسطة الذكاء الاصطناعي التوليدي. وبالتالي، ستتحقق الوظائف بواسطة الأجهزة + البرمجيات (التي يوفرها المطورون) + البرمجيات السائلة (تعديلات المستخدمين).
في عصر البرمجيات السائلة هذا، ستنفجر أفكار المستخدمين للتعديلات.
قد تصبح فكرة تعديل رائدة اخترعها أحد المستخدمين موضوعاً ساخناً على وسائل التواصل الاجتماعي، مما يدفع الآخرين إلى تقليد وتعديل تطبيقات البرمجيات السائلة المختلفة.
علاوة على ذلك، من المحتمل أن تظهر البرمجيات السائلة القادرة على التعامل مع تطبيقات برمجية متنوعة بطريقة متكاملة. وهذا يعني أن المستخدمين يمكنهم عرض جداول زمنية من منصات وسائط اجتماعية مختلفة متعددة في تطبيق واحد، أو أن نتائج البحث يمكن أن تدمج نتائج من منصات متعددة.
وبهذه الطريقة، في عالم تنتشر فيه البرمجيات السائلة، ستوفر الأجهزة المختلفة، بما في ذلك أجهزة الكمبيوتر والهواتف الذكية، وظائف تناسب تماماً حياة وأنشطة كل فرد منا.
ظاهرة حالية
بالنسبة لمهندسي البرمجيات مثلي، من الأهمية بمكان فهم أن البرمجيات السائلة ليست مفهوماً مستقبلياً أو شيئاً بعيداً لعدة سنوات.
هذا لأن حتى البرمجيات السائلة البسيطة جداً قابلة للتحقيق بالفعل.
على سبيل المثال، لنفترض أنني مهندس أعمل على تطوير تطبيق ويب لموقع التجارة الإلكترونية لشركتي.
سيمتلك تطبيق الويب هذا قواعد بيانات وأنظمة لإدارة المبيعات وأنظمة شحن المنتجات على خوادم مُدارة داخلياً أو متعاقد عليها عبر خدمة سحابية. وعندما يقوم المستخدم بعملية شراء، تتصل هذه الأنظمة للتعامل مع جمع الدفع وإرسال المنتج.
لا يمكن تعديل أنظمة وقواعد بيانات الأعمال الأساسية هذه بشكل عشوائي.
ومع ذلك، يمكن تعديل تصميم شاشة الويب لموقع التجارة الإلكترونية المواجه للمستخدم ليناسب المستخدمين الأفراد دون التسبب في مشكلات كبيرة. بالطبع، إذا أثرت تغييرات مستخدم واحد على شاشات المستخدمين الآخرين، فسيكون ذلك مشكلة، لكن التخصيصات الفردية الخاصة بالمستخدم لا بأس بها.
على سبيل المثال، يمكن تصور تعديلات متنوعة: تكبير النص، تغيير الخلفية إلى لون داكن، إعادة وضع الأزرار التي يتم الضغط عليها بشكل متكرر لتسهيل التشغيل باليد اليسرى، فرز العناصر حسب السعر في شاشة القائمة، أو عرض تفاصيل منتجين جنباً إلى جنب.
من الناحية الفنية، يمكن تحقيق هذه التعديلات عن طريق تعديل ملفات التكوين والبرامج مثل HTML و CSS و JavaScript التي تعرض الشاشة في المتصفح.
من منظور أمني، تعمل هذه الملفات في الأصل على متصفح الويب. ولذلك، فإن الأجزاء التي يمكن تعديلها بواسطة مهندس ملم بتطبيقات الويب لا تتعامل إلا مع الوظائف والبيانات الآمنة للتعديل.
وهكذا، على جانب الخادم لتطبيق ويب التجارة الإلكترونية، يمكن إنشاء آلية لتخزين هذه الملفات بشكل منفصل لكل مستخدم مسجل الدخول، وإضافة شاشة للمحادثة مع ذكاء اصطناعي للدردشة، ثم تعديل ملفات HTML و CSS و JavaScript الخاصة بهذا المستخدم على الخادم وفقاً لطلباته.
إذا تم تقديم هذا النص، بالإضافة إلى معلومات تكوين تطبيق الويب الحالي للتجارة الإلكترونية وشفرة المصدر، إلى ذكاء اصطناعي توليدي، فمن المرجح أن يوفر الخطوات والبرامج اللازمة لإضافة هذه الوظيفة.
وبهذه الطريقة، فإن البرمجيات السائلة هي بالفعل موضوع حالي؛ ولن يكون مفاجئاً إذا كانت ظاهرة مستمرة الآن.
المهندسون الشاملون
حتى مع توسع نطاق البرمجة التلقائية المدعومة بالذكاء الاصطناعي وظهور عصر البرمجيات السائلة، لا يزال تطوير البرمجيات لا يمكن إجراؤه بالكامل بواسطة الذكاء الاصطناعي التوليدي وحده.
ومع ذلك، من المؤكد أن التركيز على البرمجة في تطوير البرمجيات سينخفض بشكل كبير.
علاوة على ذلك، لتطوير البرمجيات بسلاسة، يلزم وجود مجموعة واسعة من المعرفة والمهارات الهندسية، تمتد من البرمجة العامة إلى البنية التحتية السحابية، والشبكات، والأمان، والمنصات، وأطر التطوير، وقواعد البيانات – وصولاً إلى جميع طبقات حزمة النظام لكي يعمل النظام بأكمله.
يطلق على الأفراد الذين يمتلكون هذه المعرفة والمهارات مهندسي المكدس الكامل.
تقليدياً، كان عدد قليل من مهندسي المكدس الكامل يتولون التصميم العام، بينما يتخصص المهندسون الباقون في البرمجة، أو يركزون على مجالات محددة غير برمجية داخل حزمة النظام، وبالتالي يقسمون الأدوار.
ولكن، مع تولي الذكاء الاصطناعي التوليدي جانب البرمجة، ستنخفض تكاليف تطوير البرمجيات بشكل كبير، مما يؤدي إلى تخطيط العديد من مشاريع تطوير البرمجيات الجديدة.
وبالتالي، في كل مشروع تطوير، لن تكون هناك حاجة كبيرة للمهندسين الذين يمكنهم مجرد كتابة البرامج؛ بدلاً من ذلك، سيكون هناك طلب كبير على عدد كبير من مهندسي المكدس الكامل.
علاوة على ذلك، في هذا السيناريو، لن يكون مجرد امتلاك معرفة ومهارات المكدس الكامل كافياً. وذلك لأن أنواع البرامج المطلوبة في مشاريع التطوير المختلفة ستتنوع، مما يعني أن التطوير لن يُطلب دائماً باستخدام نفس حزمة النظام. بالإضافة إلى ذلك، ستزداد بلا شك متطلبات الأنظمة المعقدة التي تتطلب حزم نظام متعددة.
على سبيل المثال، تختلف حزمة النظام لتطبيق الويب عن حزمة أنظمة الأعمال أو الأنظمة الأساسية. لذلك، لا يمكن تكليف مهندس تطبيقات ويب كامل المكدس بمشروع تطوير نظام أساسي.
وبالمثل، تختلف تطبيقات الويب وتطبيقات الهواتف الذكية وتطبيقات أجهزة الكمبيوتر الشخصية في حزم أنظمتها. في عالم البرمجيات المضمنة، مثل إنترنت الأشياء، ستختلف حزمة النظام بالكامل لكل جهاز مضمن.
ومع ذلك، مع انخفاض التركيز على البرمجة وانخفاض التكاليف الإجمالية لتطوير البرمجيات، فمن المرجح أن يزداد تطوير الأنظمة المعقدة التي تجمع بين البرمجيات ذات حزم الأنظمة المختلفة.
وبينما سيتطلب مثل هذا التطوير تجميع مهندسي مكدس كامل متميزين ومتعددين، فإن المهندسين الذين يمكنهم الإشراف على النظام بأكمله والتعامل مع التصميم الأساسي سيلعبون دوراً حاسماً.
وهذا يعني أنه سيكون هناك طلب على مهندسين ذوي معرفة ومهارات شاملة عبر العديد من حزم الأنظمة، متجاوزين حدود حزم الأنظمة الفردية.
من المرجح أن يُطلق على هؤلاء المهندسين اسم "المهندسين الشاملين".
وكما أن الطلب على المهندسين الذين يمكنهم البرمجة فقط سينخفض بسبب الذكاء الاصطناعي التوليدي، سيأتي عصر في النهاية عندما ينخفض فيه الطلب على مهندسي المكدس الكامل المحصورين في حزمة نظام واحدة.
إذا كنت ترغب في البقاء نشطاً كمهندس تقنية معلومات في ذلك العصر، فيجب عليك البدء فوراً في طريق أن تصبح مهندساً شاملاً.
دور المهندسين الشاملين
إن لغات البرمجة، والمنصات، والأُطُر التي سيتم تطويرها متنوعة.
ومع ذلك، لا يحتاج المهندس الشامل إلى إتقانها جميعاً، لأنه يمكنه أيضاً تلقي المساعدة من الذكاء الاصطناعي التوليدي.
إذا تركت الأمر للذكاء الاصطناعي التوليدي، فإنه يمكنه إنشاء لغات برمجة، أو منصات، أو أُطُر لم تستخدمها من قبل، وذلك ببساطة عن طريق تقديم تعليمات شفهية.
بالطبع، هناك خطر إدخال أخطاء برمجية أو ثغرات أمنية، أو تراكم ديون فنية قد تجعل التعديلات المستقبلية صعبة.
لتحديد هذه المخاطر وتخفيفها، من الضروري امتلاك معرفة باللغة أو المكتبة المحددة. ومع ذلك، يمكن الحصول على هذه المعرفة أيضاً من الذكاء الاصطناعي التوليدي. يحتاج المهندس الشامل فقط إلى أن يكون قادراً على بناء إجراءات وآليات قوية لاكتشاف هذه المشكلات ومنعها، أو للتعامل معها بعد حدوثها.
لا تتغير هذه الإجراءات والآليات بشكل كبير باختلاف حزم الأنظمة. إذا تم إضفاء الطابع الرسمي على الإجراءات والآليات لمنع الأخطاء البرمجية والثغرات الأمنية وضمان قابلية التوسع المستقبلية، فيمكن ترك الباقي للذكاء الاصطناعي التوليدي أو المهندسين المتخصصين في تلك المجالات المحددة.
لا يحتاج المهندسون الشاملون إلى امتلاك معرفة تفصيلية أو خبرة طويلة الأمد في كل حزمة نظام فردية.
أحد الأدوار الرئيسية للمهندس الشامل هو تصميم كيفية توزيع الوظائف وكيفية عمل أنظمة برمجية معقدة متعددة، تعمل بشكل تعاوني عبر حزم أنظمة مختلفة، معاً.
بالإضافة إلى ذلك، فإن النظر في كيفية تطوير وإدارة البرنامج بأكمله يعد أيضاً دوراً حاسماً للمهندس الشامل.
البرمجيات الشاملة
دعونا نتأمل ما هو نوع تطوير البرمجيات الذي يحتاج إليه المهندس الشامل.
في وقت سابق، ذكرت مثالاً لتطوير تطبيق ويب للتجارة الإلكترونية.
تحت إشراف مسؤول تنفيذي كلفته الإدارة العليا بتحديث تطبيق الويب هذا للتجارة الإلكترونية، قد يأتي فريق التخطيط بالمتطلبات التالية:
تكامل منصة مجتمع المستخدمين: هذا يعني توفير منصة ليست فقط لتطبيق أو موقع تجارة إلكترونية مخصص، بل حيث يمكن للمستخدمين التفاعل حول المنتجات نفسها وكيفية استخدامها. الهدف هو الاحتفاظ بالمستخدمين، وتأثير الكلام الشفهي، وإثراء المحتوى من خلال مساهمات المستخدمين، ودمج التعليقات (الإيجابية والسلبية على حد سواء) في تطوير المنتجات، وتخطيط المنتجات الجديدة، والتسويق.
توافق متعدد الأجهزة: يجعل هذا مجتمع المستخدمين ومعلومات المنتج متاحين من أجهزة متنوعة، بما في ذلك ليس فقط تطبيقات الويب ولكن أيضاً تطبيقات الهواتف الذكية، والمساعدين الصوتيين، والأجهزة القابلة للارتداء، والأجهزة المنزلية الذكية.
توافق متعدد المنصات: يشمل هذا ليس فقط منصة مجتمع المستخدمين الخاصة بالشركة ولكن أيضاً، على سبيل المثال، قوائم المنتجات ومشاركة المراجعات على مواقع التجارة الإلكترونية الشاملة، والتكامل مع وسائل التواصل الاجتماعي، والربط الوظيفي والمعلوماتي مع أدوات الذكاء الاصطناعي المختلفة.
تحديث نظام الأعمال: مع الربط المؤقت بأنظمة إدارة المبيعات وتسليم المنتجات الحالية، يتضمن هذا أيضاً تحديث هذه الأنظمة. بعد التحديث، تتضمن الخطة تجميع بيانات المبيعات والتنبؤ بالطلب في الوقت الفعلي، والتكامل مع أنظمة إدارة المخزون. علاوة على ذلك، سيتم تنفيذ الربط بأنظمة المخزون الموزعة إقليمياً التي توفرها شركات التوصيل وخدمات التوصيل من جانب الناقل على مراحل، مما يتطلب من نظام المعلومات تكييف تكاملاته تدريجياً وفقاً لذلك.
توافق البرمجيات السائلة: ستكون جميع واجهات المستخدم، بطبيعة الحال، متوافقة مع البرمجيات السائلة. بالإضافة إلى ذلك، سيتم أيضاً تحويل واجهات المستخدم الداخلية لتطوير وتخطيط المنتجات (مثل تجميع المعلومات والتعليقات)، وأقسام عمليات النظام، وتقارير الإدارة إلى برمجيات سائلة.
إذا تم تقديم خطة تطوير لبرنامج معقد كهذا، فمن المرجح أن فريق تطوير البرمجيات التقليدي لن يقبلها على الفور. بدلاً من ذلك، من خلال المناقشات حول مواصفات النظام، سيقومون بإثبات منطقي للحاجة إلى تكاليف تطوير ووقت هائلين، دافعين إلى تخفيضات كبيرة في المواصفات.
ولكن، ماذا لو كان الذكاء الاصطناعي التوليدي قادراً على أتمتة معظم البرمجة، وكان أكثر من نصف حزم الأنظمة المقترحة قد تم تجربتها بالفعل من قبل شخص في الفريق؟ وماذا لو كان لدى الفريق سجل حافل في إطلاق حزم أنظمة ومنصات وأُطُر عمل جديدة بنجاح من الصفر بمساعدة الذكاء الاصطناعي التوليدي؟ وماذا لو كنت أنت، كمهندس شامل، قد بدأت بالفعل في هذا المسار وتعتزم الاستمرار فيه؟
من هذا المنظور، يجب أن يبدو مشروعاً جذاباً للغاية. ستتمكن من العمل مع فريق تخطيط يقدم مقترحات طموحة من الإدارة العليا، وفريق تطوير لديه القدرة على النمو ليصبح فريق تطوير برمجيات شامل.
هناك أيضاً الطمأنينة بوجود أنظمة قائمة. إنه أيضاً مشروع يمكن نموه تدريجياً من خلال عملية تطوير رشيقة، بدءاً بالميزات ذات التأثير السريع والعالي، وجمع الملاحظات من المستخدمين الأوائل.
بالنظر إلى كل هذا، يجب أن يبدو تطوير هذه البرمجيات الشاملة مشروعاً جذاباً للغاية.
خاتمة
مع البرمجة التلقائية التي يدفعها الذكاء الاصطناعي التوليدي، أصبحت البرمجيات السائلة وتطوير البرمجيات الشاملة حقائق راهنة بالفعل.
في هذا السياق، يحتاج مهندسو تكنولوجيا المعلومات بشكل متزايد إلى تجاوز مفهوم المكدس الكامل ويهدفون إلى أن يصبحوا مهندسين شاملين.
بعد ذلك، سيتوسع نطاق عملهم أكثر، متجاوزين عالم أنظمة تكنولوجيا المعلومات ليشمل هندسة الأعمال الشاملة – أي هندسة الأنشطة التنظيمية نفسها، من خلال ربط العملاء والموظفين الداخليين والذكاء الاصطناعي – وهندسة المجتمعات الشاملة.
وبعيداً عن ذلك أيضاً، أتوقع ظهور مجال يسمى الهندسة الاجتماعية الشاملة، ويهدف إلى تحسين المجتمع بشكل شامل.