يوميات مبرمج مواقع
October 31st, 2008اريد ان اكتب عن يومياتي كمبرمج برمجيات شبكية لكي يرى الطلاب اللذين سيدخلون مجال البرمجه الشبكية ماذا سيكون طبيعه عملهم بعد التخرج. واتمنى من الزوار ان يعلقوا عن يومياتهم ايضا للمقارنة، ربما نخرج باسلوب مطور يفيدنا جميعا.
اصحى من نومي حدود الساعه التاسعه صباحاً، وفي بعض الاحيان اذهب للمسبح العام الموجود في المجمع السكني اللذي اعيش فيه، او اذهب للصاله الرياضيه، وفي حدود الساعه 11 صباحا اتجه للمكتب.
ادخل المكتب، وابدأ بقرائه ماهو جديد في سله الاخبار اللذي يجذبها لي Google reader، اكثر الاخبار اللذي اقرأها تقنيه ولكن يوجد بعض الاخبار الاخرى الغير تقنيه، تستطيعون معرفه ما اقرأه من هذا الملف OPML ومن ثم ادخالها في برنامجك الRSS المفضل.
وبعد قرأه الاخبار، ابدأ بالتحدث مع المبرمجي اللذين يعملون معي في نفس المشروع عن الخاصيه او المشاكل الذي نريد حلها، وايضا تذكير بالاعمال التي انجزت بالامس و الاشاره الى الاعمال التي كانت متوقعه ان تنجز ولكن لم ينتهي منها بعد. الخلاصه المرجوه من هذا الحديث هو اختيار مجموعه جديده من الاعمل التي نستطيع ان ننجزها في هذا اليوم، واذا كنا في اول الاسبوع نتكلم ايضا عن الهدف النهائي لذالك الاسبوع وماذا يجب ان ننجزه وهل سيكون الاختيار مجدي ام لا. سينظم مبرمج اخر ذو خبره اكبر اذا كان المبرمجين المسؤلون عن المشروع جدد او خبرتهم غير كافيه، لان خبره ذالك الشخص سيفيدنا في تحديد ماذا كانت الاعمل التي اخترناها لهذا اليوم كافيه ام لا، او سيعلق بقوله “الاعمال التي اختيرت لليوم كثيره ولن تستطيع انجازها، فاحذف احد الاعمال من اللسته لكي تكون مجموع الاعمال مناسبه لهذا اليوم” هذه العمليه جزأ من فلسفه SCRUM لتطوير البرمجيات. ولانني من اقدم المبرمجين في شركتي، اجد نفسي ذالك المسؤل او المستمع في بعض المشاريع اللذي يكون المبرمجين فيها جدد.
الSCRUM المستخدم في عملي هو SCRUM عام، مده الSprints Backlog خمسه ايام و الSprints يكون يومي. اي تحديث يومي. دعني اشرح ما هو الSCRUM والSPRINT. لانني حاولت ان ابحث عن صفحه تشرح الSCRUM بالعربي فلم اجده، فقلت لماذا لا اشرحها انا بشكل مبسط؟
الSCRUM هو فلسفه لتتطوير البرمجيات، ويبدأ استخدامه في اليوم الاول من تخطيط المشروع. فمثلا، اذا اردنا ان نبني برنامج متكامل عن خدمه العملاء، فنقول ان Backlogs هي، مجموعه الخواص التي يجب توفرها في البرنامج، مثلا. سجل العملاء، وبعد سرد جميع الخواص، نقسمها الى مجموعات اصغر، مثلا ادخال و تحرير او حذف معلومات العملاء. ولا يمكن ان نبدء بالSprint من دون سرد جميع الProduct Backlog وال Sprint Backlog. نحن نستعمل البرنامج trac في تدوين جميع اعمالنا. اعرف ان بعضكم سيقول ان الtrac هو برنامج خاص بالاعطال البرمجيه، ولكن بقليل من التغيرات نستطيع ان نحول trac الى برنامج متعدد المهام، trac هو سهل الاستخدام وله خواص جميله، الخاصيه التي افضلها هو سهوله دمجها مع برنامج SVN. ولجميع الاعمل نستطيع ان نرى متى دونت ومن المنسوب الى تلك الاعمال ومتى تم حلها!
بعد الحديث مع المبرمجين، اذهب الى المدير العام لوحدي وابدا بشرح ماذا انجز وماذا نريد ان نفعله اليوم، ولكن بشكل مبسط ولا يستغرق هذا اكثر من 3 او 5 دقائق. وبعدها اذهب الى مكتبي و ابدا بفتح برنامجي المفضل vim وابدأ بالبرمجه، ولكن في بعض المشاريع الكبيره، استخدم البرنامج PDT مع تركيب Aptana فوقها.
وطريقه برمجتي سهله، ابدا بالذهاب الى trac واقوم بتغيير مايلزم ونسب جميع الاعمال التي اصبحت من مسؤليتي من الحاله assigned الى accepted. وبعدها اخذ ورقه فارغه، واكتب فيها اعمالي من جديد ولكن بالترتيب الاصعب الى الاسهل. وبعدها اكتب طريقه الحل او الخوارزميه التي اريد ان افعلها، فلا اريد ان ابرمج بطريقه التجربه ومعرفه ما اذا كانت الحل نافعه ام لا، فأنا اريد ان ابرمج مره واحده ولكن بدون متاعب. وعند الانتهاء وتجربه جميع الخواص المربوطه باحدى الاعمال، اقوم بتغير حاله العمل من الaccepted الى fixed. ومن ثم تكرار العمليه، الى ان انتهي من جميع اعمالي.
في حدود الساعه السابعه او قبلها بنصف ساعه، ابدء بتصفح facebook، وبعدها اذهب الى وسط المكتب واصرخ “!!FOOD” في اكثر الحيان ارى ثلاثه او اربعه اشخاص يرفعون ايديهم يشيرون انهم لا يمانعون بالذهب الى مطعم قريب. وفي وقت العشاء اذا كانت عدد المبرمجين اكثر وهذا نادر، سيكون المواضيع عن ماهو جديد في عالم البرمجه، ويبدا المقارنه بين PHP و Ruby لان مبرمجي شركتي اما مبرمجي PHP او Ruby، والنتيجه في اكثر تلك المقارنات “لا يوجد نتيجه” لاننا نعلم انها مقارنه غير عادله ولكن نقارن فقط للتسليه. وتنتهي بشخص يقول “I wanna go to bed, lets go home”
اكون في المنزل حدود الساعه العاشره، وفي نهايه الاسبوع لا ارجع قبل الساعه الحاديه عشره ليلا.


November 1st, 2008 at 12:48 am
فكرة جميلة جدا و فعلا حتفيد كل واحد مهتم ببرمجة الويب .. أنا شخصيا كان نفسي فعلا أشوف سوق العمل ماشي ازاي علشان أطور الأسلوب اللي أنا بتعلم بيه على حسب سوق العمل ..
شكرا :) ……
November 3rd, 2008 at 11:25 pm
شكرا على الموضوع.
أرجوا أن تكتب الجمل بالعربية و خاصة تلك التي لا تمثل مصطلح و إضافة تعريب للمصطلحات جنبا إلى جنب مع المصطلح الإنجليزي.
November 28th, 2008 at 1:40 am
شكرا على مشاركتنا تجربتك الرائعة
ونتمنى المزيد
November 28th, 2008 at 5:14 am
اشكرك جدا على التدوينة الرائعة
حقيقة احب هذا النوع من التدوينات التي تحكي عن واقع ويوميات مثلك ومثل الاخ cssbit
ايضا الذي دخلت من مدونته على هذا الموضوع
شكرا لكما :)
November 30th, 2008 at 5:19 am
لقد حولتم العمل لمتعة!
استفدت الكثير من حياتك اليومية، شكرا :)