تتجلى قدرة مطور البرمجيات الجيد في وقت القرارات الصعبة Decision Making، في اتخاذ القرار الصحيح، أو على الأقل القرار الأنسب لل Context، الذي يراعي العديد من الجوانب، سواءً من نواحي تقنية او ك Business Side، وليس فقط بحسب معلوماته الحالية التي يستطيع العمل بها بحيث يكون في ال safe zone من ناحية برمجية.
طبيعة عمل المطور أن يأخذ العديد من القرارات يومياً، والقرارات السريعة، كتسمية متغير او مكان وجود الدالة، بالرغم من أن لها تأثير على جودة الكود وصيانته المستقبلية، لكن هناك قرارات مصيرية، قد تضر ال Business كثيراً او تفيده كثيراً.
هذه القرارات صعبة وتكلف كثيراً لتغييرها، وتواجهه بشكل دوري، وتحتاج الى تأني وتروي ونظرة واسعة ومن ثم اختيار قرار بناء على عوامل حقيقية سليمة.
من الأمثلة لقرارات غير سليمة، وهو التسرع في القرار بدون معرفة التفاصيل: مثلاً يريد العميل مشروع موقع جديد او تطبيق جديد؟ وقبل معرفة اي تفاصيل يرد المطور مباشرة بجافا او سي# او غيرها من التقنيات.. وهو نوع من التسرع غير المدروس، فهناك عشرات الأسئلة يجب معرفتها قبل ان تقوم بعمل new project (الا إذا كان للتعلم او التجربة) لكن قد تجد ان المطور لم يعطي فرصة ليكتمل السؤال وأخذه الخيال مباشرة في ال Angular وال Forms وال CRUD..
وهكذا يطوع المتطلبات بحسب التقنية التي يجيدها وان لم تكن مناسبة.
كلما عرف المطور جذر المشكلة او الهدف الأساسي من الخاصية او المشروع، فقد يجد حل قد يكون اسهل، او أسرع، او افضل من الحل الذي قد يطرحه مباشرة بعد سماع الفكرة بدون ان يعرف لماذا، وأين ومتى وبقية الاسئلة…
من الأمثلة الاخرى اتخاذ القرار بناء على تفضيل شخصي: مثلاً عندما ينضم المطور لشركة ولديها نظام قديم Legacy System، فهل سيعمل عليه ويضيف ويعدل فيه ويقوم بإصلاحه وتحسينه Refactor، ام يأخذ القرار المتعجل بإعادة العمل عليه كلياً Rewrite from Scratch والسبب لأنه لا يحب أن يعمل على أكواد كتبها غيره وأنها أصبحت قديمة أو انه يراها سيئة وانه يستطيع كتابة افضل منها.
وغيرها الكثير من الحالات التي لم يتم اتخاذ انسب قرار، وقد تكون نتائجها كارثيه في بعض الأحيان، على اقلها ضياع الوقت والجهد (المال)…
تجد أيضاً في موقع لحن الحياة
ماهو ال OverFlow وماهي أبرز الأخطاء التي تنتج عنه!!
هل سمعت عن علم ال Feng Shui ؟ كيف يؤثر على اثاث منزلك !!
تصحيح تحدُّب الظهر بالبالون Balloon Kyphoplasty
اخذ القرارات السليمة هي من المهارات التي يتمايز بها المطورين، وهذه المهارة لا تأتي الا بقاعدة معرفية وأساس سليم، بالإضافة الى رغبة وحماس في البرمجة والتقنية، وترك الأنا، فكلما كانت لديك اساسيات صحيحة، ومن ثم وسعت افقك البرمجي وتعلمت تقنيات مختلفة وعرفت اين تبدأ ومتى تنتهي وما هو الفاصل بين هذه وتلك، سوف تكون أفضل.
أكبر خطأ يمكن ان يرتكبه ال Application Developer هو أن يعمل على تقنية واحدة فقط عشرات السنوات ولا يريد ان يجرب غيرها، فهذا المطور لا تسأله عن شيء لأنه مستعد أن يقوم بعمل أي شيء بحسب رؤيته (وتكراره المستمر)، نعم هو مستعد لكتابة نظام تشغيل كامل بال VB، لكن بكل تأكيد سوف يكون مجرد Process في ال Windows .
لذلك توسع في التقنيات المختلفة Breadth Knowledge واقرء واعرف ماهي وبماذا تتشارك وتختلف، اشترك في مواقع البرمجة، تابع ال Authors وال Speakers، شارك في ال Meetups لديك في بلدك، احضر ال Events العالمية في التقنية، اقرا في مجلات البرمجة، اقرا في الكتب، مرة في database وتارة في threading وتارة في https ووووو….. بدون التوسع المستمر، فلن تستمر، وستكون مطور، ولكن قارب تاريخ صلاحيتك على الانتهاء .