لمبرمجي الـ Full-Stack : ما هي خطوات العمل التي تعتمدونها ابتداءا من استلام المشروع من العميل الى التسليم النهائي؟

السلام عليكم,

بعض المبرمجين -المبتدئين مثلي- يعملون على المشاريع بفوضاوية وتشتت ما يسبب تأخر في انهاء العمل او نسيان اصلاح العديد من المشاكل البرميجة او مشاكل التصميم! لدى نتمنى منكم مشاركتنا بخبراتكم في هذا المجال.

وبارك الله فيكم,


10
  1. الجلوس مع العميل ( شخصيا او سكايب ) لفهم المشروع و الهدف بدون الدخول في التفاصيل التقنية.

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

  3. اذا كان العمل هو موقع لخدمة ما، أحاول التكلم مع الزبائن أو المستخدمين العاديين

  4. رسم مخطط بسيط المهام التي يجب ان تكون و الخواص التي يجب ان تكون موجودة

  5. من المخطط احدد الوقت و التكلفة و إنجاز mockup

  6. اصنع العقد و اوقعه من قبل العميل

  7. البدء بالعمل بعد استلام الدفعة الأولية ( لا ابدا بدون جزء من المبلغ المتفق )

  8. تحميل ال boilerplate الخاص بي و البدء في إنتاج الـ MVP

  9. بعد اكمال MVP أخذ رأي العميل به و إنجاز التعديلات

  10. اكمال المشروع بتقسيمه إلى milestone و اخذ جزء المبلغ النهائي مع انتهاء كل milestone

  11. آخر عملية هي إصلاح ال bugs في النظام و صقل النظام

  12. التسليم بعد اخذ اخر دفعة ( الموقع و الكود كامل و ال documentation )

  13. مدة الضمان تتراوح بين 3 اشهر الى سنه ( او حسب الإتفاق )، الضمان يتضمن إصلاح bugs و لكن اي تحديث او تدريب او تطوير يعتبر عقد جديد.

لوسمحت ممكن توضيح اكثر للنقطة ٢ و ٣

لنأخذ مثلا المشروع لإدارة الموظفين في شركة ما.

اذهب (سواء للموقع الحقيقي او بالسكايب) و أتحدث مع الذي يدير الموظفين و احاول ان افهم سير العمل و ماذا يحتاج لإنهاء العمل. احيانا فقط اجلس معه في المكتب و اشاهده يعمل.

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

لان الزبون الذي يأتيك قد لا يعرف ما يحتاجه بالضبط.

أما للنقطة 3 خذ مثلا موقع لعمل CV ( شيء مشابه للينكد إن + wix ) و نشرها على النت.

ابحث عن عملاء محتملين و اسألهم عما يريدونه في موقع هكذا.

سيقول لي احدهم انه يريد خاصية لعمل عدة CV معا و إدارتهم بنفس الوقت.

و هكذا اعرف المتطلبات بشكل أدق.


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

كله يرجع للعميل و العمل

أسلوبك عملك رائع، هل جاء من خبرتك أم تلقيته من جهة أخرى ؟

بالنسبة للـ Documentation، بحثت كثيرا في الأنترنت عن هيكلة بناء التوثيق و كل ما يجب أن يورد فيه، لكن المصادر قليلة جدا و بالكاد وجدت شرحا من متاجر Envato ؟

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

بالنسبة لل Documentation، فأنا استعمل شيء خاص بي و ليست متأكد بأنه الافضل او الصحيح.

و لكن هذا هو :

  1. احاول كتابة الكود ليشرح نفسه بنفسه من دون comments سواء باستعمال أسماء متغيرات مفهومة او تبسيط الكود مظهريا و لا احاول ان اكتب كود كثيف. طبعا احيانا يوجد اوقات تحتاج الى ان تستعمل ال comments

استخدم هذا الموقع لتعلم كيف اكتب كود واضح

  1. عندما اكتب Documentation احاول ان اكتب ما قل و دل

