بسم الله الرحمن الرحيم

ملاحظة : المقال موجه بشكل أساسي للمبرمج، لكنه عام للفائدة.

ما الذي يميز أفكارنا ؟ إنه الإختلاف. وعلى إختلاف الأفكار تعددت الطرق والمسارات لإيجاد الحلول لأية معضلة. لكن السؤال المطروح هو :هل من المهم تحديد الطرق المثلى للوصول إلى حل لمشكلة معينة؟

عموما تتحكم عوامل كثيرة في تحديد الطرق الممكنة لإيجاد حلول لمعضلة ما. إلا أنه يوجد دائما أكثر من طريقة لإيجاد الحل كحقيقة ثابتة لا ينكرها العاقل. لكن هل من الضروري البحث عن الطريقة الأمثل ؟، منطقيا ما دامت الطريقة قد حلت المشكلة فإنها مقبولة، ولكن عمليا وتمثيلا لأرض الواقع فإنه ما من طريقة إلا ولها عوائق ومخلفات وناذراً ما نجد حلا مثاليا.

مثلا الشركات الصناعية : تصادفها مشاكل تتعلق بجودة المنتوج في الكثير من الأحيان، ومن أهم العوائق التي تجد حلا لها هي الموارد ( المواد الأولية) ومن الأخطار التي قد تهدد الشركة التكدس (نتيجة ضعف الطلب) ، لهذا فإن معظم الشركات تلجأ لإتخاذ عددا من الطرق للوصول إلى الحل الأمثل، الحل الأمثل للشركة هو إنتاج منتوجها بأعلى جودة ممكنة وترويج لمنتوجها في أوسع منطقة ممكنة وبأكثر الوسائل الممكنة، ولكن بالأكيد هذا الحل يبقى مثاليا، وله الكثير من العوائق أهمها رأس مال الشركة، جودة أعلى = تكلفة أكثر + إقبال أكثر، ترويج أكثر = تكلفة أكثر + نقاط بيع أكثر + إقبال أكثر.

بعيدا عن أمور الشركة وحساباتها لنأخذ نموذجا مرّ منه غالبيتنا في المدرسة الإبتدائية وهي حل المسائل الرياضية (الرياضيات)، إيجاد حل للمسألة عادة كان يتخذ مسارا معينا، ولكن إن عدت اليوم إليه هل ستعيده هو نفسه أم لديك آلية أكثر سرعة وأقل تفكيرا لإيجاد الحل؟ إن كنت أكملت دراستك فأنا واثق أنك اليوم لديك طرق مختلفة أسرع لحل تلك المسألة.

من هذين المثالين يمكننا فهم ضرورة البحث عن الطرق المثلى لحل المشكل.

فالطرق المثلى يجب أن تمتاز بتوفير الجهد والوقت وأن تقدم نتائج أكثر إيجابية وبدون تأثيرات غير مرغوب فيها.

بالنسبة للمبرمجين إيجاد الطرق المثلى في بناء برامجهم هو أمر حتمي ولبد منه. ولكن كيف أعرف أنني أتخذ الطريقة الأمثل؟

عمليا ما دام برنامجك يؤدي وظيفته فهو برنامج جاري به العمل.

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

ما هي الطرق التي ستجعل المستخدم أو المستعمل لبرنامجك يرضى عليه ؟

  • أولا : وقبل اي شيء الأداء و السرعة هما العاملان المهمان عند المستخدم، ما لم يؤدي البرنامج وظيفته بالشكل التام فإنه غير صالح، وإن كان يؤديها بشكل بطيء فإنه برنامج مزعج.

  • ثانيا : الحجم والتجاوب مع المستخدم، يركز المستخدم أيضا على الحجم لأنه ضروري فكلما كان حجم البرنامج أكبر كلما كان أقل إقبالا عليه. وأيضا ذكاء البرنامج فكلما كان البرنامج قادرا على تحليل المعلومات التي يقدمها المستخدم بالشكل الذي يريده والتجاوب معها بالشكل الذي يحبذه كان الرضى أكثر.

  • ثالثا : الشكل والمظهر : لبد من تناسق محتويات البرنامج، بحيث تكون الواجهة مريحة لعين المستخدم وقدرته على التحكم بالمحتويات عالي وذو تأثير إيجابي.

  • الأمن والحماية : حماية المعلومات التي يدخلها المستخدم لإستعمالها في البرنامج هو أمر واجب وضروري، وإلا فإن البرنامج يفقد مصداقيته. أيضا الأمن من محاولة إستعمال البرنامج للقيام بالأمور غير المرغوب بها بأجهزة المستخدم هو أيضا أمر غير مقبول به لذا ضرورة توفير الأمن هو أمر واجب القيام به.

  • المردودية والإتزان : ينال البرنامج رضى المستخدم إذا كان لا يستنزف عتاد أجهزته، لذلك يتوجب محاولة إبتكار أكواد تكون أقل إستهلاك للذاكرة ولعتاد الحاسوب، وبالتالي تقليل إستهلاك الطاقة، وفي نفس الوقت كلما كانت إستخدامات البرنامج أكثر، كلما زادت مردوديته.

  • الإمتياز والمواكبة : كلما كان برنامجك له ميزات أكثر كلما رغب المستخدمون في إستعماله، لذلك يتوجب تحديث البرنامج لإضافة ميزات جديدة وأيضا للتخلص من اي أخطاء قد وجدت في نسخ سابقة، وأو إيجاد طرق أكثر إنتاجية وتغير أسس الأمن وغيرها من الأمور التي تبقي برنامجك مواكبا لمن يريده المستخدم.

هذه هي أهم الأمور التي ينتبه لها أي شخص سيستخدم برنامجك والتي عليك الإهتمام لها أثناء الإنشاء. ولكن ضرورة أن تدرس سلوك المستخدمين هو أمر لبد منه أيضا.

ولكن هناك أمور يجهلها المستخدم ويعلمها المبرمج فقط وهو كيف سيتمكن من توفير كل هذه الأمور له؟

فمن أهم العوائق التي تصادف المبرمج أثناء إنشائه لبرنامج هي :

  • اللغة البرمجية الأمثل : ما هي اللغة البرمجية الصالحة؟ وهل أنا أتقن هذه اللغة ؟

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

  • بيئة العمل : إختيار بيئة عمل مناسبة هو من مسؤولية المبرمج والتي ستمكنه من توفير الوقت وستقدم له الكثير من الأمور التي يحتاج إليها لتسهيل برنامجه وتحسينه

  • التصميم والواجهة : واجهة منظمة، ألوان متناسقة، سهولة الوصول والتحكم في محتويات الواجهة، والمؤثرات الصوتية والمرئية، كلها يجب أن يتم بناء ترابط لها يرضي المستخدم ولزوم التحكم فيها بالشكل القياسي

  • الأمان والحماية من الإختراق والتلاعب : يجب أن يركز المبرمج على هذه الخطوة أكثر من اي خطوة أخرى، بحيث عليه إبتكار نظما تحمي برنامجه وتحمي في نفس الوقت محتويات المستخدمين من التخريب أو السرقة ...

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

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

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