المقالات العلمية

مقالات الشبكة العربية لمطوري الألعاب

حظك اليوم!

هذه المقالة محمية ضمن الحقوق الفكرية لشركة In|Framez Technology Corp.، ومرخصة للعرض فقط ضمن الشبكة العربية لمطوري الألعاب مع الموافقة الصريحة من المؤلف وشركة In|Framez Technology Corp.. لا يسمح بإعادة نشر هذه المقالة أو تعديلها دون الرجوع للمؤلف. يمنع النسخ والاقتباس دون ذكر المصدر والموافقة من المؤلف.

حظك اليوم

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


ولماذا لا نتحدث عن الأبراج؟ ماذا ينقصنا عن بقية المشعوذين والدجالين؟ هم لديهم طرقهم الخاصة لاستدعاء الجان والشياطين، ونحن لدينا طرقنا الخاصة لاستدعاء إجراءات تجعل المستخدمين يتحولون من الغضب إلى شياطين!... هم يتصلون بحبنقر وشمفير ليعرفوا آخر الأخبار عن زبائنهم، ونحن نتصل بالإنترنت وَ MSDN لمعرفة كل شاردة وواردة في عالمنا... ولعمري أن اسم MSDN أشد رهبة من أسماء الشياطين مجتمعة، لما فيه من معانٍ كثيرة... جزء الـ MS وحده يحمل من الاحتكار والسيطرة والتحكم ما يجعل إبليس يبدو طفلاً أمامه، فما بالك بالـ DN ؟ هم ليسوا أفضل منا، لذا لا أرى مانعاً من ممارسة القليل من التنجيم اليوم... تنجيم بريء هو... يقولون أن هناك كذباً أبيض وآخر أسود... لا أدري إن كان يمكننا القول أننا سنمارس التنجيم الأبيض هنا، ولكن لا يهم... المهم أن تقرأ طالعك، وتتعظ مما سيقال لك... وإذا لم يعجبك الكلام، فلك الحق بترك كل هذا الهراء وشأنه، ولن يعترض أحد على ذلك، لأنه قد "كذب المنجمون ولو صدقوا"! أرجو أن يتمتع القراء بحسٍّ زائد من الفضول، يدفعهم إلى الاطلاع على أبراج غيرهم، كي لا تغيب عنهم المجموعة الأكبر من النصائح... أغلب زوارنا اليوم هم من المبرمجين الفاشلين، أو الذين يحاولون أن يكونوا كذلك (وسيتحقق لهم الفشل عما قريب)... لذا ستتركز نبوءاتنا في ذكر ما سيقعون فيه، وكيف يتفادون ذلك... هل بقي شيء آخر يقال قبل أن نبدأ؟ لحظة واحدة كي ألبس الرداء الأسود، وأشعل البخور... مِن أجل المصداقية ليس إلا... هكذا... والآن، التفوا من حولي ولنبدأ...


♈ الحمل

حماسك الشديد يدفعك إلى البدء بكتابة code البرنامج مع أنك لا تعلم ما هو البرنامج أصلاً! حاول توجيه حماسك هذا إلى جهد تبذله مع من هو مسؤول عن تحديد مواصفات البرنامج من أجل إتمامها قدر الإمكان. لا تبدأ حتى بكتابة سطر واحد قبل أن تكون جميع المواصفات الممكنة بين يديك، عندها... أيضاً لا تكتب شيئاً! جمِّع المواصفات في مكان واحد، حللها، قسِّمها، ثم طوِّر إطار عمل (Framework) يضمن لك قدرته على استيعاب المواصفات المطلوبة... عليك أن ترفض العمل في ظل المتطلبات الناقصة، لأن هذا أشبه بالعمَّايات التي يضعونها للأحصنة كي لا تزيغ بنظرها على غيرها، في حين أنت الآن بأمسّ الحاجة إلى النظرة العامة والشاملة، والتي ستريحك مستقبلاً من عناء تغيير الـ code من جذوره من أجل إضافة مزايا جديدة. هذه التغييرات خطرة لأنها غير مأخوذة في الحسبان من الأساس، وبالتالي فإن تطبيقها قد يتضارب مع البنية السابقة للـ code، وفي أحسن الأحوال فإن الـ code الجديد سيَظهر كاللزقة التي لا علاقة لها بالـ code الأساسي...

  • عدد بتات الحظ: 32 بت
  • برنامج السعد: Microsoft Visio

