[نقاش] المبرمج وفلذة كبده الكود البرمجي.. هل تسلمه للعميل ؟
السلام عليكم
قبل عدة أيام كنت أدردش مع مبرمج في غزة، وأخبرته أنني أسلم الكود البرمجي كهدية بعد انتهائي العمل ، فنظر نظرة غريبة لي وقال كلمات استهجان كثيرة، معناها أن الكود فلذة كبد المبرمج ( مثل الابن )، وكيف أسلمه بهذه البساطة للعميل، ووووو .
أرغب في أن نناقش في صرح سوالف هذه النقطة للتوصل إلى أفضل الخيارات المستقبلية.
السيناريو:
يأتي العميل إلى المبرمج ويطلب منه أن يقوم ببرمجة موقع أو برنامج له، فيقوم المبرمج بإنجاز العمل اللازم وتسليمه للعميل، وعندما يحتاج هذا العميل إلى تطوير مستقبلي يقوم بالاتصال بالمبرمج لكي يقوم بإضافة التعديلات إلى الكود بمقابل او بدون مقابل كما كان الاتفاق سابقا،
أو يمكن في حالات معينة أن يتفقا على تسليم الكود البرمجي بعد إنتهاء العمل، لكي لا يبقى العميل مرتبط بالمبرمج، وغالبا ما تجد المبرمجين يطلبون مبلغ مساوي للاتفاق ، فمثلا اتفقا على 1000 دولار ، تجد المبرمج يطلب 1000 دولار إضافية ( أو احيانا يجعلها أقل ب100 ، فتصبح 900 دولار ) ثمن تسليم الكود البرمجي.
طلاب الجامعات:
بالنسبة لطلاب الجامعات فقد عملت على مشاريع كثيرة لهم ( مساعدة طلاب الجامعات أمر آخر )، ولكن عند الطلاب يتطلب منك أن تسلمهم الكود مفتوح لأنهم سيقومون بمناقشته أمام لجنة ، وقد يطلبون منهم شرحه، ويتم تسليم الكود تلقائيا حتى بدون الاتفاق على ذلك وهذا أمر بديهي.
إلا أنني رأيت العديد من المبرمجين يسلمون الكود البرمجي مغلق في بعض النواحي ، وآخرون ( حقراء ) يسلمون الكود البرمجي يحذف ملفات منه تلقائيا بعد شهرين أو ثلاثة أشهر لكي لا يستفيد الطالب من الكود البرمجي، وقد رأيت هذه الحادثة تعاد مرارا وآخرها قبل أسبوع !.
ما يفعله المبرمجون
- أغلب المبرمجون الذين عرفتهم لا يقومون بتسليم الكود المصدري،
- وإن اضطروا لتسليمه مقابل مبلغ مالي ( كبير غالبا ) يقومون بإغلاق العديد من الملفات والمكتبات بحيث لا يستفيد العميل منها كليا،
- وإن سلموه مفتوح كامل، يقومون بإعادة ترتيب الكود لكي يتصعب من بعده في فهمه، ويقول هذا المبرمج الذي سبقني كان عبقريا كخليل سليم :nice:
- وإن لم سلموه وكل شيء تمام لا يقومون بتسليم التحليل ، أو لا يقومون بكتابة التعليقات البرمجية في الأجزاء التي يجب فعلا كتابة تعليقات لكي يفهمها من بعدك، بل حتى نفس المبرمج لو أعاد قراءة نفس الكود الذي كتبه بعد أشهر سيتصعب في فهمه.
فالخلاصة في كل الأحوال العميل لا يستلم الكود معزز مكرم إلا في حالات تعد على أصابع اليد الواحدة.
وجهة نظر المبرمجين
- الكود هو نتاج خبرة سنوات طويلة ولن أعطي خبرتي لأحد أبدا ( كاتم العلم )
- كيف لمبرمج مبتدئ أن يقرأ الكود من بعدي ويقفز قفزة عملاقة !
- اذا اعطيت الكود البرمجي للعميل فإنه سيقوم بالتعديل عليه عند غيري وبالتالي لن أكسب منه مرارا وتكرارا.
- إذا حصل العميل على الكود فلن أستطيع ابتزازه وجعله طوع أمري دائما.
- العميل يستاهل لأنه دفع 200 دولار، والبرمجة تساوي 800 دولار، ولكني سأريه والله راح أستعبده بس الصبر .
...
... وجهات نظرهم تطول ، وبعضها وجهات نظر غريبة، ولكنها تبقى وجهات نظر
وجهة نظري كمبرمج
- الغرب وهم كفار، لا توجد لديهم هذه الأفكار غالبا في المشاريع الصغيرة التي يدفع العميل ثمنها من دم قلبه.
- إذا مات المبرمج... كيف سيعدل العميل على الكود، لن يمكنه ذلك بل سيقوم ببرمجة برنامجه أو موقعه من الصفر والدفع من جديد، والشرح من جديد، والتجربة من جديد، والتعب من جديد.
- إذا اعتزل المبرمج واشتغل ميكانيكي سيارات مثلا أو في الحدادة أو الطبار مثل هذا الشخص :court:، أو كان منشغلا في عمل جبار كصناعة صواريخ نووية ، أو كان مريضا مثلا ، فعندها على العميل أن يترجاه لأشهر لحين ما يجيب عليه ويقوم بالتعديل أو يتفق معه على تكلفة جديدة.
- ما لديك من علم برمجي ليس بذكائك الخارق بل هو من فضل الله عليك، وعليك أن تتواضع، قد أتفهم أن يقوم المبرمج بإغلاق مكتبات معينة أبدع فيها، وهذا حقه ولكن عليه ألا يضر العميل.
ما أقوم به
- أقوم بتسليم الكود البرمجي غالبا بعد إنتهاء العمل
- إن اتفقنا على تسليم الكود البرمجي في بداية العمل أطلب عليه مبلغ رمزي أو نسبي من ثمن البرنامج ولكن لا يتعدى الثلث أو الربع حسب طبيعة البرمجة.
- طلاب الجامعات أقوم بتسليمهم الكود مفتوح وتعليقات برمجية عليه، وشرح فيديو كامل للكود.
- العملاء الذين يطلبون الكود، أراعي ترتيبه أثناء الكتابة، وأضع تعليقات برمجية لكي يدعو لي المبرمج الذي سيستلم العمل من بعدي.
- إذا انهيت المشروع وكنت سعيدا بالعميل ولم يرهقني إضافات ( اضافات لم نتفق عليها وليست تعديلات ) ، وهو غالبا ما يحصل من كرم الله، أقوم بتسليمه الكود كهدية بعد إنتهاء العمل، وأنا كلي سرور بهذا العمل،وإن استغرب من العمل وإن قال لي ماذا يلزمني، أو ماذا أصنع به!.
فلا أعلم متى يتوفاني الله، ولا أريد لهذا العميل المحترم أن يدفع من ماله في المستقبل مرة أخرى ليعيد البرمجة، لأنني لا أرضى لنفسي أن أدفع ثمن عمل ما مرتين.
ما يتوجب على المبرمج من وجهة نظري
- ألا يبخل في الكود البرمجي إلا إذا ابتكر كود جديد أو خوارزمية جديدة ( وهذا ما لا يحصل غالبا )
- كودك يستطيع مئات بل آلاف المبرمجين غيرك كتابته، فلا تعتقد أنك طفرة وصنعت شيئا لم ولم يصنعه غيرك.
- عندما تصل للاحترافية وتعمل في شركات عالمية أو شركات كبرى وترى الشركة سياسة اغلاق الكود ، فعندها أغلق الكود وحافظ عليه وكل الشكر لك.
- كن جيدا مع العميل، كريما، شهما، خلوقا، وإن لم يكن هو كذلك، فأنت حسن الخلق لأنك هكذا، ولست حسن الخلق لأن من يتعامل معك حسن الخلق، وكن على يقين أن الأخلاق الكريمة هذه تغير العميل مهما كان، وتأكد أنه سيرجع إليك وحتى لو أعطيته المصدر البرمجي لأنه ارتاح معاك ولن يجد أفضل وأكرم منك.
ما يتوجب على العميل من وجهة نظري
- يتوجب على العميل أن يكرم المبرمج ماديا ولفظيا، فعندها المبرمج سيخجل منه وسيكون عند إشارته
- ألا يكثر من الإضافات التي لم يتفقوا عليها، وإن كانت فعليه أن يراعي إضافة مبلغ مالي ، ليعمل المبرمج وهو سعيد :1power:
- يراعي ظروف المبرمج فأحيانا سطر برمجي يستغرقه أسبوع ولم يكن في حسبانه، وأحيانا مئات الأسطر لا تستغرقه سوى دقائق معدودة، فالبرمجة في مرات كثيرة تكون أشبه بالفن.
انتظر رأيكم، وتعليقاتكم، فأنا دائما استفيد من وجهات النظر الأخرى مهما كانت، ولعلي أغير وجهة نظري إن أقنعني أحد الإخوة بغير ما أعتقد
التعديل الأخير تم بواسطة خليل سليم ; 12-04-2013 الساعة 04:27 AM
سبب آخر: لم يعمل معي الوسم B في العناوين فاستبدلته بلون أحمر فاقععععععع
__________________
بريدي :khalilme (at) hotmail.com
مطور: ASP.NET, Windows Phone , Desktop Applications