سافٹ ویئر ڈویلپمنٹ بدل گئی ہے۔ اچھی انجینئرنگ نہیں بدلی۔

سافٹ ویئر ڈویلپمنٹ اب دس سال پہلے کے مقابلے میں مختلف نظر آتی ہے۔ آپ مصنوعات (products) تیزی سے بناتے ہیں۔ آپ زیادہ کلاؤڈ سروسز استعمال کرتے ہیں۔ اب AI آپ کے روزمرہ کے کام کے بہاؤ (workflow) کا حصہ بن چکا ہے۔

ماحول بدل گیا ہے، لیکن انجینئرنگ کے بنیادی اصول وہی ہیں۔ کوڈ کا پڑھنے کے قابل (readable)، محفوظ (secure) اور قابل بھروسہ (reliable) رہنا ضروری ہے۔

بطور انجینئر آپ کے لیے کیا بدلا ہے؟

اچھے کوڈ کا مطلب اب بھی وہی ہے۔ کوڈ بیس (codebase) قابلِ پیش گوئی اور تبدیلی میں آسان ہونی چاہیے۔ ہر بار نیا فیچر شامل کرنے پر اسے سپورٹ کرنا مشکل نہیں ہونا چاہیے۔ یہاں AI ایک نیا پہلو شامل کرتا ہے۔ AI بہت سے چیکس اور ایج کیسز (edge cases) کے ساتھ کوڈ تیار کرتا ہے۔ یہ کبھی کبھی مددگار ہوتا ہے، لیکن کبھی کبھی یہ کوڈ کو بہت پیچیدہ بنا دیتا ہے۔ آپ کو AI کے کوڈ کا جائزہ لینا چاہیے تاکہ اس بات کو یقینی بنایا جا سکے کہ وہ سادہ رہے اور آپ کے آرکیٹیکچر (architecture) کے مطابق ہو۔

مارکیٹ تک پہنچنے کا وقت (Time-to-market) اب بہت کم ہو گیا ہے۔ دس سال پہلے، کسی چیز کو لانچ کرنے میں مہینوں لگتے تھے۔ آج، آپ چند دنوں میں ایک ورژن تیار کر سکتے ہیں۔ AI، کلاؤڈ سروسز اور APIs اس عمل کو تیز کر دیتے ہیں۔ لیکن تیز تر ڈیلیوری زیادہ خطرات بھی لاتی ہے۔ لانچ کرنے کے بعد آپ کو اپنی اسٹیبلٹی (stability)، سیکیورٹی اور اسکیل ایبلٹی (scalability) پر زیادہ گہری نظر رکھنی ہوگی۔

آپ کی ترجیحات اب زیادہ وسیع ہیں۔ ماضی میں، آپ کا مرکز کوڈ لکھنے اور فیچرز فراہم کرنے پر ہوتا تھا۔ اب، آپ کو مزید شعبوں کو سنبھالنا پڑتا ہے:

  • اسکیل ایبلٹی (Scalability)
  • انٹیگریشنز (Integrations)
  • ڈیٹا مینجمنٹ (Data management)
  • کلاؤڈ انفراسٹرکچر (Cloud infrastructure)
  • AI کا نفاذ (AI implementation)
  • سیکیورٹی (Security)
  • سسٹم کا استحکام (System stability)

ایک فیچر اب صرف کوڈ نہیں رہا۔ یہ کلاؤڈ اخراجات، ڈیٹا کے بہاؤ اور تھرڈ پارٹی سروسز پر منحصر ہے۔

ٹیکنالوجی کا انتخاب ضروریات کے مطابق ہونا چاہیے، نہ کہ ٹرینڈز کے مطابق۔ ٹیمیں پہلے وہ ٹولز منتخب کرتی تھیں جنہیں وہ اچھی طرح جانتی تھیں۔ اب، آپ رفتار، AI کی تیاری اور کلاؤڈ سپورٹ کو بھی دیکھتے ہیں۔ نئے فریم ورکس (frameworks) تیزی سے آگے بڑھتے ہیں کیونکہ AI ان کی دستاویزات (documentation) کو آسانی سے پڑھ سکتا ہے۔ تاہم، ان ٹولز میں اکثر پختہ اجزاء (mature components) یا ثابت شدہ سیکیورٹی کی کمی ہوتی ہے۔

AI کوڈ سنبھالتا ہے، لیکن آرکیٹیکچر انسان سنبھالتے ہیں۔ AI ایک بہت بڑی تبدیلی ہے۔ لیکن آرکیٹیکچر کے لیے سمجھ بوجھ کی ضرورت ہوتی ہے کہ کس طرح کے سمجھوتے (trade-offs) کرنے ہیں، طویل مدتی خطرات کیا ہیں، اور ایک پروڈکٹ کیسے ترقی کرتی ہے۔ تجربہ کار انجینئرز اور آرکیٹیکٹس اب بھی اس عمل کا سب سے اہم حصہ ہیں۔

بنیادی سوال بدل گیا ہے۔ دس سال پہلے، آپ پوچھتے تھے: "ہم تیزی سے کیسے بنائیں اور لانچ کریں؟" آج، آپ پوچھتے ہیں: "ہم ایک غیر مستحکم، مہنگا یا غیر محفوظ سسٹم بنائے بغیر تیزی سے کیسے لانچ کریں؟"

رفتار اہم ہے۔ لیکن صرف رفتار کافی نہیں ہے۔

Source: https://dev.to/techbarsw/software-development-changed-good-engineering-didnt-2g7

Optional learning community: https://t.me/GyaanSetuAi