My Authors
Read all threads
تابعت النقاش حول منهجية ال #Agile اللي بدأها الدكتور مازن @mznmel وخلوني ألخص وجهة نظري.
١- الضعف التقني (الشديد أحيانًا) لدى الكثير من فرق البرمجة في السعودية والقفز السريع للادارة هربًا من البرمجة مشكلة كبيرة. شخصيا غير مقتنع بمدير منتج برمجي ما اشتغل برمجة ٥-١٠ سنوات.
ما أعرف صراحة كيف شخص يبي يصير مدير منتج برمجي او يصير scrum master وهو لم يعمل قبل كمبرمج. أحد متطلبات التوظيف ك product manager في قوقل مثلا هي ان تكون software engineer بخبرة طويلة.
٢- هذا الضعف يؤدي الى عدم فهم عمل المبرمجين وسوء (او المبالغة ب) استخدام منهجية ال #Agile (كيف ومتى تستخدم🤔). ما يهمني لو تقرا الف كتاب عن الموضوع. اذا ما اشتغلت بيدك برمجة ضمن فريق لسنوات وحسيت بمشاكل ال delivery وعشتها راح اعتبرك غير فاهم لل #agile بغض النظر عن شهاداتك.
٣- العمل على أي مشروع (أو منتج) في الدنيا يحتاج ادارة اذا كان فيه فريق عمل وتصعب عملية الادارة كل ما زاد حجم الفريق. اذا الفريق عددهم ٣ او ٤ ريح بالك ما تحتاج ادارة ولا مدير (قال صفو صفين قال حنا اثنين 🤣). اذا أكثر مهم يكون فيه ادارة للعمل.
٤- منهجية ال #agile قائمة على التطوير والتحسين من خلال دورات تطويرية او iterations بحيث كل دورة تطلع نسخة جديدة من المنتج بدل ما تسوي كل شي مرة وحدة. هذي مفعولها سحري في البزنس. وميزة البرامج انه سهل تغييرها وتحسينها وتطويرها بشكل تزايدي عكس مشاريع البناء مثلا.
ليس هذا فقط ولكن المنهجية قائمة على التعاون بين الفريق والابتعاد قدر الإمكان عن التعقيدات الادارية والإجرائية والتعاقدية. تقسيم التطوير على دورات هو الاهم بالنسبة لي والأسهل تطبيقًا وتنفيذًا (كما سأبين لاحقًا)
٥- لاحظ في ٣ تكلمنا عن ادارة فريق وفي ٤ تكلمنا عن ادارة تطوير. فيه نصائح عديدة لكيفية تشكيل الفريق وادارته عشان يسهل عليك الإنتاج عبر دورات تطوير iterations وهذي تتكلم عنها #scrum كثير وفيها تصير اللخبطة. ملاحظتي من تجربة انه كل ما كبر الفريق وكبرت المنظمة صعب تطبيق ال agile
٦- عيب منهجية ال #agile الوحيد انه ما فيه احسن منها حاليا لمعالجة عدد كبير من المشاكل في ادارة مشاريع تطوير البرمجيات. كما انها ليست الأفضل دائما حيث ان ال #waterfall افضل في بعض الحالات (أنظمة طبية، عسكرية، أنظمة لجهة ضخمة ومعقدة اداريا ... الخ).
٧- هناك أسباب أدت لابتكار منهجية ال #agile اذا ما فهمتها وخليتها حاضرة وقدام عيونك طول الوقت ما راح تقدر تطبق المنهجية بشكل صحيح. بمعنى آخر: لازم تصير فاهم مو حافظ. ايش الأسباب هذي؟
بشكل عام تتلخص الأسباب في عملية ادارة مخاطر المشروع بطريقة أفضل فخلوني اذكر أهمها.
السبب الاول: تقسيم عملية التطوير إلى أجزاء صغيرة (غالبا اللي يقدر الفريق يسويه في اسبوعين) عشان يكون التطوير سهل واختبار الجودة سهل واذا طلعت الأخطاء والبقز تفهم وش القصة وتقدر تصححها بسهولة. دايم اتخانق مع المطورين على الموضوع هذا واعتبره خط أحمر. لازم نسخة كل اسبوعين (او ثلاثة)
طيب هل فيه حالات نتخطى الخط الأحمر؟ نعم بس نادر ونسويها وحنا واثقين لاننا فاهمين وخبرتنا الطويلة في البرمجة تقول لنا توكلوا على الله ما عندكم حل ثاني. المصيبة اذا جاك واحد ما كتب كود في حياته وبدا يحوس الفريق في الاشياء هذي.
حالات تجاوز الخط الأحمر تكثر كل ما صار السوفتوير ضخم وقديم ومعمارية محيوسة ومشربكة.
السبب الثاني: مهم صاحب العمل ومالك المنتج product owner (ال big boss) يشوف المنتج بشكل مستمر ويعطيك رأيه. حتى لو موقع عقد طوله خمسة كيلو، ودك تقلل المشاكل قدر الإمكان 😅. لنفرض ان العقد فيه مجموعة متطلبات لازم تخلص خلال ٦ شهور. ما يضر لو كل اسبوعين توري المالك (او تشوفها انت 😁)
مو معناها كل ما طلب تعديل تقول أبشر؟ لكن الفكرة انك تحاول تعالج المشاكل بأسرع وقت وبالقدر اللي تقدر عليه وبالتالي تقلل مخاطر فشل المشروع. طبعًا لما تستخدم high fidelity wireframes and prototypes قبل التطوير راح تساعدك كثير وتقلل التكلفة
السبب الثالث: لو خلصت ال ٦ شهور والمطلوب ما خلص على الأقل يكون عندك نسخة شغالة حتى لو ناقصة مو تطلع صفر اليدين. هذا مهم خصوصًا للشركات الناشئة اللي يخطون في تقدير الوقت اللازم لتطوير خدمتهم وتخلص ميزانيتهم قبل إنهاء الخدمة كاملة.
دائما خل الأسباب هذي قدامك واسأل نفسك كل اسبوعين او شهر كيف احقق الفوائد اللي ذكرناها فوق؟
كيف ومتى تطبق ال #agile؟
كل ما صغر الفريق وصغرت المنظمة كل ما صار التطبيق اكثر نجاحا. اذا انت في منظمة كبيرة (شركة كبيرة او حكومة) خلك حذر جدا جدا جدا (جدا 😰). طبق ال #agile داخليًا بينك وبين فريقك في مرحلة التطوير (بعد جمع المتطلبات) وطبق #waterfall مع الإدارات المالكة للنظام.
يعني حط خطة بمايكروسوفت بروجيكت طولها خمسة متر وخل مدير مكتب ادارة المشاريع يناقز من الوناسة ولكن داخليا قسم مرحلة التطوير في دورات iterations وحاول كل اسبوعين تطلع بنسخة. طبعًا اكيد يبي لك شهر او شهرين جمع متطلبات قبل ما تبدا مرحلة التطوير (دورات تطوير النظام او المنتج).
احرص قدر الإمكان على اتباع ال #TDD وال #BDD. صدقني راح يسهل عليك تقسم التطوير على دورات لما تستخدم ال #BDD لانها ترغمك على تقسيم العمل لفيتشرز وتسهل عليك الكوالتي. كيف؟ سو لك مشروعين برمجة بيدك وراح تفهم 😉
أخيرا: دائما ما يكره مهندسوا البرمجيات الجوانب الادارية لكنها مهمة جدا. تذكر ان فيه ميزانية للمشروع اللي انت تشتغل عليه وانه لازم العائد المادي المطلوب يتحقق والا فمشروعك فاشششل مهما اتقنت الجانب التقني. صدقني لو احسن خوارزمية في العالم وأحسن معمارية تبقى الزبدة "الدراهم" 💸😍
Missing some Tweet in this thread? You can try to force a refresh.

Enjoying this thread?

Keep Current with معاذ الخلف M.Alkhalaf

Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!