7.Agile Planning – Agileافكار لتطبيق ال
من المفاهيم الغلط المتداولة عن الAgile اننا بنقبل التغيير علي طول و مش بنعمل planning و مفيش estimates في الاول . بس ده مش حقيقي ، في قيم الAgile اللي في الAgile Manifesto
ٍResponding to change over following a plan
يعني فيه خطة للعمل و لكن ازاي نتقبل التغيير اهم و قلنا اننا مع كل تغيير بنظبط الخطة ، دلوقتي هنتكلم ازاي بنحط الخطة دي و ازاي و امتي نغير فيها .
التخطيط في الAgile بيكون Highlevel للحاجات اللي معنديش ليها تفاصيل كفاية و كل ما تزيد التفاصيل كل ما نعمل خطة مفصلة و الحقيقة الموضوع بيكون ابسط بكتير من الطرق التانية اولا لان احنا مش بنحط خطة تفصيلية غير لفترة صغيرة و هي الIteration اللي شغالين عليها عشان التفاصيل واضحة فيها ، غير كده كل ما التفاصيل الواضحة تقل بنتجه للHigh level planning و بنكرر ده كل فترة مثلا بعد كل Iteration او لو حصل تغيير.
و طبعا لازم التخطيط يكون عملية بسيطة لاننا بنكررها كتير ، مينفعش تكون معقدة و تاخد وقت كتير لانها بتبقي outdated علي طول فكده هيبقي تضييع وقت و مجهود.
في التخطيط في الAgile بنعتمد علي الrelative estimation و هو اني اقارن الfeatures ببعض حسب حجمها و حسب تعقيدها و الوقت او الجهد اللي محتاجة تخلص فيه ، يعني مثلا لو في مثال الe-commerce نقدر نعتبر الSearch كبيرة و الPayment متوسطة و الLogin صغيرة و هكذا .
و طبعا ترتيب الاولويات مهم جدا عشان نعرف نحط خطة نخلص اهم الFeatures في الاول و نقدر نغير في الباقي .
و عندنا 4 مستويات من التخطيط ، اولا الRoadmapping و ده بيكون High level جدا و هو اننا نجيب ال Features اللي عندنا كلها و نحط الحجم بتاعها و اولويتها في التنفيذ و نحدد ايه اللي هيتعمل اول Release و ايه التانية و هكذا ، يعني مثلا لو رجعنا لمثال الe-commerce هنقول هنعمل الLogin /search /cash payment اول Release و ال Offers/ online payment /Prodcut comparison في التانية.
تاني مستوي هو الRelease planning و هو اننا بنمسك الfeatures الي اخترنا نعملها في الrelease و نكسرها لscenarios بتفاصيل اكتر يعني مثلا الLogin feature فيها Scenarios الLogin Successful و Login Failed و Logout و change password و الSearch Feature فيها Scenarios ال Search و Advanced Search و Filtering results.
و برده بنقارن الscenarios دي ببعضها و نديها sizes و برده نرتبها بالاولوية علي حسب اهميتها للعميل مع الناس بتوع الbusiness و بنقسم الRelease ل Iterations و نشوف بالتقريب نقدر نخلص الscenarios دي في كام Iteration او لو الوقت محدود نشوف ممكن نخلص ايه في الوقت ده ، و بعد كل Iteration بنغير في ال Release Plan علي حسب وضع المشروع و لو فيه حاجة اتغيرت من ناحية العميل او لو فيه تغيير في الاولويات.
ثالث مستوي هو الIteration Planning و هو اننا نحدد الScenarios اللي هنشتغل عليها الIteration الجاية و نكسرها بقي لTasks و نقدرها بالساعات و نشوف نقدر نخلص ايه من الScenarios دي في الIteration و ده بيتعمل في الIteration اللي احنا شغالين فيها بس و دي اول Level نستخدم فيه التقدير بالساعات عشان عندنا تفاصيل كفاية.
اخر مستوي بقي هو اننا كل يوم بنشوف هنعمل ايه و نراجع الIteration Plan و نشوف هنلحق نخلص الScenarios المطلوبة ازاي ولا هنغير في الخطة ازاي