استخدام قصص المستخدم للوظائف الآلية أو المجدولة أو التفاعلية

StackOverflow https://stackoverflow.com/questions/3928046

  •  30-09-2019
  •  | 
  •  

سؤال

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

على وجه الخصوص ، فإن الجوانب التي تهمني حول كتابة قصة مستخدم للوظائف الآلية أو المجدولة أو التفاعلية هي من منظور من منظورها؟ بالنظر إلى أننا نستخدم تنسيق قصة مثل "كدور] ، أريد [وظيفة] بحيث [الغرض] ، ما هو الدور في جزء "كدور" من القصة ، وما هو الغرض في جزء "حتى الغرض] من القصة؟ عادة ما تكون الوظيفة واضحة بما فيه الكفاية ولكن الدور والغرض يبدو نسبيًا بعض الشيء. على سبيل المثال ، يمكنني استخدام النظام كنقطة مرجعية لي وكتابة شيء مثل "كنظام/وكيل الوفاء بالطلب ، أريد أن أكون قادرًا على سحب طلب من قائمة انتظار الوفاء ، وإعداد نموذج أمر التعبئة ، وإرساله إلى مركز معالجة الطلبات بحيث يمكن الوفاء بالطلب ". أو بدلاً من ذلك ، يمكنني أن أنظر إلى الأشياء من وجهة نظر العمل وكتابة شيء مثل "بصفتي متاحًا للطلب ، أريد أن أكون قادرًا على معالجة الطلبات التي يتم إدخالها من قبل العملاء حتى أتمكن من الوفاء بمسؤوليتي تجاه عملائي وإعطاء لهم ما يريدون "(أو شيء من هذا القبيل على هذه الخطوط). ومع ذلك ، يمكنني أيضًا كتابة هذا من منظور العميل وأقول شيئًا مثل "كعميل ، أريد أن يتم معالجته/الوفاء به حتى أتمكن من تلقي الأشياء التي أريدها".

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

هل كانت مفيدة؟

المحلول

قد يساعد ذلك في الابتعاد عن قالب قصة المستخدم التقليدي ونحو التنسيق الذي يركز على أصحاب المصلحة لحقن الميزات (BDD في مساحة التحليل):

In order to <achieve a goal>
As <the stakeholder>
I want <someone to do something for me>.

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

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

In order to make sales
As the Sales Head
I want customers to be notified of any errors with their order.

In order to make sales
As the Sales Head
I want customers' orders to be fulfilled within 24 hours.

يمكنك أن ترى من هذا أن الأهداف تصبح عالية المستوى ، لذلك إذا كان لديك برنامج يلعب في تلك الأهداف ، فيمكنك تقسيمها:

In order to fulfil customer's orders within 24 hours...

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

Given a valid order in the queue
When the order fulfilment system runs
Then it should send a fill order form to the processing centre
When the processing centre responds successfully
Then the successful fulfillment should be logged
And the customer should be notified by email.

Given an invalid order in the queue
When the order fulfilment system runs
Then it should send a fill order form to the processing centre
When the processing centre responds with an error
Then the error should be logged
And the customer should be notified of the problem by email.

على سبيل المثال.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top