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