21

السعر والسرعة ليس هو كل شي عند طلب مشروع.

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

لنأخذ هاته الحالة كمثال :

صاحب المشروع يريد سكريبت خاص بتصميم خاص لموقع للتجارة الالكترونية ، فتتقاطر العروض لانجاز الموقع في يومين أو 3 ايام بسعر 100 دولار ، في رأيكم كيف لمشروع انجز في 3 ايام ان ينجح ،هل تم التخطيط للفئة المستهدفة من الموقع ، هل اخذ بعين الاعتبار دراسة المنافسين و جلب ميزات جديدة تتفوق عليهم ، هل سيتم الاهتمام بكل الجوانب في 3 ايام ( الارشفة ، سرعة الموقع ، توافقه مع جميع الاجهزة ، عدم وجود اخطاء برمجية ، الخ..) ، في ثلاثة ايام !!!!!

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

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

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

لذلك قررت عدم التعامل مع مستقلين أو أصحاب مشاريع -من هذه النوعية- سواءا عرب أو غيرهم. طالما الإهتمام بعامل السرعة

كتابة كود reusable, maintainable , extendable, modular, without performance issues, security issues, ...etc أمر ليس بالهين. وحقيقة يصعب إيجاد freelancer بهذه النوعية

أغلب ال engineers يفضلون العمل في شركات وليس مستقلين. نظرا لعدم وجود طلب محترم -يراعي متطلبات عملهم من جميع النواحي- في العمل الحر.

هذا رأيي.

عموما كحل لهذه المشكلة: توفير طريقة عمل interview مبسط مع ال freelancer قبل بدء العمل.

من خلالها يستطيع صاحب العمل معرفة هل وجد ما يبحث عنه.

وليس من خلال عرض واجهات لا تسمن ولا تغني من جوع.

أو عبر مشاهدة أعمال العامل الحر السابقة

لا تكفي المشاهدة للعمل النهائي ابدا لكي أثق بمبرمج.

يمكنني خداعك بواجهات رائعة لكن بكود سيء not extendable,not maintainable, ..etc 

Talk is cheap. Show me the code.

لذلك اقدر جدا الشركات التى تطلب مشاهدة code sample او تعطيك task لتنفيذها ليشاهدوا طريقة كتابتك للكود

هنا في السودان يأتيك عميل في العشر الاواخر من الشهر و يطلب منك أن تنهيه حتى نهاية الشهر لكي يبدأ بالنظام من الشهر الجديد ، بالله عليكم لماذا هذه الشفقة في تسليم الانظمة و التطبيقات ؟؟؟

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

مهمتك ك engineer/professional developer هي مراعاة واجبات عملك على أكمل وجه، مثلا باختصار:

  • معرفة الخصائص المطلوبة functional features وتقييم عدد الساعات المحتملة لإنجازها.

  • حساب ساعات إضافية ك risk. تكون إما ضعف الساعات او r = hours * 1.5

  • حساب ساعات إضافية (مثلا 30 ساعة) لتجهيز بيئة العمل:

New projects, libraries, git, testing if needed (it should be, if you care about your reputation), automation and build environment, ...etc

  • حساب ساعات لأشياء لا يعرفها صاحب العميل Non functional requirements لكن مهمة جدا لك ك engineer ولبناء سمعتك. مثلا 30 ساعة:

,Handling exceptions, errors and logging, DB schema design, ... etc

  • تقدير سعر الساعة إما بناءا على سعر السوق أو اذا أردت فرض تسعيرتك للأسبابك الخاصة (وهو ما أفضله) ومن ثم حساب الإجمالي.

واخيرا ، تسليم العميل estimation document يحوي التفاصيل السابقة دون مراعاة له ، وإنما مراعاة لواجبات العمل التي قام بطلبها.

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

غالبا في مثل هذه المشاريع يجب أن يكون العمل وفق اي من ال Agile methodologies ، وبالتالي كل اسبوعين iteration يجب تسليم العميل نسخة تحوي خصائص مكتملة. مكتملة تعني مكتملة من كل النواحي analysis, development, testing, QA

بعد الحالات قد يطلب العميل في اي iteration خصائص أكثر من التي تم عرضها. هنا يمكنك أن تفرض overtime مثلا في حالة تم الإتفاق على العمل 4 ساعات يوميا ، , وفي خلال ال iteration الحالية طلب العميل خصائص أكثر من التي تم طلبها ، يمكنك أن تقبل ذلك على حساب الساعة * 2.

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

تقدير سعر الساعة إما بناءا على سعر السوق أو اذا أردت فرض تسعيرتك للأسبابك الخاصة (وهو ما أفضله)

كيف تقدر أنت سعر الساعة ، و ما هي الاسباب التي تبنيتها لإختيار سعر محدد ؟

testing if needed (it should be, if you care about your reputation)

كتابة الاختبارات التلقائية جيد بالنسبة للمطور :

  • لأنه يحدد و ويجه المطور على إتجاه معين كي لا يتشتت تركيزه

  • و أيضاً كي لا يتعب نفسه بإختبار يدوي كلما عدل الشيفرة البرمجية

العمل وفق اي من ال Agile methodologies

أنا في الغالب أستخدم eXtreme Programming و هي رائع في ترتيب و تسهيل عملية التطوير

ما الذي تقصده بـ :

QA

و احدة من أكثر الاشياء التي تضايق المطور عدم معرفة الزبون لحدود المشروع (scope) فكيف تحلها ؟