♉ الثور

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

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

  • عدد بتات الحظ: 128 بت
  • برنامج السعد: Corel DRAW! (ليساعدك في رسم أهدافك)!

♊ ��لجوزاء

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

  • عدد بتات الحظ: 64 بت
  • برنامج السعد: Microsoft Visual SourceSafe

♋ السرطان

تُحس بتأنيب ضمير من النوع الممتاز جرَّاء فشلك في مشروعك البرمجي الأخير... تتساءل (مِن فِعل "سَأَلَ" وليس "سآلة") بِحَيْرَة عن السبب الذي أدى لهذا الفشل الذريع... يمكنك استنتاج الإجابة من شفاه باقي أفراد الفريق، فَهُم يتهمونك بسوء تنظيمك للمهمات وعدم معالجة المشاكل بطريقة سليمة... لكن لا تحزن، فهذه ليست نهاية العالم! هناك الكثير من الفاشلين قبلك (وما أكثرهم)! المهم أن تتعلم من أخطاءك، وأن تعيد النظر في طريقة تنظيمك للعمل... وزِّع المهام بشكل متجانس، وحدد نقاط تسليم مرحلية (Milestones) تساعدك في ضبط أي قصور ومعالجته بأقل الخسائر الممكنة... واجه مشاكل فريقك وحلها مبكراً بدلاً من تجاهلها وتركها تتضخم... ركز أكثر على تسلسل المهمات وترتيبها المنطقي ضمن خطة عمل المشروع... حدد المخاطر (Risks) التي يمكن أن تقع فيها أثناء التنفيذ، وأوجد لها خططاً بديلة تنقذ الموقف... ولا تحزن على خفض مرتبك، إذ سيتحسن ثانية إذا سرت على المنهج الصحيح، وهو بكل الأحوال أفضل من البقاء بلا عمل!

  • عدد بتات الحظ: 4 بت!
  • برنامج السعد: لعبة Counter-Strike على الشبكة مع فريقك، تحقق فيها انتقامك منهم!

♌ الأسد

أنت مطالب بتنفيذ المشروع الجديد الذي استَـلَمَـتْهُ شركتك مؤخراً... هذا كلام جميل، أين المشكلة إذن؟ المشكلة أن تنفيذ المشروع يحتاج إلى استخدام تقنيات لا عِلْمَ لك بها...

يطلب المدير مقابلتك، ويسألك عن إمكانية تنفيذ هذا المشروع... ترتَبِكْ... تتلعثم... لكنك لا تجرؤ على إعطاء إجابة سلبية، لأن في هذا خراب بيتك... وتعود إلى مكتبك، وتبدأ البحث المحموم في كل ما يقع بين يديك من مصادر معلومات... وبعد بحث قصير، تجد ضالتك... لكن انتظر! الأمر لم ينتهي بعد! لا تتسرع باعتماد ما وجدته هذا لعملك... بدلاً من ذلك، احتفظ به جانباً وسجل مزاياه، ثم تابع البحث... ستجد أن هناك أكثر من حل للمشكلة نفسها، كلٌّ له مزاياه وعيوبه... قم بعمل مقارنة بين الحلول التي وجدتها وأعطِ كل منها درجة "نجاح" اعتماداً على توافق الحل مع متطلباتك وبساطة تطبيقه، ثم اعتمد أعلاها درجة وتوكل على الله! بهذا تكون قد تفاديت الوقوع في شراك حل قد يعذبك في تنفيذه، وبالمقابل لا يعطيك كل ما تريد... ابقَ دائماً على اتصال مع آخر التقنيات التي تقع ضمن مجال اختصاصك، وقيِّمها بالنسبة لمنافساتها...

  • عدد بتات الحظ: 16 بت
  • برنامج السعد: Microsoft Internet Explorer

♍ العذراء

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

