وصلتني رسالة من أحد زوار المدونة (الأخ أنس) والتي أقتبس منها:
(أعمل في مكتبة في مجال بيع الكتب والقرطاسية وألعاب الأطفال، قمت منذ فترة قصيرة بقراءة الكتاب الإلكتروني للسيد رؤوف شبايك وهو بعنوان (25 قصة نجاح الباقة الثانية) وقد استوقفتني القصة التاسعة عشرة عن (بوب وليامسون) بعنوان (من بيع الدهانات إلى التطبيقات)؛ فحرّكت عندي أفكارا قديمة لدخول عالم إيجاد وتطوير التطبيقات والذي ابتعدت عنه لعدم إلمامي بلغات البرمجة. الآن رجعت الأفكار مجددا بعد التفكير بمحاولة الاستعانة بالمتخصصين في هذا المجال؛ تخطر على بالي أفكار مشاريع تجارية ولديّ بعض الأسئلة).
قام بعد ذلك بسرد مجموعة من الأسئلة والتي تحتاج إلى أجوبة منّي، فقمت بالرد عليه بأنّ الإجابة عن هذه الأسئلة تتطلّب الإسهاب، لذا إن أراد الإجابة عليها فسيكون ذلك عبر تدوينة ليستفيد منها الجميع، وكذلك الحال لنستفيد من إضافة الزوار والتي سوف تضيف المزيد من الفائدة على الموضوع ويستفيد بشكل أكبر؛ فقام بالردّ عليّ بالموافقة على الفور وهذه الأسئلة أرى فعلا أنّها أسئلة تضمّ أكثر الأسئلة التي تَرِدُ على بال غير المختصين بالبرمجة ومَن يودّ الدخول في هذا العالم.
قبل أن أسرد هذه الأسئلة ربما خطر في بالكم سؤال لماذا شخص غير متخصص بالتقنية يودّ الدخول في هذا المجال؟ قبل أن أجيب أودّ أن أسرد معلومتين بسيطتين عايشتهما، وفي الوقت نفسه قرأت عنهما ولكنّي لم أعد أذكر أين حتى أضع الروابط الخاصة بذلك.
المعلومة الأولى:
تخرّج من دفعتي أكثر من 40 شخصا في تخصص البرمجة لم يعمل منهم في البرمجة الفعلية إلا خمسة على حدّ علمي، والباقي عمل في مجالات إمّا مختلفة كليا أو في مجال تقنية المعلومات ولكن ليس في البرمجة.
الدراسة التي لم أعد أذكر أين قرأتها تقول بأنّ أكثر من (80%) من الطلاب الجدد في مجال تقنية المعلومات لا يعملون بهذا التخصص؛ بل إنّ أكثرهم يغيّر التخصص منذ العام الأول وذلك لأنّ البرمجة تحتاج إلى تفكير منطقي لا يملكه الكثير من الناس.
المعلومة الثانية:
أكثر مَن عاصرتهم مِمَّن قاموا ببناء برامج متخصصة في الأعمال كانوا غير متخصصين أبدا بالتقنية؛ بل هم دخلاء عليها وأغلب من عرفتهم كانوا إمّا متخصصين في المحاسبة أو في الرياضيات.
وكما تعلمون أيضا أنّ (بيل جيتس) و(ستيف جوبز) لم ينهوا دراساتهم الجامعية في تخصص الكمبيوتر ونحن نعيش في ظلّ إبداعاتهم التقنية كل يوم.
وكما تعلمون أيضا أنّ (بيل جيتس) و(ستيف جوبز) لم ينهوا دراساتهم الجامعية في تخصص الكمبيوتر ونحن نعيش في ظلّ إبداعاتهم التقنية كل يوم.
وبالتالي ليس التخصص هو الأساس للدخول في عالم البرمجة ولكن العقل المنطقي أساسٌ للعمل بها، وكذلك لا ننسى بأنّ الحاجة أمّ الاختراع، فمن الممكن أن تجد شراكة ما بين طبيب ومبرمج مثلا لبناء برنامج طبي وبهذا تتكامل الخبرات.
بالعودة لأسئلة أخينا أنس الذي كان سببا في هذه التدوينة:
1- كيف أعرف ما هي لغة البرمجة المطلوبة لكل فكرة؟
لو قسّمنا التطبيقات إلى مجموعات لوجدنا أنّ هناك تطبيقات (لسطح المكتب) وتطبيقات (للويب) وتطبيقات (للأجهزة الذكية)، وبهذا ربما نسهّل على أنفسنا اختيار لغة البرمجة المطلوبة.
مثلا، لبناء تطبيق لسطح المكتب فإنّنا سنحدّد مدى هذا التطبيق وفترة حياته وما هي الخدمة التي سيقدّمها والتي عادة ما تكون مثلا في مجال الأعمال وتعتمد على قواعد البيانات، لذا يمكن التخصيص أكثر في توافقية البرنامج مع نظم التشغيل؛ ففي حال كان موجّهاً لمنصة (ويندوز) فيمكن العمل تحت (Visual Studio .NET) بلغة البرمجة مثل (VB.NET) أو (C#)، أما في حال أردنا أن يدعم التطبيق عدة منصات مثل (Linux) بالإضافة إلى (Windows) فيمكن بناؤه بواسطة (C++) أو (Java).
مع العلم أنّ أغلب تطبيقات الأعمال بدأت تتجه وتعتمد على منصة ويب (Web Based) لكي تعمل من خلال المتصفح دون ارتباط بما لدى العميل من نظام تشغيل وهنا يمكن اعتماد لغة البرمجة بناءً على نوع السيرفر المضيف، فلو اعتمدنا على ويندوز فيمكن العمل بواسطة (ASP) أو (ASP.NET)، ولو أردنا أن ندعم باقي المنصات فيمكن العمل على (PHP) مثلا.
هناك تطبيقات غير موجّهة للأعمال ولكن بدأ الجميع بالتوجّه إلى الحوسبة السحابية والعمل على منصة ويب حتى في بناء تطبيقات الألعاب ولكن ما زالت هناك تطبيقات لا بدّ أن تعمل على سطح المكتب مباشرة مثل تطبيقات التحكّم الصناعي مثلا.
في النهاية، بالنسبة لتطبيقات الأجهزة الذكية ففي كلّ الأجهزة يمكن بناء التطبيقات للعمل على منصة ويب كامتداد أو يمكن بناء تطبيق متخصص بناءً على نوعية نظام التشغيل، ولكن بشكل عام يمكن اعتماد لغتي (Java) و (C) اللتين تعملان على كلّ المنصات تقريبا.
2- كيف أصل إلى مبرمجين لهذه اللغة المطلوبة؟
بعد تحديد لغة البرمجة المناسبة لفكرة التطبيق والذي لا بدّ من تحديد مداه وفترة حياته يمكن البحث عن المطورين، إما بالطرق التقليدية عبر الإعلان في وسائل الإعلام أو بالطرق الحديثة بالبحث عن طريق مواقع العمل التي ذكرتها في تدوينة سابقة عن العمل الحر.
3- هل أبحث عن مبرمج متوسط أم محترف؟
أرى دائما أن تستشير مبرمجا محترفا أو محلّل نظم أو (CTO) أو متخصص تقنية في البداية وذلك لوضع تصور التطبيق وهيكليته والذي سيساعدك في التفكير في التطبيق في المستقبل وليس الآن، ومن بعدها يمكنك العمل مع مطور متوسط لبناء التطبيق خصوصا إن كان دوره فقط ككاتب كود (Coder) والذي يقوم ببناء الوظائف المحددة مسبقا للنظام ولا تترك له بناء النظام بشكل كامل، وهذا ما أفعله عند التعامل مع (Freelance) فأنا أقوم بوضع تصور للتطبيق وتحليله وما هي الوظائف الأساسية للتطبيق، بالإضافة إلى تصور لشاشات التطبيق ومن ثمّ يكون عليه سوى ترجمة ما كتبت إلى كود، ودائما ضع في اعتبارك بما أنّك في البدايات فإنّك تتعلم من هذا المطور وليس بالضروري أن تكون تلك النسخة النهائية من التطبيق ويمكن اعتبارها كنموذج أولي يعلّمك لغة التخاطب بينك وبين أيّ مطور محترف في المستقبل.
4- هل أقوم بتوظيف المبرمج أم التعاقد معه؟
لقد قمت سابقا بالردّ على ذلك بشكل غير مباشر في كتابي (العمل الحر) ولكن أعود وأحدّد أنّ لكل عمل نوعية تحددها نوعيته، وأفضّل دائما التعاقد مع المبرمجين على أن أوظفهم في حال لم يكن من يديره متخصصا أو كنت في مرحلة بناء (MVP)، فمن طباع المبرمجين المحترفين ومن يعمل بوظائف إبداعية سرعة الملل، لذا فإنّ الوظيفة والروتين قد تعطل قدراته وتحدّ من إبداعاته ولكن التعامل معهم بالتعاقد أو بالقطعة ربما يشعره بنوع من التحدي لإنهاء العمل. ولا تنسَ أنّ في ذلك مخاطرة في حال لم تكن تعرف ما الذي يقوم به، ففي حال عدم توفره فمن الممكن أن يؤخر ذلك عملك لأنّ الحصول على مطور جديد ويفهم ما عمل عليه سابقه يتطلب الوقت، لذا يمكن اعتماد أساسيات التطوير أو الاعتماد على (Framework) مع المزيد من التوثيق للكود (Documentation) يساعد في إمكانية العمل مع عدة مطورين والاستمرار.
5- كيف يمكنني أن أحمي الفكرة من السرقة؟
لا يوجد ما يسمى حماية مطلقة أبدا ولكن هناك تقليل فرص سرقتها، ولو فرّقنا بين الفكرة كفكرة والعمل النهائي فإنّ الفكرة لا يمكن حمايتها عبر قوانين حماية حقوق الملكية وتسجيل براءات الاختراع؛ بل يمكن أن تستفيد من السبق في نشرها بشكل يجعل المنافسين متأخرين في تنفيذها. أمّا العمل النهائي أو المنتج فدائما هناك خدمات مرافقة لهذا المنتج الذي لا يمكن تنفيذها عادة إلا عبر مطوّرها؛ لذا يمكن الاعتماد عليها أكثر حتى لو تمّ فك حماية التطبيق وانتشر.
6- ما هي خطوات تحويل مثل هذه الفكرة إلى مشروع تجاري؟
الخطوات تبدأ من البحث في جدوى الفكرة وحاجة السوق إليها، لذلك فإنّ طرقا كثيرة مثل البحث وسؤال المهتمين ومن ثمّ تنفيذها وتوزيعها وأخذ التغذية الراجعة واقتراحات الزبائن، ولا ننسى بأنّه ليس هناك ما هو كامل والكثير من أصحاب البرامج العملاقة يشكرون زبائنهم لأنّهم تحمّلوهم في بداية حياة التطبيق وساعدوهم على تطوير الفكرة وجعلها مناسبة للجميع.
7- ما هي المعوقات التي يمكن أن تواجهني؟
أول المعوقات هي عدم معرفة الشخص في التطوير وهنا لا بدّ من تعلّم الأساسيات أو توظيف خبرات متخصصة في هذا المجال، والاعتماد عليها لبنائه والتفرغ مثلا لعمليات التسويق والترويج وما يصاحب ذلك من أعمال، والتي في الغالب لا يحبّها المطورون ولا يستطيعون التعامل معها لأنّها تعتمد أساسا على التواصل والتفاوض وهو ما لا يجيده المطورون غير الاجتماعيين بطبعهم، كما أنّ العقل المنطقي الذي يصاحب المطور يجعله من الصعب تقبّل الأفكار والنظريات غير المنطقية، كما أنّ نقاشه يعتمد على أن (1+1 = 2) ولا يمكن غير ذلك.
8- ما هي النصائح التي يمكنكم أن تمدّوني بها للانطلاق بهكذا مشاريع ؟
قم بسرد كل الأفكار التي لديك ومن ثمّ ضعها في جدول تبيّن فيه مدى احتياج السوق إليها وجدواها الاقتصادية، ومدى إمكانية تطبيقها ومن ثمّ استبعاد أقلّها أو تغيير أولويتها، ومن ثمّ العمل على فكرة واحدة وتجربتها حتى النهاية للخروج بخبرة تساعدك في تطبيق الفكرة الثانية وهكذا.
لا تخفْ على الفكرة، وشارك وناقش أفكارك مع مَن هم حولك مِمَّن تعتقد أنّهم مستفيدون من المشروع، فصدّقني سوف يكونون خير معين ومستشار لك في تحسين الفكرة أو تغييرها أو حتى إلغائها قبل استثمار الكثير من المال والوقت والجهد فيها.
في الختام، لا بدّ أن أضيف بأنّ العمل ليس بالفكرة كما يعتقد الكثيرون؛ فالأفكار على قارعة الطريق ولكن العبرة بالتنفيذ أولاً، وثانياً بجدوى الفكرة اقتصاديا لتعتبر ناجحة ولا ننسى بأنّ أكثر الأفكار نجاحا هي تلك التي نبعت من حاجة صاحبها إليها فقام بتنفيذها.
في النهاية، أنصح الجميع بتحميل كتاب العمل الحر والذي ستجدون فيه الكثير من المواضيع المتفرقة التي قد تفيدكم في هذا العالم (كتاب العمل الحر).