كريم محمد
13 مارس 2021

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

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

الهدف من وراثة الكود هو عدم وراثة الكود بالمعني الحرفي “اصبح الكود ملك لك” ولكن وراثة كل ما في المشروع اصبحت انت المسؤل عنه بمعنى آخر “عليك تصليح الاخطاء – تحسين الأداء – اضافة مميزات جديدة” كل هذا اصبح من مهماتك الان.

نكتب المشروع من جديد

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

  1. الخوف من عدم فهم الكود الداخلي للمشروع.
  2. عدم الإلمام بشكل جيد بالتكنولوجيا المبني عليها المشروع.
  3. عدم القدرة على تحديد وقت الانتهاء من المهمات التي سوف تطلب منك.

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

مستواك الشخصي

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

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

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

كما سوف توفر على نفسك وقت وعناء البدء من جديد والعمل من حيث انتهي الاخرين .. سوف يسائلني احد ويقول “كيف سوف يتوفر الوقت وسوف اقوم بتضيع وقت اخري في فهم آليات عمل المشروع ؟”
الاجابة :: ان الوقت الذي سوف تقضيه في قراءة وفهم الكود ثم تطويره وتحسينه هو وقت أقصر من الوقت الذي سوف تقضيه إذا قمت بعمل المشروع من جديد .. اذا لم يكون أقصر فسوف يكون مساوي في النهاية.

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

كريم محمد

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

مستوى الشركة

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

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

الخلاصة

  1. لا تحصر نفسك في مهارات محدودة.
  2. لا تقوم باعادة كتابة المشروع من جديد وتعلم من الكود الحالي.
  3. نمي طرق تفكيرك من خلال تحليل أنماط تفكير من ورثت عنهم الكود.
  4. لا تكلف الشركة المزيد من المال للانتهاء من المشروع
  5. لا تقع تحت قانون مرحلة الصفر.

التعليقات في لينكد إن

شكرا لكم.