ما يحتاجه مدير التكنولوجيا المبتدئ CTO لبناء شركة برمجيات ويب ناشئة
كيف تبني ويب ستارتاب من الصفر !
نشر في 16 نونبر 2015 وآخر تعديل بتاريخ 30 شتنبر 2022 .
تتعدد النقاشات و الإختيارات حين يتعلق الأمر بالتكنولجيا المنتهجة من طرف الشركات الناشئة، و أخص بالذكر شركات برمجيات الويب، في هذا المقال سأذكر لك بعض التقنيات و المعارف التي تعلمتها من تجربتي المتواضعة في هذا المجال في عملي في شركة ديفينوب - Devinweb،و المعايير اللازم اتباعها عند بناء شركة برمجيات ويب ناشئة. هذه المعلومات قد تفيد رواد الأعمال الشباب الطامحين لعمل شركة برمجيات ناشئة، و ستساعدهم في تحديد ما يحتاجون و اختيار فريق العمل و معرفة بعض المفاهيم العامة بخصوص المجال.
بطبيعة الحال هناك من سيختلف معي حولبعض التفاصيل و تفضيله لتكنولجيا عن أخرى، أو بيئة عمل معينة. لكن بالنهاية ما قد يركز عليه مدير التكنولوجيا هو السهر على سيرورة المشروع بشكل سلس و قابل للتطوير، إضافة إلى زيادة الإنتاجية لتسريع عملية المرور إلى البيع و تسليم المنتج و جعله قابلا للاستعمال.
الصورة عن برنامج devinPOS ل تسيير عمليات البيع للشركات الصغرى و المتوسطة
راجع أيضا برنامج devinStock و هي خدمات مقدمة من شركة برمجيات الويب المغربية Devinweb - دفينوب ..
1 - بيئة العمل: اختيار النظام المستضيف
هناك طريقتين أن تكون البرمجيات تعمل في بيئة خاصة، مثلا على جهاز المستعمل و في هذه الحالة ستعمل ب localhost، أو في خادم شركة خاصة للمستعمل. أو أن تكون الخدمة البرمجية في بيئة على الويب و هذا النوع أصبح معروف بالكلاود،أو خدمة SaaS - Software as a Service.
مميزات أنظمة SaaS أنك ستجد جميع الخدمات التي تحتاجها و لن تحتاج لعمل تدبير لبيئة العمل بنفسك.
أهم خدمة ينصح بها الجميع في الوقت الحالي هي خدمة أمازون ويب سيرفيس AWS: تقوم باختيار نظام لينوكس لبيئة Server EC2ثم القيام ببناء بعض الخدمات التي ستحتاجها عند التطوير ك Mysql و Apache ...
من مميزات بيئة الكلاود هو أنه بإمكانك أن لا تعمل بسيرفر Serverless Infrastrcture، و أن تعمل على ربط مجموعة من الخدمات (بيئة اشتغال الكود، قاعدة البيانات، بيئة الملفات، الإيميل ..) مع بعضها البعض للحصول على ما تريد.
2 - بيئة العمل: اختيار البرمجيات
لاختيار لغة البرمجة هناك معايير:
- اللغة التي تريحك عند التطوير بها
- خصائص و متطلبات المشروع
- الفريق و إمكانية إيجاد مطورين و متعاونين في لغة البرمجة المختارة
- الكلفة
مهمتك الرئيسية كمدير التكنلوجيا هي أن تخرج منتجا قابلا للبيع بأسرع وقت، و ليس قضاء الوقت بين لغات البرمجة، يجب الإختيار و تبني اللغات حسب إمكانيات الفريق، و متطلبات المشروع لاختيار طبيعة قاعدة البيانات مثلا، أيضا معيار مهم هو المراجع و المناقشات و الحلول الموجودة على الويب من طرف مجتمع المطورين. من الأفضل إختيار برمجيات مفتوحة المصدر لاستعمالها في المشروع ، لماذا ؟
لأنها مجانية و مفتوحة وستمكنك من الحصول على الخاصية كاملة، مراجعة الكود الخاص بها و تعديله، اضافةإلى أنك ستجد المساعدات اللازمة في هذا المجال.
3 - أطر عمل البرمجيات: Framework
أهم ما يجب أن تركز عليه هو اختيار أطر العمل منذ البداية، لأنها ستوفر عليك 80 % من الكود المستعمل في كل المشاريع، اطار العمل الخلفي سيمكنك من التواصل مع قاعدة البيانات بطريقة فعالة، ممتعة، مرتبة، أكثر إنتاجية و آمنة .. لذا ابدأ بتعلم البرمجة مع أطر العمل و لا تحاول صناعة العجلة و عمل كل سطر كود بيدك، فلن تصل بهاته الطريقة.
الواجهة الخلفية : Backend
الواجهة الخلفية للمشروع هي كل الأنظمة الخاصة بالسيرفير و قاعدة البيانات. كل ماعليك هو الإختيار بين أطر العمل هاته، لكل لغة برمجة إطارالعمل الخاص بها، ممكن تبحث عنها غوغل و تحصل على كورسات فيها.
الواجهة الأمامية : Front End
إطار العمل في الواجهة الأمامية سيسهل عليك عملية استخدام مميزات البرمجة و التصميم الذي سيظهر للمستعمل في جميع المتصفحات.
4 - تدبير ال Packages و المكاتب المساعدة في المشروع
لكي يكون المشروع أكثر تكاملا و يسهل تطويره في المستقبل، يفضل استعمال أنظمة تدبير المكاتب و إصداراتها في المشروع، بطريقة مستقلة عن الكود الذي تكتبه أنت. ستحتاج ل Terminal و نظام معين ك Bower يقوم بإمدادك بجميع ما تحتاجه من مكاتب و أنظمة مساعدة.
مثلا: حين تستعمل مكتبة جافاسكريبتك jQuery لا تضفها بطريقة يدوية، لكن استعمل نظام Bower: سيمكنك من استعمال آخر إصداراتها بطريقة سلسة و تحديثها بدون التأثير على الكود الذي عملته، النظام سيتكلف بالأمر!
هذه أهم أنظمة تدبير ال Package manager
كما ستمكنك بعض الأنظمة ك Grunt من عمل أتمتة - Automatisation لأشياء مهمة يقوم بها المطورون عند الإنتهاء من مرحلة التطوير إلى إنتاج الكود code production كتقصير حجم المكاتب المستعملة. هذه أنظمة ال Automatisation للأعمال
أيضا نظام Yoeman يساعدك لبدء مشروع نظام يتضمن كل هذه الأنظمة.
5 - قاعدة البيانات
هناك تطور ملحوظ في أنظمة قاعدة البيانات: هناك نوعان
RDB - Relational databases: كأوراكل أو Mysql أو Postgresql
NoSQL databases: ك MongodB
ستجد نقاشات كثيرة عن من هو أفضل و أحسن، شخصيا أفضل أن يتم البدئ ب Mysql لأنه مجاني و مفتوح و ستجد فيه مساعدة أكثر. Posgresql متطور و أكثر قوة نوعا ما عن Mysql إذا أردت قاعدة بيانات ب Objects Tables.
لا تمر إلى ال NoSQL إلا إذا كانت هناك حاجة تقنية مثلا، نمو عدد ال Rows بشكل كبير في أل Tables. بالفعل ف أل Nosql أبسط و أكثر جاذبية، نظرا لغياب مفاهيم مثل أل schema ... لكن أفضل البدء ب ال RDB.
6 - التحكم في إصدارات المشروع
نظام Git هو النظام الأكثر اعتمادا من طرف المبرمجين حول العالم، يمكنك من عمل إصدارات للمشروع، تسجيلها و توثيق التغييرات التي قمت بها، و العودة إلى العمل على إصدارات سابقة. نظام git يمكن المدراء من متابعة تطور المشروع و تقسيم العمل بين المطورين، ثم دمجه حين الإنتهاء من تطوير الخصائص. أنصحك بالموقعين:
Github : لعمل برمجيات مفتوحة المصدر.
Bitbucket : موقع مجاني لفريق لا يتعدى 5 مطورين ولعمل برمجيات خاصة غير مفتوحة.
هذه الصورة تبين لك كيف بإمكان العمل بمحرر كود sublime text وإطار عمل PHP laravel مع terminal يساعد في بناء الخدمات المساعدة ك git و bower و composer .....
التحقق من عمل المشروع: Tests
عند الانتهاء من بناء كود المشروع يجب أن يخضع لمعايير التحقق سأذكر لك المعايير و أدع لك البحث عن كيفية عملها.
Unit test : يمكن من التحقق من عمل الدوال functions و أقسام classes الكود.
Functional test: التحقق من عمل خاصيات التطبيق بشكل سليم كما هو مرغوب.
Performance test: التحقق من الأداء الجيد للمشروع، كقياس سرعة التحميل مثلا..
في النهاية آمل أنك وجدت الفائدة هنا، لا تنس مشاركة المقال فهذا تشجيع لي على الاستمرارية في العمل، أتمنى التوفيق للجميع !
-
عبد الله العبُّوس - Abdellah El Abbousشريك مؤسس لمنصة مقال كلاود، وشركة خدمات الويب ديفين ويب - مهتم بخدمة الويب، المحتوى العربي الإليكتروني، القراءة، ريادة الأعمال - أنشر بين الفينة و الأخرى بعض الخربشات