مشروع التطبيق متأخر: كيف تقيس حجم التأخر الحقيقي وتقرر
تجاوز مشروع تطبيقك موعده، وكل أسبوع تسمع «قاربنا على الانتهاء». هذا الدليل لصاحب المشروع ومدير المنتج: كيف تقيس ما اكتمل فعلًا بأدلة تجربها بنفسك، وتحسب الموعد الواقعي، وتقرر بين تقليص النطاق وتعزيز الفريق وإعادة الجدولة وتغيير المزود.
حين يتأخر مشروع التطبيق فلا تسأل «كم بقي؟»، لأن الجواب سيكون نسبة مئوية لا يمكن فحصها. قِس التأخر بنفسك: اكتب رحلات المستخدم المتفق عليها، وجرّب كل رحلة على آخر نسخة تجريبية مثبتة على جهازك، وعُدّ ما اجتاز معايير القبول فعلًا. ثم احسب كم رحلة تُقبل في كل دورة عمل خلال الدورات الأخيرة، واقسم المتبقي على هذا المعدل؛ الناتج هو موعدك الواقعي. بعد ذلك حدد سبب التأخر ومن يملكه، ثم اختر التصحيح: تقليص النطاق، أو تعزيز الفريق، أو إعادة جدولة ببوابات، أو تغيير المزود بعد تقييم مستقل.
تأخر مشروع تطبيق عن موعده لا يعني بالضرورة أنه فشل. لكن المشكلة الحقيقية تبدأ حين لا تعرف حجم التأخر: كل أسبوع تسمع «قاربنا على الانتهاء»، وكل موعد جديد يُؤجل مرة أخرى، ولا تملك طريقة تحكم بها إن كان المتبقي أسبوعين أو ستة أشهر. هذه المقالة دليل تشخيص لمشروع ما زال فريق التطوير يعمل عليه، لكنه تجاوز موعده: كيف تقيس ما اكتمل بأدلة، وكيف تحسب الموعد الواقعي، وكيف تفرّق بين تأخر يمكن تصحيحه مع المزود نفسه وتأخر يستدعي قرارًا أكبر.
لماذا لا تخبرك نسبة الإنجاز بشيء؟
«أنجزنا خمسة وثمانين بالمئة» جملة مريحة، لكنها لا تجيب عن سؤالك. فهي في الغالب تقيس الجهد المبذول أو عدد الشاشات المبرمجة، لا ما يستطيع المستخدم فعله. والمشروع قد يقف عند هذه النسبة شهورًا لثلاثة أسباب:
- الجزء الأخير هو الأثقل: ربط الدفع، وحالات الاستثناء، والصلاحيات، والتكامل مع الأنظمة الأخرى، والاختبار على الأجهزة، والنشر في المتاجر. هذه الأعمال لا تظهر في العرض التوضيحي، وتأتي عادة بعد أن تبدو الواجهات «جاهزة».
- المقام يتغير: كل ميزة تُضاف أثناء العمل تكبر المشروع، فتبقى النسبة ثابتة وإن زاد المنجز.
- لا أحد يعرّف «منجز»: شاشة تعمل على جهاز المطور ببيانات تجريبية تُحسب منجزة في تقرير، وغير منجزة في يد فريقك.
لهذا يبدأ التشخيص بتغيير وحدة القياس: من «نسبة» يقدّرها المزود إلى «رحلة» تجربها أنت. وإن كان مشروعك متوقفًا تمامًا لا متأخرًا، فمقالة تكلفة استكمال تطبيق غير مكتمل تقيس اكتمال كل ميزة من زاوية التكلفة، وهذه المقالة تقيسه من زاوية الموعد والقرار.
ما الذي يُعد دليلًا على الإنجاز وما لا يُعد؟
قبل أن تعدّ شيئًا، اتفق مع نفسك على نوع الدليل الذي تقبله. هذا الجدول يرتب ما يُعرض عليك عادة من الأضعف إلى الأقوى:
| ما يُعرض عليك | ما يثبته | ما لا يثبته |
|---|---|---|
| تقرير بنسبة إنجاز | لا شيء يمكن فحصه | أي رحلة تعمل فعلًا |
| صور شاشات أو ملف تصميم | أن التصميم موجود | أن الشاشة مبرمجة أو مرتبطة بالخادم |
| فيديو أو عرض على جهاز المطور | أن المسار الأساسي يعمل في ظروف يختارها المطور | أنه يعمل على جهازك، ومع بيانات حقيقية، وفي بيئة غير بيئة المطور |
| مهام مغلقة في لوحة المهام | أن الفريق يعمل ويغلق مهامًا | أن المهام المغلقة تكوّن رحلة كاملة يقبلها المستخدم |
| نسخة تجريبية مثبتة على جهازك (TestFlight أو الاختبار الداخلي في Google Play) | أن التطبيق يُبنى ويُوزع، وأن ما فيه يعمل خارج جهاز المطور | أن الرحلة تعالج الاستثناءات وتجتاز القبول |
| رحلة اجتازت معايير القبول بيد فريقك على بيئة الاختبار | أن هذا الجزء منجز بالمعنى الذي ستدفع مقابله | جاهزية الإنتاج كاملة (الحسابات والنشر والمراقبة) |
القاعدة العملية: لا يُحسب في القياس إلا الصفّان الأخيران. كل ما عداهما مؤشر على النشاط، لا على الإنجاز. وإن لم يكن لديك وصول إلى نسخة تجريبية أو إلى المستودع أصلًا، فهذه أول نتيجة في تشخيصك قبل أي عدّ.
كيف تقيس تأخر مشروع تطبيق بنفسك في أسبوع
لا تحتاج إلى خبرة برمجية لهذا القياس، بل إلى وثيقة النطاق أو العقد، وجهاز أو جهازين، وموظف يعرف العمل. نفّذه على خمس خطوات:
- حوّل النطاق إلى رحلات: اكتب كل ما يجب أن يستطيع كل مستخدم فعله، بصيغة «العميل يحجز موعدًا ويدفع العربون» لا «شاشة الحجز». رحلة واحدة قد تمر بخمس شاشات، وشاشة واحدة قد تخدم ثلاث رحلات.
- أضف ما ليس رحلة لكنه شرط للإطلاق: لوحة التحكم الأساسية، والإشعارات، والنشر بحسابات منشأتك، وبيئة الإنتاج. هذه بنود تُعدّ مثل الرحلات.
- جرّب كل بند على آخر نسخة تجريبية: صنّفه في واحدة من أربع خانات: لم يبدأ، أو قيد العمل ولا يظهر في النسخة، أو يظهر ويعمل في مساره الأساسي، أو مقبول (اجتاز المعايير المكتوبة بما فيها الاستثناءات). إن لم توجد معايير قبول مكتوبة، فاكتب لكل رحلة ثلاثة شروط تختبرها، كما تشرح مقالة معايير القبول في مشروع التطبيق.
- ارجع إلى الوراء: من تاريخ النسخ السابقة وتقارير الدورات، احسب كم بندًا انتقل إلى خانة «مقبول» في كل دورة من آخر ثلاث إلى خمس دورات. هذا هو معدل الإنجاز الفعلي، وهو أصدق من أي خطة.
- احسب الموعد الواقعي: البنود غير المقبولة ÷ المعدل الفعلي = عدد الدورات المتبقية. ثم أضف ما يُكتشف عادة أثناء العمل، لأن النطاق نادرًا ما يبقى ثابتًا.
مثال افتراضي للتوضيح تطبيق حجز لمركز تدريب، نطاقه 36 بندًا (30 رحلة و6 شروط إطلاق). الموعد الأصلي انقضى، والمزود يقول «بقي شهر». بعد التجربة على النسخة التجريبية: 13 بندًا مقبولًا، و9 تعمل في المسار الأساسي فقط، و8 قيد العمل، و6 لم تبدأ. المقبول في آخر أربع دورات (كل دورة أسبوعان): 3 ثم 2 ثم 1 ثم 2، أي بمعدل 2 لكل دورة. المتبقي 23 بندًا ÷ 2 = نحو 12 دورة، أي قرابة 24 أسبوعًا بالإيقاع الحالي، لا أربعة أسابيع. وإن أضيفت أثناء العمل رحلة جديدة كل دورتين تقريبًا، كما حدث سابقًا في المشروع نفسه، فالمعدل الصافي أقل، والموعد أبعد.
البنود التي «تعمل في المسار الأساسي فقط» ليست قريبة من الاكتمال كما تبدو. معالجة الإلغاء والفشل والصلاحيات والبيانات الخاطئة تأخذ غالبًا وقتًا يقارب بناء المسار نفسه، فلا تحسبها نصف منجزة.
أسباب تأخر مشروع التطبيق: من يملك كل سبب؟
الرقم وحده لا يكفي للقرار. تأخر سببه فريق صغير يُعالج بغير ما يُعالج به تأخر سببه قرارات معلّقة عندك. اقرأ الأدلة التي جمعتها في القياس، ثم اسأل: ما السبب الغالب، ومن يملك إزالته؟ كن صريحًا مع نفسك، فبعض التأخر يبدأ من جانب صاحب المشروع.
| السبب | علامته في الأدلة | من يملكه | ما يعالجه |
|---|---|---|---|
| نطاق يتضخم دون اعتماد | بنود في لوحة المهام لا توجد في وثيقة النطاق، ومعدل الإنجاز جيد لكن المتبقي لا ينقص | الطرفان | تجميد النطاق، وتمرير كل إضافة كطلب تغيير مقدّر ومعتمد |
| قرارات ومحتوى ينتظرونك | مهام متوقفة بعبارة «بانتظار العميل»: اعتماد تصميم، أسعار، نصوص، حساب بوابة دفع أو حساب مطور | صاحب المشروع | مسؤول قرار واحد من جانبك، ومهلة رد مكتوبة لكل طلب |
| تكامل خارجي معقد | رحلات الدفع أو الربط بالأنظمة عالقة دورات متتالية | مشترك مع الجهة الأخرى | فصل التكامل عن باقي العمل، وحسم الوصول والتوثيق مع الجهة الأخرى |
| فريق أصغر من المتفق عليه | أسماء قليلة في سجل المستودع، ونشاط متقطع، وتأجيل الاجتماعات | المزود | التزام مكتوب بالفريق وساعاته، أو مراجعة نموذج التعاقد |
| دين تقني يبطئ كل تعديل | بنود مقبولة تعود فتفشل، وكل نسخة تكسر ما كان يعمل | المزود غالبًا | دورة تثبيت واختبارات للمسارات الحرجة قبل أي ميزة جديدة |
| تقدير أولي غير واقعي | المعدل ثابت منذ البداية لكنه لم يكن يكفي للموعد أصلًا | الطرفان | إعادة تقدير على الرحلات المتبقية وخطة جديدة معلنة الافتراضات |
انتبه إلى أن السببين الأولين تحديدًا يكثران في المشاريع التي لم تُكتب فيها طريقة لإدارة التغيير. مقالة طلبات التغيير في مشروع التطبيق تفصل كيف تُقدَّر الإضافة وتُعتمد قبل أن تدخل الجدول.
أربعة خيارات لتصحيح المسار وما يشترطه كل منها
بعد أن تعرف حجم التأخر وسببه، لديك أربعة خيارات، ويمكن الجمع بين أكثر من خيار. لكل منها شرط إن لم يتحقق صار الخيار مضيعة للوقت.
1. تقليص النطاق للإصدار الأول
أسرع خيار أثرًا وأقلها تكلفة. تنقل البنود غير الضرورية للإطلاق إلى إصدار لاحق، فيقل المتبقي دون أن يتغير الفريق. ينفع حين يكون جزء من المتبقي «جيدًا أن يوجد» لا شرطًا للتشغيل. لا ينفع حين يكون السبب دينًا تقنيًا أو فريقًا غائبًا، لأن البنود الأساسية نفسها ستتأخر. مقالة ترتيب أولويات مزايا النسخة الأولى تعطيك طريقة للفرز.
2. تعزيز الفريق
يبدو الحل البديهي، لكنه أكثرها خداعًا. كل مطور جديد يحتاج وقتًا ليفهم الكود، ويأخذ من وقت الفريق القائم أثناء ذلك، فيتباطأ العمل قبل أن يتسارع. ينفع حين يكون العمل المتبقي قابلًا للتقسيم (تطبيق ولوحة تحكم وخادم يعمل عليها أشخاص مختلفون)، والكود منظمًا ومفهومًا. لا ينفع حين يكون السبب قرارات معلقة أو كودًا لا يفهمه إلا كاتبه.
3. إعادة الجدولة ببوابات قبول
تقبل موعدًا جديدًا مبنيًا على المعدل الفعلي، لكن بشرط أن يُقسّم إلى محطات قصيرة لكل منها بنود محددة تُقبل على النسخة التجريبية، وأن تُربط الدفعات المتبقية بهذه المحطات. ينفع حين يكون المزود ملتزمًا والسبب تقديرًا متفائلًا أو عوائق زالت. لا ينفع حين تكون المواعيد السابقة قد أُجلت مرارًا دون تغيير في طريقة العمل؛ عندها يصبح الموعد الجديد تأجيلًا آخر.
4. تغيير المزود
الخيار الأغلى والأكثر مخاطرة، لأن الجهة الجديدة تحتاج إلى وقت للفهم والاستلام قبل أن تنتج. ينفع حين يثبت القياس أن المعدل لن يتحسن مع المزود الحالي، أو حين يرفض الشفافية (لا نسخ تجريبية ولا وصول إلى المستودع). لا يُتخذ قبل تأمين حساباتك وتقييم مستقل للكود. تفاصيل الانتقال المنظم في مقالة نقل مشروع التطبيق من شركة إلى أخرى.
- لاأمّن الحسابات والمستودع أولًا، واطلب تقييمًا مستقلًا قبل أي قرار آخر
- نعمهل تعود بنود مقبولة فتفشل في النسخ التالية؟
- نعمدورة تثبيت واختبارات قبل أي ميزة، وتقييم للكود إن لم يتحسن الوضع
- لاهل السبب الغالب نطاق زائد أو قرارات معلقة؟
- نعمقلّص النطاق وعيّن مسؤول قرار، ثم أعد الجدولة ببوابات
- لاعزز الفريق إن كان العمل قابلًا للتقسيم، أو أعد الجدولة على المعدل الفعلي
- نعم
- نعم
متى تحتاج إلى تقييم مستقل للمشروع المتأخر؟
قياسك للرحلات يخبرك بما يعمل، لكنه لا يخبرك بحالة ما تحت الواجهة: جودة الكود، وقاعدة البيانات، والأمن، وهل يحتمل البناء عليه. اطلب رأيًا مستقلًا حين ترى واحدة أو أكثر من هذه العلامات:
- مرّت دورتان أو أكثر دون نسخة تجريبية جديدة، أو تُرسل النسخ لكنها لا تتغير.
- التقارير تقول شيئًا والنسخة التجريبية تقول شيئًا آخر.
- بنود كانت مقبولة تتعطل في كل نسخة جديدة.
- المزود يقترح إعادة كتابة أجزاء كبيرة، أو يطلب ميزانية إضافية لم يكن يتوقعها.
- أنت على وشك دفع دفعة كبيرة، أو توقيع موعد جديد، أو تغيير المزود.
خدمة مراجعة الكود وتدقيق المعمارية مصممة لهذه اللحظة: تقرير بملاحظات مرتبة بحسب الخطورة، مع ملخص لصاحب القرار، وتقدير لمعالجة كل مجموعة ملاحظات، وتوصية بالمسار (استمرار، أو معالجة ثم استمرار، أو إعادة تطوير أجزاء). والتقرير ملكك، يمكنك مشاركته مع الفريق الحالي نفسه. وحين يكون التأخر قد تحول إلى تعثر كامل، تبدأ صفحة استلام مشروع برمجي متعثر من التقييم أيضًا، ومن حالاتها مشروع «قيل إنه تسعون بالمئة منجز»، فيُقاس الإنجاز مقابل المتطلبات فعليًا وتُكتب النسبة الحقيقية بأدلتها.
أخطاء شائعة حين يتأخر المشروع
- قبول موعد جديد دون سؤال «ما الذي تغير؟»: إن كان الفريق نفسه والطريقة نفسها والمعدل نفسه، فالموعد الجديد سيتأخر بالقدر نفسه تقريبًا.
- دفع الدفعة التالية على نسبة إنجاز: الدفع مقابل تقرير يفقدك أقوى أداة لديك. اربط ما تبقى من دفعات ببنود مقبولة على النسخة التجريبية.
- إضافة مزايا لتعويض التأخر: بعض أصحاب المشاريع يقولون «ما دمنا تأخرنا فلنضف كذا». كل إضافة تبعد الموعد أكثر.
- تغيير المزود في لحظة غضب: قبل تأمين الحسابات وتقييم الكود، قد تنتقل من تأخر إلى توقف كامل.
- تجاهل ما يملكه جانبك من أسباب: إن كانت ثلث المهام «بانتظار العميل»، فتغيير المزود لن يحل شيئًا.
- الاكتفاء بالاجتماعات: العرض في الاجتماع يتحكم فيه من يعرض. النسخة المثبتة على جهازك لا يتحكم فيها أحد.
ما تطلبه من شركة التطوير الآن، كتابيًا
أرسل هذه الطلبات إلى المزود الحالي في رسالة واحدة، واعتبر طريقة الرد جزءًا من التشخيص. المزود الجاد يرحب بها لأنها تحميه أيضًا من تقدير لا يُصدَّق.
- نسخة تجريبية حالية على TestFlight أو الاختبار الداخلي في Google Play، ثم نسخة في نهاية كل دورة.
- وصول قراءة إلى المستودع ولوحة المهام، إن لم يكن متاحًا.
- قائمة البنود المتبقية بحالتها، مطابقة لوثيقة النطاق لا لتقسيمهم الداخلي.
- تفسير مكتوب لأسباب التأخر، مع فصل ما يعود إليهم عما يعود إلى منشأتك أو إلى جهات خارجية.
- قائمة بكل ما ينتظر قرارًا أو محتوى أو حسابًا من جانبك، بتاريخ طلبه.
- أسماء أعضاء الفريق العاملين على المشروع فعلًا وأدوارهم.
- خطة للمتبقي مقسمة إلى محطات قصيرة، ولكل محطة بنود تُقبل على النسخة التجريبية.
يمكنك صياغة الطلب هكذا:
«لنتفق على الموعد الجديد، نحتاج إلى أساس نقيس عليه معًا: نسخة تجريبية حالية، وقائمة البنود المتبقية مطابقة لوثيقة النطاق بحالة كل بند، وتفسير لأسباب التأخر يفصل ما يعود إليكم وما يعود إلينا. وسنربط الدفعات المتبقية بالبنود التي تُقبل على النسخة التجريبية في كل محطة.»
هذه الطلبات ليست غريبة على طريقة عمل منظمة. في منهجية العمل التي نعمل بها، يرى العميل نسخة تجريبية في نهاية كل دورة، ويستلم تقريرًا أسبوعيًا مكتوبًا بما أُنجز وما التالي وما يحتاج إلى قراره، ويملك وصولًا دائمًا إلى المستودع ولوحة المهام. اطلب المستوى نفسه من الشفافية من أي مزود.
ما تجهزه قبل التواصل مع جهة تقييم أو مزود جديد
سواء قررت تقييمًا مستقلًا أو استشارة ثانية فقط، هذه المواد تختصر أسابيع من الأسئلة وتجعل الرأي مبنيًا على أدلة:
- العقد ووثيقة النطاق الأصلية، وأي ملحقات أو طلبات تغيير معتمدة.
- جدول القياس الذي أعددته: البنود وحالة كل منها ومعدل القبول في الدورات الأخيرة.
- آخر نسخة تجريبية وطريقة الوصول إليها.
- ما لديك من وصول: المستودع، والخوادم، وحسابات المتاجر، والنطاق، وبوابة الدفع، ولو كان جزئيًا.
- التقارير الدورية السابقة ومواعيد التسليم التي أُعلنت ثم أُجلت.
- قائمة المشكلات المعروفة من فريقك أو من المستخدمين إن كان التطبيق منشورًا.
- الموعد الذي يهمك فعلًا وسببه (موسم، أو التزام مع جهة، أو حملة)، وما يمكن تأجيله إلى ما بعده.
إن أردت مناقشة الوضع قبل أي التزام، يمكنك حجز اجتماع تقني واختيار «مشروع متعثر» موضوعًا له، ومعك هذه المواد.
الخلاصة: قرّر على المعدل الفعلي لا على الوعد
التأخر في حد ذاته ليس الخطر؛ الخطر أن تتخذ قراراتك على أرقام لا تستطيع فحصها. حين تقيس الإنجاز برحلات مقبولة على نسخة مثبتة على جهازك، وتحسب معدل الإنجاز من الدورات الأخيرة، يتحول سؤال «كم بقي؟» إلى حساب بسيط. وحين تعرف السبب ومن يملكه، يتضح الخيار: تقليص النطاق إن كان المتبقي أكبر من اللازم، أو تعزيز الفريق إن كان العمل قابلًا للتقسيم، أو جدول جديد ببوابات قبول إن كان المزود ملتزمًا، أو تقييم مستقل ثم قرار أكبر إن كانت الأدلة غائبة أو متناقضة.
إن كان مشروعك متأخرًا ولا تعرف إلى أي حد، ابدأ بطلب تقييم حالة المشروع: نحدد نطاق التقييم ومدته قبل البدء، ونسلمك تقريرًا بأدلة من الكود والبيئات تقرر على أساسه، سواء استمررت مع مزودك الحالي أو مع غيره.
أسئلة شائعة
اطلب نسخة تجريبية مثبتة على جهازك، وجرّب عليها رحلات المستخدم المكتوبة في النطاق واحدة واحدة. ما يجتاز معايير القبول بيد فريقك هو المنجز فعلًا، وما يعمل في المسار الأساسي فقط أو يظهر في عرض على جهاز المطور لا يُحسب بعد.
ليس دائمًا. المطور الجديد يحتاج وقتًا لفهم الكود ويأخذ من وقت الفريق القائم، فيتباطأ العمل قبل أن يتسارع. التعزيز ينفع حين يكون العمل المتبقي قابلًا للتقسيم والكود منظمًا، ولا ينفع حين يكون السبب قرارات معلقة أو كودًا لا يفهمه إلا كاتبه.
إيقاف الدفع كليًا قد يوقف العمل ويحول التأخر إلى خلاف. الأنفع أن تعيد ربط الدفعات المتبقية ببنود محددة تُقبل على النسخة التجريبية في محطات قصيرة، باتفاق مكتوب. وراجع شروط عقدك، فهذه توعية تجارية لا استشارة قانونية.
حين يثبت القياس أن معدل الإنجاز لا يتحسن رغم تغيير الخطة، أو حين يرفض المزود إتاحة النسخ التجريبية والمستودع. لكن لا تنتقل قبل تأمين الحسابات باسم منشأتك وتقييم مستقل للكود، لأن الجهة الجديدة تحتاج وقتًا للاستلام قبل أن تنتج.
نعم، وهذا شائع. اعتمادات التصميم المتأخرة، والمحتوى والأسعار التي لم تُرسل، وحسابات بوابة الدفع أو حساب المطور التي لم تُفتح، كلها توقف العمل. اطلب من المزود قائمة بما ينتظر قرارك بتاريخ طلبه، وعيّن مسؤول قرار واحدًا من جانبك.
خدمات وصفحات مرتبطة
اقرأ أيضًا
اعرف أين يقف مشروعك المتأخر فعلًا
أرسل ما لديك من العقد والنطاق والوصول، ونقترح تقييمًا محدد النطاق ينتهي بتقرير بأدلة من الكود والبيئات وتوصية بالمسار.