أهلاً بكم في ثاني مقال في سلسلة مقالات “كيف تعمل كمبرمج على منصات العمل الحر”. في مقال اليوم، سأوضح لكم الأمور التي تحتاجون إلى تجهيزها وفهمها لكي تبدأوا رحلتكم في مواقع العمل الحر. أدعو كل من يقرأ هذا المقال أن يتجاوز المخاوف التي يتحدث عنها الناس بشأن مواقع العمل الحر، وأن يبدأ معنا اليوم ليستفيد من التسلسل الذي نتبعه في هذه السلسلة. ستجدون أن الأمر سهل وبسيط.
سواء كنت طالبًا في كلية، أو خريجًا، أو حتى تعمل في شركة برمجيات، وسواء كنت مبرمجًا مبتدئًا، أو متوسط الخبرة، أو لديك خبرة متقدمة، فإن هذا المقال سيعلمك كيف تعمل كمستقل وتؤهل نفسك لاتخاذ الخطوة الأولى.
الأساسيات المطلوبة قبل البدء
لنبدأ معًا بالأمور الأساسية التي تحتاج إلى معرفتها لتبدأ في مجال البرمجة. كما ذكرت سابقًا، في بدايتك تحتاج إلى دراسة أساسيات معينة ثم تختار تخصصًا محددًا. من المفترض أنك قبل قراءة هذا المقال قد اخترت مسارًا معينًا في البرمجة وبدأت في تنفيذ مشاريع فيه.
مصادر الحصول على المشاريع
يمكنك الحصول على مشاريع العمل الحر من خلال مصدرين رئيسيين:
- منصات العمل الحر: وهي المنصات المختلفة التي تحدثنا عنها في المقال السابق.
- المعارف الشخصية: قد يقوم معارفك أو أصدقاؤك أو أهلك بترشيحك لأشخاص يبحثون عن مبرمجين لتنفيذ برامج معينة لهم، سواء كان موقع ويب، أو تطبيق جوال، أو حتى نظام تخطيط موارد المؤسسات (ERP) أنت متخصص فيه.
الخطوات الأولى مع العميل
عندما يأتيك أول عميل، سواء عن طريق المعارف أو منصات العمل الحر، يجب أن تجلس معه وتنفذ الخطوة الأولى وهي تحليل النظم. كمحلل نظم، وظيفتك هي أخذ “مواصفات المتطلبات” (Requirement Specification) من العميل.
تدوين المتطلبات
من الضروري أن تُكتب هذه المواصفات كتابيًا، حتى لو كان العميل من طرف أحد معارفك. يمكنك استخدام محرر نصوص مثل Word وكتابة المتطلبات ثم تصديرها كملف PDF. مواصفات المتطلبات تعني أنك تستخرج المتطلبات التي يطلبها العميل لموقع الويب أو التطبيق الذي يريد إنشاءه لشركته أو لمشروع معين يهدف إلى تنظيمه.
فهم دورة حياة تطوير البرمجيات (SDLC)
الأمر الثاني الذي يجب أن تكون على دراية به هو “دورة حياة تطوير البرمجيات” (Software Development Life Cycle - SDLC). نعم، حتى لو كنت طالبًا أو خريجًا حديثًا، يجب أن تفهم هذه المفاهيم لأنها تمثل دورة بناء أي برنامج.
مراحل الـ SDLC تبدأ بعد أخذ مواصفات المتطلبات من العميل، وهي كالتالي:
- التخطيط (Planning): تخطط لمسار المشروع وكيف سيتم بناء هندسته (Architecture). فهم هذه الجزئية مهم جدًا لبناء هندسة برمجيات سليمة، خاصة إذا لم تكن قد عملت في شركة من قبل وتتدرب بنفسك من خلال مهام العمل الحر.
- التحليل والتصميم (Analysis and Design): في هذه المرحلة، تبدأ في تحديد المخططات التالية:
- مخطط علاقات الكيانات (ERD Diagram)
- مخطط التسلسل (Sequence Diagram)
- مخطط حالات الاستخدام (Use Case Diagram)
هذه المخططات تساعدك على فهم كيفية بناء البرنامج بناءً على المتطلبات.
- تصميم الواجهات (UI/UX Design): تبدأ في تصميم واجهات المشروع لتعرضها على العميل.
- البرمجة (Coding): تبدأ في كتابة الكود الفعلي للمشروع.
- الاختبار (Testing): تقوم باختبار المشروع للتأكد من خلوه من الأخطاء.
- النشر (Production): المرحلة الأخيرة هي نشر المشروع ليكون متاحًا للاستخدام.
- الصيانة (Maintenance): تتفق مع العميل على تفاصيل الصيانة، سواء كانت شهرية أو سنوية، أو لإضافة ميزات جديدة يرغب بها في المستقبل.
تقدير الميزانية والوقت
حساب الميزانية
بعد أن تأخذ المتطلبات من العميل وتحدد دورة حياة المشروع، يجب أن تتأنى في حساب الميزانية. إذا كان العميل قد أتى عن طريق معرفة، فمن الجيد أن تبحث في مواقع العمل الحر لتعرف متوسط تكلفة مثل هذه المهمة.
نقاط هامة عند تحديد الميزانية:
- التكاليف الإضافية: يجب أن تضع في اعتبارك ما إذا كان العميل سيحتاج إلى تعديلات مستقبلية.
- الدومين والاستضافة (Domain & Host): إذا كان المشروع موقع ويب، فأنت تشتري الدومين والاستضافة للعميل وتضيف تكلفتها إلى الميزانية الإجمالية. وكذلك الأمر بالنسبة لتطبيقات الجوال التي سيتم رفعها على المتاجر المختلفة.
- تكاليف الصيانة السنوية: يجب أن توضح للعميل منذ البداية أن هناك تكاليف تجديد سنوية للاستضافة، وأن هذه التكلفة منفصلة عن تكلفة التطوير الأساسية للمشروع.
تقدير الوقت (Estimated Time)
عليك أن تحسب متوسط الوقت الذي ستحتاجه لإنجاز المشروع.
- استعن بخبرتك: إذا كنت قد عملت على مشروع مشابه من قبل، فسيكون لديك فكرة عن الوقت المطلوب.
- ابحث أو اسأل: يمكنك البحث في منصات العمل الحر عن مشاريع مشابهة لترى المدة الزمنية المحددة لها، أو يمكنك سؤال مبرمج أقدم منك خبرة.
- أضف وقتًا إضافيًا: دائمًا أضف أسبوعًا أو عشرة أيام إلى تقديرك الزمني. هذا يمنحك هامشًا للاختبار والنشر، ولمواجهة أي مشاكل قد تظهر عند رفع المشروع على الاستضافة.
- وضح للعميل: أخبر العميل بالوقت المقدر، وأعلمه أن أي إضافات أو تعديلات مستقبلية ستتطلب وقتًا إضافيًا.
نظام الدفعات
من الضروري أن تأخذ مستحقاتك المالية على دفعات. هذا المبدأ يطبق على جميع العملاء.
- الدفعة الأولى (Deposit): مبلغ تأخذه قبل البدء في العمل.
- الدفعة الثانية: بعد تسليم أول نسخة قابلة للاختبار (Beta Version).
- الدفعة الثالثة: عند التسليم النهائي للمشروع بعد نشره.
تذكير: كن واضحًا منذ البداية بشأن تكاليف الدومين، الاستضافة، الصيانة، وأن أي تعديلات أو ميزات إضافية بعد التسليم سيكون لها تكلفتها الخاصة.
تجهيز ملفاتك التعريفية لجذب العملاء
العميل الذي يأتي عن طريق المعارف قد لا يحتاج إلى الاطلاع على الملفات التالية، ولكن من الأفضل أن تكون جاهزة لديك. أما بالنسبة لعملاء منصات العمل الحر، فهذه الملفات أساسية بنسبة 90%.
1. ملف LinkedIn
يجب أن يكون لديك ملف شخصي احترافي على LinkedIn. هذا الملف يعرّف العميل بهويتك.
- نبذة (About): اكتب وصفًا عنك وعن خبراتك.
- المميزة (Featured): أضف سيرتك الذاتية والشهادات التي حصلت عليها.
- الخبرة (Experience): اذكر خبراتك السابقة. إذا لم تكن لديك خبرة عمل رسمية، يمكنك أن تذكر أنك تعمل كمستقل على منصات مثل Upwork. هذا يعزز من فرص قبولك.
- التعليم والشهادات (Education & Certifications): أضف تعليمك والشهادات التي تحملها.
- المشاريع والمهارات (Projects & Skills): ارفع المشاريع التي عملت عليها واذكر مهاراتك (Front-end, Back-end, etc.).
2. حساب GitHub
من الضروري جدًا أن يكون لديك حساب على GitHub ترفع عليه مشاريعك. الشركات والعملاء التقنيون غالبًا ما يرغبون في رؤية الكود الخاص بك لتقييم جودته.
- مستودعات المشاريع (Repositories): ارفع مشاريعك على شكل مستودعات.
- ميزة GitHub Pages: إذا كنت تعمل كمطور واجهات أمامية (Front-end) وليس لديك استضافة لعرض أعمالك، يمكنك استخدام ميزة GitHub Pages. هذه الميزة تتيح لك إنشاء رابط حي لمشروعك مباشرة من المستودع.
- مثال: يمكنك إنشاء مشروع لموقع وكالة (Agency Website) باستخدام HTML, CSS, JavaScript, Bootstrap, و jQuery. بعد رفعه على GitHub، يمكنك من خلال الإعدادات (Settings) تفعيل Pages والحصول على رابط مثل
your-username.github.io/repository-name
. يمكنك إرسال هذا الرابط للعميل ليرى نسخة حية من عملك.
- مثال: يمكنك إنشاء مشروع لموقع وكالة (Agency Website) باستخدام HTML, CSS, JavaScript, Bootstrap, و jQuery. بعد رفعه على GitHub، يمكنك من خلال الإعدادات (Settings) تفعيل Pages والحصول على رابط مثل
- مشاريع الواجهات الخلفية (Back-end): يمكنك أيضًا رفع مشاريع الواجهات الخلفية، سواء كانت مبنية بـ Node.js, Angular, React, Laravel، أو أي تقنية أخرى. هذا يثبت فهمك لمفاهيم مثل SOLID Principles وهندسة البرمجيات.
3. معرض أعمال على Google Drive
إذا كنت مطور تطبيقات جوال ولم تنشر تطبيقاتك على متاجر مثل Google Play أو App Store، يمكنك إنشاء معرض أعمال بديل.
- التقط صور شاشة (Screenshots): خذ لقطات شاشة جميلة وواضحة من تطبيقاتك.
- ارفعها على Drive: قم بإنشاء مجلد على Google Drive وارفع الصور فيه.
- شارك الرابط: يمكنك مشاركة رابط المجلد مع العملاء كبورتفوليو لأعمالك. يمكنك تنظيم الصور لعرض واجهات مختلفة مثل الفواتير في نظام ERP، أو عمليات الدفع، أو عمليات الإضافة والتعديل والحذف (CRUD Operations).
خلاصة ونصائح أخيرة
المعلومات التي ذكرتها في هذا المقال مهمة جدًا وتحتاج إلى فهمها جيدًا. أراجعها معك سريعًا:
- لا تتفق مع العميل قبل أن تأخذ منه مواصفات المتطلبات (Requirement Specification) بشكل مكتوب.
- تأنَّ في تحديد الميزانية والوقت، وأضف دائمًا هامشًا زمنيًا للطوارئ.
- حدد موعد التسليم بشكل واضح ومناسب لتجنب أي مشاكل قد تؤدي إلى خسارة المشروع.
آمل أن يكون هذا المقال مفيدًا لكم في رحلتكم نحو العمل الحر.