إن من ينظر إلى برنامجك الآن، لا يصدق أن وراء هذه الواجهات الغبية، يقبع code نظيف وخالٍ من الأخطاء... بل وغالباً سيقوم الزبون بإعادة منتجك إلى البائع حالما يرى منظر برنامج التنصيب (Installer) المبهدل الذي وضعتَه في برنامجك على عجلة من أمرك... إن المنظر النهائي يعطي انطباعاً كبيراً لدى الزبون عن محتويات البرنامج... كما أن الواجهات سهلة الاستخدام تزيد من متعة وارتباط المستخدم ببرنامجك... ابتعد عن إظهار مصطلحات معقدة، وتفادى الترجمة العربية الحرفية، واستبدلها بكلمات مفهومية تُعِين المستخدم على استيعاب العملية بيُسْر وسلاسة... ولا تنسَ طبعاً تأمين كتيِّب مُساعِد (أو ما يقوم مقامه) يوجِّه المستخدم للطريقة المثلى لاستعمال البرنامج، مكتوب بلغة سهلة وواضحة...

  • عدد بتات الحظ: 32 بت
  • برنامج السعد: نظام MacOS X

♎ الميزان

هدفك الرئيسي هو إنتاج ذلك البرنامج الذي لم يصل إليه أحد من قبل! هدف رائع... وتبدأ أنت وفريقك بالعمل بشكل جاد لإتقان جميع جوانب المشروع بدون ترك ثغرة واحدة تنفذ منها جملة انتقاد صغيرة... تتطلع بأمل للحصول على خمس نجمات في تقييم PC Magazine لمنتجك، وأنت واثق من أنك تستطيع تحقيق ذلك... فتعمل... وتعمل... وتعمل... دون أن تلفت نظرك لحظة إلى التقويم المعلق على حائط غرفة مكتبك... وفجأة، تنقطع عنك الإمدادات المادية. وتتساءل (مِن فِعل "سَأَلَ" وليس "سآلة") عن سبب انقطاع التمويل، ليأتيك الجواب قاسياً:

"لقد تأخرت كثيراً يا بُنَيّ"... وهنا تنظر إلى التقويم في غرفة مديرك (لأن التقويم في غرفتك من العام الماضي!) لتجد أنك قد خرجت عن الوقت المحدد لك بأربعة أشهر مرة واحدة...

المشكلة أن البرنامج يجب تحسينه، ويجب التحقق من كون البرنامج مُصَمَّم للتعامل مع جميع المدخلات بشكل سليم حتى الخاطئة منها... الخ الخ...

لا تنسَ الوقت! إن أحد مهام مطوِّر الحلول هي تحديد الوقت اللازم بشكل مُقارِب جداً للواقع، مع تحديد ما يُدعى بالمخاطر (Risks) التي يمكن أن تعرقل المشروع، مع اقتراح طرق لحلها وتفاديها...

  • عدد بتات الحظ: 8 بت
  • برنامج السعد: Microsoft Project

♏ العقرب

يتعاطف العقرب في هذه الدورة مع الأسد. فهو يواجه موقفاً مماثلاً لذاك الأخير، لكنه يتعامل معه بأسلوب مختلف، إذ أنه لا يُتعِب نفسه بالبحث أبداً، إنما هو يؤمن بشدة بمبدأ "افعله بنفسك" (Do it Yourself). وإذا وَجَدَ ما يريده جاهزاً، فإنه ينظر إليه نظرة ازدراء، ويقول: "هِع! مستحيل أن يكون أفضل من الذي بنيته أنا"... وهكذا نلاحظ أن العقرب من هواة إعادة اختراع العجلة في كل مرة، مما يسبب ازدياداً ملحوظاً في زمن المشروع، مع أنه غالباً يمكن اختصاره لأقل مما هو عليه بكثير. وطبعاً، المزيد من الوقت = المزيد من التكلفة = ... إلى نهاية المتوالية المعروفة... إذن، الاطِّلاع على ما قد تمَّ إنجازه والاستفادة منه هو المفتاح هنا، مع القليل من مرونة الرأي...

  • عدد بتات الحظ: 16 بت
  • برنامج السعد: نظام MS-DOS!

♐ القوس

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

والسبب؟ لو استمع قليلاً إلى ما يقوله الزبائن، لسمعهم يصيحون: "يا عالم! والله اكتفينا برامج محاسبة! عندي برامج أطفال حتى يوم الدين! ياخي مش لازمني برنامج مواعيد صلاااااة!"...

