كيفية شحن مشروع البرمجيات

تصوير علي يحيى على Unsplash

لقد قضيت آخر 14 عامًا في إنشاء البرامج وتشغيلها وإيقافها. خلال تلك الفترة ، كنت على الخطاف لعشرات تواريخ السفن. بعض فاتني. كثير أنا ضرب.

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

1. اختر تاريخ الشحن - لكن لا يتم إرفاقه به

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

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

2. تحديد ميزة قابلة للحياة الدنيا تعيين احتياجات المشروع الخاص بك لسفينة ناجحة

ما الذي يحتاجه جمهور مشروعك ليكون أفضل حالًا مما لو لم تشحن المشروع مطلقًا؟ ما هي أبسط مجموعة ميزات يمكنك تقديمها لإحداث تأثير؟

التوضيح من قبل هنريك كريسب

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

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

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

3. قم بإدراج جميع التبعيات التي يجب استيفائها لمجموعة الميزات الأقل جدوى

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

هل يمكنك ترخيص أو شراء أشياء بدلاً من بنائها بنفسك؟ يمكنك الاستفادة من البرمجيات مفتوحة المصدر بدلا من المتداول الحلول الخاصة بك؟ فكر في عدد الفرص المتاحة لإرضاء تبعياتك. ولكن تذكر أيضًا أنه لا يوجد غداء مجاني: لا يزال دمج الموارد الخارجية مكلفًا.

4. قم بتقدير كم من الوقت سيستغرق لإرضاء تبعياتك ، ثم اضربها

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

هذه هي الحياة في مجال البرمجيات.

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

ربما هذا يبدو مبالغا فيه. لكنه تنازل عن حقيقة أن أدمغتنا الضعيفة من اللحوم سيئة في تخزين وصياغة التعقيد الكلي لنظام البرمجيات. عند قيامك بالتخمين المبدئي ، فمن المحتمل أنك تتجاهل أكثر من نصف الصورة. السعر الذي يقتصر المنظور في التخمين النهائي الخاص بك.

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

لا تنسَ وقت اختبار مشروعك قبل الشحن. لا أستطيع أن أخبرك بالوقت الذي سيستغرقه ذلك ، لأن البيئات المختلفة بها قيود مختلفة. إذا كنت تشحن رمزًا محليًا للموافقة عليه في متجر تطبيقات iOS ، على سبيل المثال ، فأنت تريد إجراء اختبار أكثر شمولًا مما إذا كنت تقوم بشحن تطبيق ويب يمكنك تحديث الإرادة.

ستحتاج أيضًا إلى تخصيص وقت للميزانية لإجراء إصلاحات بناءً على ما تتعلمه في عملية ضمان الجودة.

5. إضافة ما يصل تقديرات الوقت الخاص بك ومقارنة الجدول الزمني لتاريخ سفينتك

إذا كنت محظوظًا جدًا ، فتقدير وقتك وتاريخ سفينتك يتماشيان تمامًا.

لكن من المحتمل أنك لست محظوظًا. أنت تعمل مع البرامج والمسرات البرمجية لإحباط تفاؤلنا. ماذا لو دفعت متطلباتك بعيدًا عن تاريخ الشحن؟

سيتم إغراء التعامل مع التقديرات. لا تفعل هذا. هناك سبب نقدره بالقطع ونضيف الأشياء بدلاً من العمل للخلف من تاريخ الشحن.

في هذه العملية ، إليك كل الأشياء التي درسناها بالترتيب من الأكثر واقعية إلى الأقل واقعية:

  1. تبعيات الميزات المطلوبة لدينا
  2. مجموعة ميزة الحد الأدنى قابلة للحياة
  3. الوقت تقديرات
  4. تاريخ السفينة

تاريخ السفينة هو أقل شيء حقيقي نتعامل معه! لا تدعها تقود السيارة.

ومع ذلك ، إذا كان يجب عليك مطلقًا معاملة تاريخ الشحن كقيد صعب ، فلديك خيارات. لا أحد منهم يشمل تطبيق التقديرات.

6. اتخاذ خيارات صعبة: تقليم نطاق أو نقل تاريخ السفينة

أنا أعلم. تريد المهر.

🗓

ولكن الآن أنت تعرف ما هي تكاليف المهر.

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

ربما أنت بخير نقل تاريخ السفينة. هذه هي المكالمة الصحيحة في بعض الأحيان.

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

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

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

ولكن ، دانيلو ، هذه ليست طريقة رشيقة / سكروم / منهجية شحن البضائع!

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

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

لكنك تحتاج إلى طريقة لفهم العلاقة بين التكاليف والنطاق والنتائج ، ولتوصيل هذه القيود عبر جميع الوظائف. هذا هو النهج الأساسي الذي استخدمته منذ فترة طويلة لذلك. آمل أن يكون مفيدًا في مغامراتك.

قراءة متعمقة:

1.0 من Rands: "شحن منتج 1.0 لن يقتلك ، ولكنه سيحاول".