دروس البرمجة

دروس برمجة عملية بأمثلة واضحة وأفضل الممارسات لبايثون وC++ وجافاسكربت وغيرها. طوّر مهاراتك في التصميم والاختبار والأداء.

تكامل Salesforce: الحدود والمسارات والتكلفة الحقيقية

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

تطوير إضافات ووردبريس تنجو من تحديثات النواة

معظم مشاريع تطوير إضافات ووردبريس تتبع المسار نفسه. أحدهم يحتاج نموذج حجز أو مستورد تغذية أو حقلاً إضافياً عند إتمام الطلب، فيكتبه مطوّر، ويعمل، وينصرف الجميع إلى غيره. وبعد عامين يبقى الموقع عالقاً على إصدار قديم من ووردبريس لأن لا أحد واثق من أن تلك الإضافة ستنجو من التحديث، ومن كتبها قد رحل. والسبب نادراً ما يكون أن...

مراجعات ما بعد الحادث التي تُحدث تغييراً فعلياً

من السهل عقد مراجعة ما بعد الحادث ومن الصعب جعلها مفيدة. يُعقد الاجتماع، ويُكتب مستند، وتُسجَّل أربعة بنود عمل، وبعد ستة أشهر يتكرر العطل نفسه بينما يعثر أحدهم على المستند القديم وهو يبحث عن شيء آخر تماماً. تحظى عبارة بلا لوم بمعظم الاهتمام في النقاشات حول هذا الموضوع، وهي مهمة فعلاً، غير أن الخلل ليس هناك. كثير من...

توثيق تقني يُقرأ فعلاً

يفشل التوثيق التقني بطريقة محددة ويمكن التنبؤ بها تماماً. يكتب أحدهم كمّاً كبيراً منه خلال أسبوعين هادئين، ثم يتغير النظام، ولا يعود أحد لتحديثه، وخلال عام واحد يصير المستند يقول بثقة تامة أشياء غير صحيحة. عند تلك النقطة يصبح أسوأ من العدم، لأن القارئ الذي يثق به يتصرف بناءً على معلومات لم تعد قائمة. الرد المعتاد على...

تهيئة المطورين الجدد التي تُنتج في الأسبوع الأول

تُقاس تهيئة المطورين الجدد عادةً بطول الإجراءات التعريفية، وهذا هو الطرف الخاطئ من المشكلة. الرقم الذي يهم مختلف تمامًا: كم يمر من الوقت قبل أن يستطيع مهندس جديد أن يغيّر شيئًا وهو واثق من أنه لم يكسر شيئًا آخر. وفي معظم الفرق يُقاس ذلك بالأشهر لا بالأيام. التأخير نادرًا ما يتعلق بالشخص نفسه. إنه يتعلق بحجم ما يوجد من...

إيداع الكود المصدري: من يحتاجه فعلا

إيداع الكود المصدري لدى طرف ثالث، المعروف في السوق باسم software escrow، موجود للرد على خوف مشروع: أن يختفي المورد الذي بنى نظامك الحيوي ويشغله، فتبقى أنت مع شيء تعتمد عليه ولا تستطيع صيانته. يضع عقد الإيداع الكود المصدري لدى وسيط محايد يسلمه إليك إذا وقع ذلك فعلا. الخوف مشروع. أما الأداة فكثيرا ما يساء فهمها، ومن...

عقد بسعر ثابت أم نظام الوقت والمواد؟

يُطرح الاختيار بين عقد بسعر ثابت ونظام الوقت والمواد عادةً على أنه اختيار يتعلق بالمخاطرة، وهذا صحيح، ثم يُساء التعامل معه فوراً، لأن الطرفين يفترضان أن المخاطرة تختفي بدلاً من أن تنتقل من طرف إلى آخر. هي لا تختفي. في الترتيب ذي السعر الثابت يتحمل المورّد مخاطرة أن يكون التقدير خاطئاً، ويُسعّر تلك المخاطرة داخل الرقم...

إصدارات API: متى تكسر التوافق وكيف لا تفعل

تبدأ النقاشات حول إصدارات API من الطرف الخطأ في العادة، أي من موضع رقم الإصدار. وهذا أقل قرار أهمية في الموضوع كله. المهم فعلاً هو معرفة أي التغييرات يستدعي إصداراً جديداً من الأساس، ومعظم الفرق تخطئ هنا في اتجاه التهاون: تُطلق شيئاً تظنه إضافياً بحتاً، فينكسر أحد العملاء. النموذج الذهني المفيد هو أن واجهتك وعد بما...

طلب عروض البرمجيات: كيف تحصل على عروض قابلة للمقارنة

يفترض بطلب عروض البرمجيات أن يجعل المورّدين قابلين للمقارنة. لكن معظم هذه الطلبات تحقق العكس، لأنها تصف حلاً بتفصيل يكفي لتقييد الإجابة، وتغفل في الوقت نفسه المعلومات التي يحتاجها أي شخص لتسعيره. والنتيجة خمسة عروض تفصل بينها مرتبة كاملة من حيث الحجم، وكلها مستوفية شكلياً، ولا يقيس أي منها الشيء ذاته. التشخيص المعتاد...

تكلفة صيانة البرمجيات: ما لا يضعه أحد في الميزانية

تكلفة صيانة البرمجيات هي الرقم الذي يحوّل مشروعًا ناجحًا إلى محادثة صعبة بعد ثمانية عشر شهرًا. فمرحلة البناء جرى تقدير ميزانيتها والموافقة عليها وتسليمها على النحو المتفق عليه. أما ما يحدث بعد دخول النظام إلى الخدمة فقد وُصف بكلمة «الدعم» ومُنح رقمًا خمّنه أحدهم على عجل، وكان ذلك الرقم أصغر من اللازم في كل مرة تقريبًا....