إذن الموضوع ليس مجرد "ما السائد هذه الأيام؟ كذا؟ إذن فلننافسهم!". بالعكس، لو نتأمل قليلاً بالمبدأ هذا لوجدنا أنه يعبِّر عن ضيق عين وقلة خير من النوع الممتاز! لأن دخولك بهذه العقلية في مشروع سبقك إليه غيرك غالباً سيعود عليك بالفشل، بل وسيقلل من أرباح منافسك المسكين... بدلاً من كل هذا التخلُّف، قم بتحليل السوق، واستنتج هدفاً فريداً تراه يخدم الزبائن بشكل يجعل الطلب على منتجك مُلِحَّاً... لا تتوقع من الزبائن أن يعلموا ما يريدون دائماً، فكثيراً ما يفاجؤون بمنتج جديد، فإن اكتشفوا أنه مفيد، يبدأ التفاعل المتسلسل...

  • عدد بتات الحظ: 2 بت!
  • برنامج السعد: Nullsoft Winamp!

♑ الجدي

يتميز الجدي بأنه يقود فريقاً من المبرمجين الذين لا يكفُّون عن التساؤل (مِن "سآلة" وليس "سَأَلَ") عليه. يتميز الـ code الذي ينتجه هؤلاء المبرمجين بدرجة عالية من التعاسة وسوء التنظيم... تحت كل ضغطة زر في البرنامج يقبع خطأ Access Violation، أو تسريب ذاكرة (Memory Leak) في أحسن الأحوال... تأتي هذه المصائب بسبب قلة تمرس هؤلاء المبرمجين في اختصاصهم... وهنا يجب أن لا يسكت الجدي عن الموضوع وإلا تحمل مسؤولية فشل المشروع... يجب أن يتم إخطار مسؤول المشروع عن الوضع، وهو سيقرر إن كان استبدالهم أفضل، أم دفع المزيد من الوقت في تأهيلهم ليصبحوا في المستوى المطلوب... البرامج المعطوبة تثير غضب المستخدمين وتفقدهم الثقة بالشركة المنتجة، مما يؤثر على بقية منتجاتها أيضاً...

  • عدد بتات الحظ: 0 بت!
  • برنامج السعد: Hello World!

♒ الدلو

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

  • عدد بتات الحظ: 64 بت
  • برنامج السعد: WinZip!

♓ الحوت

يتعاطف الحوت مع الدلو في هذه الدورة... يواجه الحوت موقفاً مشابهاً للدلو (كل طلقة براحة)، لكنه بدلاً من أن يتم مصارحته بكل تغيير كل فترة، فإنه يجلس في بداية المشروع مع المدير ليقرأ عليه هذا الأخير قائمة بالمزايا والمتطلبات اللازمة في هذا البرنامج... يفرد المدير لفافة سجل عليها الطلبات، فتصل اللفافة حتى باب المكتب من طولها! ويبدأ في سرد المزايا: "إمكانية الرسم 2D، إمكانية الرسم 3D، مونتاج مقاطع أفلام، ضغط ملفات، تشغيل ملفات أصوات، إدارة سجلات الموظفين، حساب متوسط عمر الفيل...الخ" ويستمر الحال هكذا لمدة ساعة كاملة! الفكرة ليست بأن تنفيذ هذه الأ��ور مستحيل، لكن تخيل شكل البرنامج الذي سيقوم بكل هذه المهام بنفس الوقت! يجب على الحوت تفادي استلام مثل هذه المشاريع الخيالية، أو تقسيمها إلى مشاريع منفصلة تماماً إن أمكن، بحيث يمكن التعامل معها بشكل منطقي وضمن حدود زمنية معقولة...

  • عدد بتات الحظ: 32 بت
  • برنامج السعد: FDisk!

هفففف... لم أعلم أن التنجيم شاق إلى هذا الحد... إذن فالمنجمين يستحقون ما يُدفع لهم نوعاً ما...

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

هيا إذن... عن إذنكم... إلى اللقاء... ما هذا؟ لا شكراً... الجلسة اليوم مجانية... لا نقود... ربما في المرة القادمة... لحينها إذن... سلام!

المراجع

  • Desktop Applications with Microsoft Visual C++ 6.0: MCSD Training Kit
  • جريدة تشرين اليومية – العدد (8748) – صفحة المنوعات – الأبراج (لأنني لا أحفظها)

التعليقات (1) -

  • Perfect

    12/05/2016 08:01:07 م | الرد

    مقاله جميلة جدا أستفدت منها كثيرا ، شكرا من القلب

أضف تعليقاً

Loading