يعود مشروع متأخرًا، أو مُثقلًا ببناء زائد، أو خاطئًا في صمت. فتخرج المراجعة باسم شخص يحتاج إلى تطوير. وبعد نصف عام يُنتج شخص آخر في مشروع آخر النمط نفسه من الفشل — فتخرج المراجعة باسمه هو أيضًا.
وعند حدٍّ ما يتوقف الأمر عن أن يكون عن الأشخاص. اطلب من عالم حاسوب ومهندس برمجيات أن يبنيا الشيء نفسه، وستحصل في الغالب على المنتج نفسه — غير أن كلًّا منهما جاء من طرف مقابل للمسألة، والطريق لا يبين إلا حين تخرج المسألة عن المألوف.
علوم الحاسوب مدرَّبة على أن تُثبت أنه يعمل. هندسة البرمجيات مدرَّبة على أن تُظهر أنه يعمل.
أحدهما يستدلّ نحو المنبع، باتجاه التعريف. والآخر يستدلّ نحو المصبّ، باتجاه الدليل.
كلتا العادتين صائبة في معظم الأحيان، ولهذا لا تُصحَّح إحداهما أبدًا. والثمن يُدفع عند التسليم — إذ يُعلن أحد الإخفاقين عن نفسه، أما الآخر فيظهر بعد سنتين طبقةً من الحلول الالتفافية لا يقدر أحد على إزالتها، فيُسجَّل حينها في باب الكفاءة. وما يلي هو كيف نفرّق بينهما: ما الذي يبني كل عادة، وكيف تُخفق كل منهما، والسؤال الواحد الذي يحدّد نوع المسألة التي أمامك — وما يكلّفه الفريق حين تنقصه إحداهما.
مُدرَّب، لا مُختار
العقلية تأتي مما يُعاقَب عليه، لا من المنهج
يُشكّل الحقل أهله عبر الأخطاء التي يعاقب عليها، والحقلان يعاقبان على أخطاء مختلفة.
علوم الحاسوب تعاقب على العجز عن بيان سبب نجاحه. فالصحة تُحسم أمام معيار موضوع داخل الحقل نفسه — البراهين، وحدود التعقيد، وهل ثمّة حلّ أمثل من أصله. والمكافأة لمن يردّ المسألة إلى بنيتها الجوهرية. فتكون العادة المُدرَّبة: جرّدها حتى يبين شكلها المعروف.
هندسة البرمجيات تعاقب على نظام يفاجئك في شهره السادس. فالصحة تُحسم أمام الواقع — المتطلبات، والحِمل، والتسليمات، والميزانيات، ومدخلات لم يحسب لها أحد. والمكافأة لمن يبني شيئًا يصمد خمس سنوات وثلاثة تغييرات في الفريق. فتكون العادة المُدرَّبة: اسأل ما الذي سينكسر، ومن سيصونه.
انظر إلى أين تذهب الصفحات
افتح كتابًا دراسيًا من كل حقل وراقب كيف تُوزَّع الفصول. التوزيع يفضح ما يعدّه ذلك الحقل الجزء الصعب — وما يعدّه تفصيلًا تستطيع أن تدبّره بنفسك.
| كتاب علوم الحاسوب | التركيز | كتاب هندسة البرمجيات |
|---|---|---|
| ثقيل | تعريف المسألة المنبع | شبه غائب |
| ثقيل | اشتقاق النمط المنبع | خفيف |
| ثقيل | إثبات صحته المنبع | شبه غائب |
| متوسط | تطبيقه المجرى الأوسط | متوسط |
| شبه غائب | تأمين المدخلات المصبّ | ثقيل |
| شبه غائب | اختبار المخرجات المصبّ | ثقيل |
تركيز ترتيبي، لا أعداد صفحات مقيسة. المراتب الأربع تُرتّب كم يحمل الكتاب من كل مرحلة، بالترتيب: ثقيل، متوسط، خفيف، شبه غائب. الادعاء هو الميل، لا الرقم.
اقرأه بوصفه ادعاءً معرفيًا، لا شكوى من منهج. علوم الحاسوب تُثبت الصحة بالبرهان — مرة واحدة، مسبقًا. وهندسة البرمجيات تُثبتها بالدليل — مرارًا، بعد وقوع الأمر. لهذا يحمل التحقّق النصف الأخير من كتاب، وحاشيةً في الآخر.
الحركة الأولى تفضحه
التصحيح يتوقف. العادة لا تتوقف
هذا أول موضعين يظهر فيهما هذا الانقسام: الامتحان، حيث نوع واحد بعينه من الخطأ هو ما يُعاقب عليه. والثاني كل ما يأتي بعده — العمل، حيث لا يُصحَّح شيء، وتجري العادة وحدها. وما يعبر بينهما فعل واحد ظاهر للعين: تنزل مسألة غير مألوفة، فتتجه اليد إلى المسألة أو إلى الأداة. الشخص نفسه، والعادة نفسها، ولا ممتحِن. دُفع ثمن العادة مرة واحدة، وتُستهلك كل يوم.
اشتقاق، أو استرجاع
راقب شخصين يلقيان مسألة غير مألوفة. الحركة الأولى هي الفرق كله، وهي لا تخبو مع الأقدمية.
الاشتقاق. وضّح التعريف، وضع المسألة في صنف صوري معروف، واختر البنية التي يقتضيها ذلك الصنف. أبطأ في الانطلاق. ولا يُخفق في صمت حين تتبيّن المسألة جديدة حقًا.
الاسترجاع. قارن المسألة بحلول صمدت في الإنتاج من قبل، ثم كيّفها. أسرع، وصائب في الغالب — فمعظم المسائل قريبة الشبه بغيرها فعلًا. والخطر المُدار هنا ليس الأمثلية، بل المفاجأة.
الفجوة تتسع بدل أن تُغلق. كل مشروع نجح فيه النمط شبه المطابق يعزّز الاسترجاع. وكل مشروع كشف فيه إحكام التعريف قيدًا خفيًا يعزّز الاشتقاق. يواصل الطرفان جمع الأدلة المؤيدة، فتتصلّب المسبقات — ولا تعني الخبرة الأكثر سوى مكتبة استرجاع أكبر، أو تجريدات أحدّ.
لا أحدهما يعلو على الآخر
المترجِمات، وأنظمة الأنواع، وقواعد البيانات، وبروتوكولات التوافق، والمجدولات، وأوليات التشفير، وأطر تعلّم الآلة — كلها منتجات منبع، وتصل إلى المهندس الذي يبني فوقها مُسلَّمًا بصحتها. فحجة الصحة عنده كلها قائمة على أنها صحيحة سلفًا، وهذا بالضبط ما أوجب برهنتها لا اختبارها. مخرج أحد الحقلين هو أرضية الآخر.
ولهذا فإن قراءة «العلم في مقابل الهندسة» قراءة خاطئة، مهما دعت إليها أسماء الشهادات. كلاهما هندسة. والمحور الحقيقي هو البُعد عن التطبيق، وهو محور قائم في كل حقل ناضج: فالفيزياء تقع في منبع علوم المواد والهندسة المدنية والكهربائية والميكانيكية — وكل واحدة منها هي العلم الأساسي نفسه مُوجَّهًا إلى مجال، وكل واحدة هندسة بلا لبس. ولا أحد يقرأ ذلك الترتيب على أنه علم يعلو على هندسة. إنه طبقات، والخلاف القائم الوحيد هو على أي طبقة تقع مسألة بعينها. وللبرمجيات البنية ذاتها، إلا أنها أحدث سنًّا، فما زالت تتجادل في المسمّيات بدل الطبقات.
الأساس ليس أرفع من المبنى: لا شيء يقوم بدونه، ولا أحد يسكنه.
ما يكلّفه هذا الفرق
ويتبع ذلك أمران غير متناظرين، وكلاهما عملي
عدم تناظر المعماري. العمارة أن تقرّر ما هو النظام قبل أن يوجد عنه دليل — قبل أن يكون ثمّة شيء يعمل لتقيسه، أو حِمل ترصده، أو مستخدم يفاجئك. وذلك عمل منبع بحكم التعريف، ويُحسم كما تُحسم مسائل المنبع: بالحجاج في التعريف، لا بالدليل على النتيجة. عادة الاسترجاع تُنتج تصميمًا ممتازًا — تركيبًا من أجزاء أثبت كلٌّ منها نفسه سلفًا — ومعظم الأنظمة تحتاج هذا بالضبط. لكن تركيب أجزاء مُثبتة ليس هو فعل تثبيت شكلٍ لا سابقة له، وحين لا يوجد قريب شبيه يُسترجَع، لا يجد الاسترجاع ما يمدّ يده إليه. لذلك يستقرّ دور المعماري عادةً على عادة المنبع. لا لأن الدور يشترط تعليمًا بعينه — بل لأن العمل منبعي، ولأن واحدة فقط من العادتين مُدرَّبة على مسائل لا دليل عليها بعد.
وتحت ذلك المسمّى الواحد تختبئ وظيفتان مختلفتان. العمارة في أرض معروفة — أنظمة لها سوابق راسخة، تُركَّب من أجزاء أثبت كلٌّ منها نفسه سلفًا — يمكن الوصول إليها من أيٍّ من الخلفيتين، وعادة الاسترجاع بارعة فيها فعلًا؛ ومعظم العمارة من هذا النوع. أما العمارة التي تُنتج حلًّا جديدًا فهي فعل آخر. لا سابقة تُركَّب منها، فيلزم اشتقاق الشكل لا انتقاؤه. وهذه تصدر عن طبيعة بحثية — وهي ليست شهادة، ولا لقبًا وظيفيًا يُعوَّل عليه. فمن قدّموا الأوليات التي يبني عليها الجميع اليوم بينهم توني هور، وقد درس اللغات الكلاسيكية والفلسفة؛ وريتش هيكي، وقد درس التأليف الموسيقي؛ وغيرهما ممن تركوا الجامعة قبل التخرّج. وليس ما يجمعهم مدرسةً واحدة. وأقرب ما يجمعهم حركة أولى: إذا لقوا ما لا يفهمونه استقصوه ولم يلتفّوا حوله. والتعليم العلمي أشيع موضع تُدرَّب فيه هذه العادة عن قصد — وهو مغزى المعاقبة على لا تستطيع بيان سبب نجاحه — ولهذا تبدو الشهادة كأنها السبب. وما هي إلا وكيل عنه. وحين لا يوجد قريب شبيه يُسترجَع، فلا حركة إلا لعادةٍ دُرّبت على مسائل غير معرَّفة.
عدم تناظر التحوّل. عالم الحاسوب يصير مهندس برمجيات بالممارسة. فمكتبة الاسترجاع تُراكَم، والوقت في الإنتاج يراكمها شئت أم أبيت — خمس سنوات من الإطلاق والتسليمات والحوادث ستبنيها لك. أما الاتجاه الآخر فليس تراكمًا. الاشتقاق ليس مكتبة أكبر؛ إنه رفضٌ للبدء حتى يثبت التعريف. لا يمكنك أن تُسجّل فيه ساعات. عليك أن تكفّ عن قبول إنه يعمل، أطلقه جوابًا نهائيًا، وتغييرُ ما يُرضيك أصعب من الإضافة إلى ما تعرفه.
وهل تتغيّر أصلًا؟ ذلك رهن ما يحيط بها. فالعادة لا تتحرّك إلا إذا لم تشدّها عادات المرء الأخرى إلى الخلف؛ وحيث تشدّها، تغلب العادة المُدرَّبة وتبقى. ولهذا ليست المسألة مسألة جهد. أنت لا تستبدل عادة واحدة — بل تطلب منها أن تخالف كل ما عداها مما تفعل.
العادتان تُخفقان على نحوين مختلفين، وعدم التناظر هذا أهم من أيّهما أفضل
الاشتقاق يُخفق بألّا يتقارب أبدًا. لا تصير التعريفات نظيفة بما يكفي للبدء. يتعثّر العمل عند السبورة، أو يُنتج شيئًا أنيقًا وعامًا لا يستطيع أحد غيره صيانته. ظاهر فورًا.
الاسترجاع يُخفق بإكراه المسألة على المطابقة. يُطبَّق النمط على شيء لا يصفه تمامًا. ويطفو التنافر متأخرًا، كطبقة من الحلول الالتفافية المتراكمة لا يستطيع أحد إزالتها الآن. ظاهر في السنة الثانية.
إخفاق صاخب ومبكر. والآخر صامت ومتأخر. وعدم التناظر هذا هو كل سبب استحقاق هذا الأمر للتسمية — فالإخفاق الرخيص يُعلن عن نفسه، والباهظ لا يفعل.
فالسؤال المفيد ليس أيّ العادتين أفضل. بل هل المسألة جديدة فعلًا. المسائل الجديدة حقًا أندر مما يفترض عالم الحاسوب، وأكثر شيوعًا مما يفترض مهندس البرمجيات.
الانقسام نفسه، في صناعة مجاورة
المحاسبة مرساة إلى مرجع ثابت موضوع داخل الحقل نفسه. المعايير تحدّد ما الصحيح؛ والدفاتر توازن أو لا توازن؛ والإقفال قابل للبرهنة؛ والإخفاق الذي يكلّفك هو العجز عن بيان سبب كون رقمٍ ما على ما هو عليه. أما التمويل فمرساة إلى نتائج في عالم مضطرب — التقييم، والمخاطر، والتنبؤات، وأسواق لا تلزمها مراعاة نموذجك. لا شيء هناك يُبرهَن، بل يُدلَّل عليه، مرارًا، بعد وقوع الأمر.
كل عدم تناظر يتكرر. مخرج المحاسب هو مدخل المحلل؛ والقوائم هي الأرضية التي يقف عليها التحليل. ينتقل المحاسب إلى التحليل بالممارسة، بينما المحلل الذي يُطلب منه إقفال الدفاتر عليه أن يقبل معيارًا يكون فيه الصواب التقريبي خطأً بلا مواربة. الشكل نفسه بمفردات مختلفة — وهذه علامة جيدة على أن الشكل حقيقي، وليس حكاية عن المبرمجين.
ماذا تفعل حيال ذلك
أيّهما يناسب المسألة التي أمامك؟
المجال إشارة لا بأس بها. وموضع عدم اليقين إشارة أفضل.
طابِق المسألة، لا الشخص
قدرتان مختلفتا الشكل — وثمن يُدفع كلما سُلّم العمل إلى غير أهله منهما. الإسناد بحسب من تلائمه العقلية يبدو كفؤًا، لكن المسألة تُعاد صياغتها بهدوء لتلائم من تسلّمها — فمسألة منبع تُسنَد إلى عادة استرجاع تعود نمطًا قريب الشبه والتنافر مدفون فيه، وتعود وهي تبدو منتهية. فحدّد نوع المسألة أولًا، جهرًا، قبل أن تحدّد من يملكها. ومعظم ما يُنسب من الإخفاق إلى الكفاءة هو إخفاق في الإسناد.
وهذا كله يفترض أن العادتين كلتيهما في الغرفة. فإن لم تكونا، فالإسناد ليس قرارًا تتخذه — والغائبة منهما هي الاشتقاق في الأغلب، لأن فريقًا من المسترجعين لا يرى إخفاقاته: القريب الشبيه يبدو مطابقًا من الداخل. وهذه هي الحجة لإبقاء عادة اشتقاق واحدة في فريق مسائله روتينية في معظمها. لا لتؤدي معظم العمل — بل لتكون من يلاحظ أن المسألة الروتينية لم تكن روتينية. واعكس ذلك لشركة لم يوجد منتجها بعد: هناك سيبني فريق استرجاعي بالكامل نسخة كفؤة قريبة الشبه من منتج غيره.
بحسب موقعك
- تختار تخصصًا؟ أنت لا تنتقي مسمّى وظيفيًا — فكلا الطريقين ينتهي إلى كتابة البرمجيات. أنت تنتقي أي عادة ستُمرَّن طوال سنوات الدراسة، وأي معيار لـ«هذا يعمل» سيصير مألوفًا لك بعدها.
- تدير الاثنين؟ الاحتكاك بينهما عادةً خلاف على ما يُعدّ إنجازًا، لا على الكفاءة. سمِّ نوع المسألة قبل أن يبدأ العمل ويختفِ نصف الجدل.
- واحد منهما؟ عادتك صائبة بما يكفي لتظلّ تؤكد نفسها. فتعلّم نمط إخفاق الآخر لا عدّته — فذلك هو ما لا تراه عادتك قادمًا.
- أمامك مسألة الآن؟ اسأل ما الذي يجب أن يكون صحيحًا حتى يصير «الصحيح» معرَّفًا. فإن لم يستطع أحد في الغرفة الإجابة، فهي منبع — مهما بدا المجال، ومهما بدت التذكرة روتينية. ذلك السؤال يكلّف دقيقة، وهو الشيء الرخيص الوحيد في هذه القائمة.
حدٌّ واحد بأمانة. المناهج تتباين تباينًا هائلًا، ومعظم خريجي علوم الحاسوب يقضون حياتهم المهنية في عمل هندسة البرمجيات — وهذا بالضبط ما يتنبأ به عدم تناظر التحوّل.
ولا شيء من هذا ادعاء عن الشهادات. الاسترجاع يحتاج سابقة؛ والعمارة الجديدة لا سابقة لها بحكم التعريف. ذلك قول عمّا يقتضيه العمل، لا عمّن يُسمح له بأدائه — فالعادة قابلة للبناء، وبعض المهندسين يبنونها عمدًا، واللقب لم يشترط الشهادة قط.
ما يبقى ليس نمطًا شخصيًا. بل هي الحركة الأولى تحت الغموض — ما يمدّ إليه المرء يده قبل أن يخبره أحد ما هي المسألة.
آخر مشروع تفكّك بين يديك — أكان التعريف خاطئًا، أم كان الدليل؟