لماذا تُبنى معظم البرمجيات بشكل عكسي

تُبنى معظم البرمجيات بشكل عكسي.

يحدث هذا لأن الناس يكافئون الأشياء الخاطئة.

الميزات تجذب الانتباه، بينما لا تحظى البنية البرمجية بذلك. الإعلانات تجذب الانتباه، بينما لا تحظى التوثيقات بذلك. القدرات الجديدة تجذب الانتباه، بينما لا تحظى الصيانة بذلك.

تبدأ الفرق بالأجزاء المرئية، وتُهمل الأساس.

تركز الأسئلة البرمجية الشائعة على المرحلة الخاطئة:

  • ما هي الميزات التي يجب أن نبنيها؟
  • كيف يجب أن تبدو لوحة التحكم؟
  • ما هي عمليات التكامل التي يجب أن ندعمها؟
  • ما الذي يمكننا الإعلان عنه تالياً؟

هذه الأسئلة تأتي في وقت مبكر جداً. يجب عليك فهم النظام قبل بناء الميزات.

فكر في بناء منزل. أنت لا تبدأ بألوان الطلاء، بل تبدأ بـ:

  • الأساس
  • الهيكل
  • السباكة
  • النظام الكهربائي

التفاصيل المرئية تعتمد على أنظمة غير مرئية. والبرمجيات تعمل بالطريقة نفسها.

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

الأنظمة هي التي تحدد نجاح البرمجيات.

الميزات تحل مشكلات فردية، بينما تحل الأنظمة فئات من المشكلات. الميزات تخلق الوظائف، بينما تخلق الأنظمة الاتساق.

التركيز على الميزات يزيد التعقيد، والتركيز على الأنظمة ينظم التعقيد.

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

المستخدمون لا يختبرون ميزات فردية، بل يختبرون أنظمة.

المستخدمون لا يرون:

  • المصادقة
  • واجهات برمجة التطبيقات (APIs)
  • استعلامات قواعد البيانات
  • مسارات النشر

المستخدمون يختبرون:

  • الموثوقية
  • السرعة
  • البساطة
  • الثقة

هذه المشاعر تنبع من النظام ككل.

البناء العكسي سهل الفهم. الميزات يمكن تصويرها في لقطة شاشة، ويمكنك الإعلان عن ميزة، لكن لا يمكنك الإعلان عن نظام بسهولة.

العمل غير المرئي هو الذي يخلق القيمة الأكبر.

لقد غيرت نهجي. توقفت عن السؤال عن الميزات التي يحتاجها المشروع، وبدأت أسأل عن النظام الذي أقوم ببنائه.

النظام يضع القيود، والنظام يحدد الأولويات، والنظام يرسم الاتجاه.

تصبح الميزات أسهل عندما يكون الأساس موجوداً.

المنتجات الناجحة لا تمتلك الكثير من الميزات فحسب، بل تمتلك أنظمة مدروسة. حيث تبدو مسارات العمل طبيعية، وتبدو التجربة مقصودة.

توقف عن البدء بالأجزاء المرئية. ابنِ النظام أولاً. واترك الميزات تنبثق منه.

المصدر: https://dev.to/stinklewinks/why-most-software-is-built-backwards-46i