سعر الساعة بالنسبة لي يكون بناء على عوامل كثيرة ، منها:

  • هل المشروع هو مجرد عدة خصائص وبعدها سيتوقف التطوير ويذهب الى "قائمة أعمالي" ؟ (توقفت مؤخرا من العمل على هذه المشاريع.)

  • أم أن المشروع يحتاج الى iterations كثيرة وهناك potential عالي في أن ينجح المشروع؟ وبالتالي سنرى v1.0, v2.0, ...etc. بمعنى ان التطوير سيكون مستمر إلا في حالة فشل المشروع من تحقيق أهدافه.

  • هل توجد إحتمالية الحصول على نسب بسيطة في المشروع في حالة نجاحه؟

  • هل المشروع لجهة حساسة؟ Ministries or governments؟ هل هناك penalty على عدم التسليم عند الوقت المحدد Meeting deadline؟

  • هل هناك إمكانية إعادة الربح من المشروع مع عميل آخر؟

من ما سبق نلاحظ أن سعر الساعة متغير، وهذا شي طبيعي باختلاف الشروط والقيود. لكن لا يعني هذا أن عدد الساعات سيقل! او ان ال professional attitude لديك سيقل.

بالنسبة لل QA غالبا في الشركات التي تصدر products لديهم developers and QA/testers. وظيفية ال QA هو التاكد من جودة المنتج وفق عدة اختبارات منها End-End/Integration testing, acceptance testing, performance testing, and black box testing. جميعا للتاكد من أن المنتج يعمل بالشكل المطلوب.

ك developers غالبا ما نكتب unit testing and ui test فقط. والبقية تكون لل QAs.

أخيرا بخصوص تحديد ال Scope فهي أيضا مشكلة شائعة، قابلت أحد العملاء يطلب شيء Woow فقط ، هدفه هو إبهار الناس دون أن يكون لديه أي رؤية حول تفاصيل المشروع، وأي خاصية في نظره يجب أن تكون موجودة by default.

الحل بسيط لردع هؤلاء:

  • انشاء Uses Cases لمهام النظام ودور كل user/system ، وبالتالي سيتم تحديد ال scope العام.

  • انشاء Sequence diagram بسيطة توضح خطوات كل use case.

  • Mockup للشاشات (باستخدام قلم رصاص + ورق ابيض)

  • ملف ال estimation للتفاصيل التي ذكرها

أخيرا As We Agile, We Welcome Changes!

نرحب بجميع التعديلات، طالما أن هناك clean code, iterations & the important one: new estimation for the changes :)

انا اتبع نفس طريقتك فى التعامل فقط دون ان اخبر الزبون بأنى افعل ذلك ، فأجد ان هناك منهم من لا يفعهم معنى وقت اضافى لل error handling ووقت آخر لتجهيز بيئة العمل ويحسبون انك تضيف وقت لامعنى له فحسب

لذلك مؤخرا اصبحت لا افسر ولا اعمل بنظام الساعات بل بنظام (لكشة واحده هههه) كما نقول فى مصر ... بنظام المشروع مع وضعى فى الاعتبار ما تحدثت عنه دون اخبار العميل بذلك

غالبا يأتيك العملاء وهم متخوفون وقلقون ولديهم تجارب سيئه وان غبت عنهم لفتره يشعرون انك مشغول مع غيرهم وانك نسيت مشروعهم ولذلك انصح اى من يتعامل مع الزبائن ان يكون دائم التواصل معهم بخصوص مشاريعهم و ان يلتزم بنسبة 100% معهم بالامانه والصدق حتى يحترم نفسه قبل ان يحترمه الآخرون

اتفق معك فالبعض ليس لديه علم بكم ياخذ من الوقت والجهد ، ويظن الامر سيصبح بين ليلة وضحاها

انا : كصاحب مشروع عرضت مشروعي على اكثر من شخص ،،، سبب الالغاء كان في تجاهل المستقل نفسه وانا اعطيه فرصه وباعي طويييييل

لاكن عندما اراه يتجاهلني واعطيه فرصه كـ اسبوع او ١٥ يوما وايضا يتجاهل ولا يعطي وسبب وترى اخر دخول له قبل ثواني ... هنا من حقي ان الغي المشروع وان اجد مستقل آخر

============

واخيرا بعد تعب طويل قرابة السنه ، وجدت من يحقق المشروع : وسأضع مشاريع في مستقل اخرى لانني موقن بانني سأجد الشخص المناسب ،

اعجبتني فكرة النقاشات ، هذا ما كنت انظره ... في السابق لا يسمح لك النقاش مع صاحب العرض والان بامكاني النقاش معاه قبل القبول

اتمنى فقط ان يفعلو ميزة الاشعارات برسائل إلى البريد الالكتروني ... ... لانني اعتبره عقم كبير في سكربت مستقل

اعتقد المشكلة ليست من المستقل بشكل رئيسي بل ايضا من العميل و ذلك لقلة خبرته في مشروعه فهو يستطيع ان يقيس المال و الوقت اما الجودة فلا يستطيع قياسها الا الخبير

هلا ...

هل هناك علاقة بين سرعة اﻻنجاز والسعر من ناحية والجودة من ناحية اخري؟

اﻻجابة قطعا نعم والوسيلة الخبرة.

اي مستقل يقدم لك حل في وقت سريع فهو يعلم تمام ان ﻻيمكنة عمل ذلك اﻻ اذا كان لدية الخبرة الكافية ..

وانا اقول لك ان تصميم موقع للتجارة اﻻليكترونية في اقل من 3 ايام ممكن !!!

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

اغلب المستقلين الذين يقدمون سعر رخصيص بالاضافهالي وقت قصير هما فقط يمتلكون بضع اسكربتات او اكواد جاهزه لديهم فقط يقومون بتغير المحتوي حسب العميل وهذا النوع من المستقلين مطلوب ولا يمكن ان نتجنبه :)

اما بحصو بناء وارشفه موقه كامل شامل خطه تسويق فلا اعتقد ان المده الزميه من الممكن ان تقل عن شهرين كحد ادني