إجعل الحل البرمجي آخر الحلول

عندما اشتكى مرتادي أحد الأبراج التجارية في نيويورك من طول الانتظار أمام المصاعد، قامت إدارة المبنى بالاستعانة بمهندسين استشاريين لدراسة الوضع و تقييمه، و خلصت دراستهم إلى ضرورة إضافة مصعدين جديدين مما يتطلب أعمال هدم و بناء جذرية في المبنى بكل أدواره و هو أمر مكلف للغاية.
دخل شاب متخصص في علم النفس يعمل في أحد الأدوار في نفس المبنى و أقترح على إدارة المبنى وضع مرآة كبيرة في ردهة المبنى امام المصاعد. المشكلة لم تكن في وقت الانتظار، المشكلة كانت في الملل الذي يتسرب لأنفس رواد المبنى سريعاً!
اقتراحه نجح، لم تعد ترد لإدارة المبنى شكاوي حول المصاعد فقد انشغل الناس بالنظر إلى أنفسهم و تعديل ملابسهم و تسريحات شعورهم في المرآة.
الأكثر شغفاً منا هم أولئك الذين يقضون معظم وقتهم في التفكير بطريقة تحليلية و إبداعية، غالباً بغرض إيجاد حلول بسيطة جداً و “كسولة” جداً . الحل لا يكون غالباً ذلك الحل الجبار القوي بكتابة المزيد من الكود المعقد.
أحياناً تجد الإجابات الأفضل بطرق أخرى مختلفة. اسأل نفسك هذه الأسئلة في المرة القادمة التي تجد نفسك فيها أمام مشكلة شبيهة بمشكلة مبنى نيويورك:
1- هل قام أحدهم بنفس هذه المهمة مسبقاً؟ هل أستطيع استخدام كود جاهز بدلاً من أن تتسخ يداي بكتابة كود من الصفر؟
2- هل هذه الخاصية مهمة فعلاً لخدمة أهداف التطبيق؟ هل هذه الخاصية موجودة مسبقاً لكن يتم الوصول لها من خلال تجربة مستخدم مختلفة؟
3- هل هناك طريقة أسهل لبرمجة ما أنا بصدد برمجته الآن تستحق التضحية حتى لو كانت لا تحل المشكلة بشكل كامل؟
4- هل يمكنني أتمتة هذه المهمة؟ هل يمكن كتاب تطبيق صغير لتكرار تنفيذ هذه الخوارزمية وفق معطيات مختلفة بدلاً من كتابتها مجدداً؟
عندما تتجه مباشرة إلى “وضعية كتابة الكود” في كل مهمة تواجهك، أنت بذلك تفقد الفرصة للتفكير في السبب و الدافع الحقيقي لكتابة هذا الكود. بدلاً من ذلك، إذا فكرت بطريقة تحليلية و عميقة عن السبب ستستطيع أن تقضي وقت البرمجة في أمور أكثر فائدة و أهمية.