مثلا:

  • اسم الـ function او الـ component

  • شرح بسيط

  • المدخلات و المخرجات ( اذا وجدت )

  • مثال لإستعمال الكود

مثل :

او

طبعا لن يكون به كل function او component و لكن المهمة منها

أظن هذا يصلح مع المشاريع الصغيرة التى يكون المبرمج فيها هو كل هؤلاء

( Back-end, front-end, project manager, quality control, ..etc)

لما لا يصلح للفرق المتوسطة او الكبيرة ؟

هل جربت طريقة الـ Agile scrum فى إدارة المشروعات والفرق البرمجية

أجل استعمله بالمشاريع المتوسطة و الكبيرة سواء كنت لوحدي او مع فريق .

هل تستعمله انت ؟ هل تستعمل برامج خاصة مثل تريلو او تستعمل الطريقة التقليدية باستعمال Sticky Notes

انا استعمله يوميا

أصعب نقطة بالنسبة لى هو كيف تقوم بعمل الميزان الذى من خلالة تستطيع أن تقيس الوقت التقريبى لكل مهمة

قال لى أحدهم يتم ذلك عن طريق قياسك لمهمة مألوفة لك تعرف وقتها التقريبى

وكل مهمة جديدة تنظر كم تساوى حجما من حجم المهمة المألوفة لك وتستنتج الوقت التقريبى من ذلك

الأمر يصبح اسهل مع الوقت و الخبرة.

احيانا تقدير مدة مهمة معينة تكون غير دقيقة لانها كبيرة، حاول ان تقسمها إلى أقسام اصغر، فهنا يمكنك تقديرها بدقة اكثر

أعجبني نظامك.

1 - فيما يخص Mockups, ما هي الادوات التي تستخدمها؟ هل سبق ان استعملت احدى هذه الادوات وما رأيك بها: adobe xd, figma, webflow؟

2 - هل الافضل انشاء boilerplate شخصي ام لا مشكلة في استعمال الجاهز منها؟

3 - هل يمكنك ان تحدثنا قليلا عن MVP والادوات التي تستعملها فيه والوقت المتوسط الذي تستغرقه لانجازه؟ "لم استوعب فكرته جيدا".

بالعادة ابدأ من boilerplate جاهز و ثم احوره لكي يناسب طريقة البرمجة الخاصة بي و المكتبات التي استعملها.

حاليا احاول ان انشيء boilerplate محور يحتوى على اشياء كثيرة مثل login system / email / cron

و كذلك الكثير من components الجاهزة لل UI حيث يسرع العمل للمشاريع الجديدة بسرعة هائلة.

بالنسبة لل MVP هو إنتاج تطبيق لأبسط شكل للمشروع، حيث يستطيع المستخدم ان يحصل على تصور لكيفية شكل المنتج النهائي و هنا تستطيع تعديل المشروع ليتناسب مع رؤية العميل

مثلا انت تريد ان تصمم MVP لموقع شبيه بحسوب io.

الأشياء المهمة هي :

  1. صفحة لعرض المواضيع

  2. صفحة الموضوع نفسه مع التعليقات

  3. صفحة العضو

التويتر :

  1. صحيفة لعرض التغريدات

  2. صفحة للمغرد

اليوتيوب :

  1. صفحة لعرض الفيديوهات

  2. صفحة لعرض الفيديو

isamido أضف ردا

اخي الكريم هل تنصح المبتدئين مثلي بعمل على فريمورك ام لا , يعني انا كشخص يمكنني ان ابرمج اي موقع و لكن استخدم pure php

هل هذا جيد ام لا

و بأي فريمورك تنصحني.

و شكرا مسبقا

الفريمورك او المكتبات تسرع من عملك بمئات المرات.

انصحك بإستخدام Reactjs انها رائعة جدا

هذه خاصة بجافاسكربت

هذه لل UI اي front-end

تستطيع استعمال php مثلما كنت تفعل سابقا.

و لكن ستبرمج فقط api بال php اما كل UI سيكون لوحده بالريأكت

معلومات مفيدة شكرا.ً