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

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

لن تكون جميع الخطوات المذكورة أدناه مطلوبة لأي مهمة. فقط المهام الأكثر تعقيدًا قد تتطلب إكمالًا دقيقًا لجميع الخطوات التي ستتم مناقشتها في هذه المقالة.
من الممكن أن العديد من الأسئلة لا يمكن الإجابة عليها على أساس المتطلبات الصوتية فقط أو بسبب قصور تجربتك الشخصية.
قد تحتاج إلى التشاور مع المطورين الآخرين أو قائد الفريق أو مالك المنتج أو محلل الأعمال أو حتى الجدة! وربما مع كل منهم ، قبل أن تحل المشكلة!
ومع ذلك ، هذا أمر طبيعي. هذا يعني أنك ستجمع معلومات متباينة وتجمعها في وحدة واحدة - وبذلك يمكنك تحقيق أفضل نتيجة ممكنة!
أخيرًا ، التحذير الأخير: لا تبالغ في إضفاء الطابع الرسمي! أهم شيء هنا هو فهم المهمة بسرعة. لا حاجة إلى حواجز مصطنعة وشرائط حمراء! كل ما هو مطلوب هو خطة منهجية لحل مشكلة لا تفهمها حاليًا.
المرحلة الأولى: تحليل المشكلةفي هذه المرحلة ، نحاول فهم ما طُلب منك القيام به. حتى نحاول أن نقرر كيف سنفعل ذلك!
من المهم التقاط هذا الاختلاف. قد يكون من الخطر الانتقال إلى مهنة دون إدراك كل العواقب أو الأسوأ من ذلك عدم الفهم الكامل لما طُلب منك القيام به بالضبط.
نقوم بتصنيف المشكلةتصنيف مهمة يعني تحديد العمل الذي يجب القيام به لحلها. فيما يلي بعض الأمثلة على أنواع المهام:
- إصلاح الخلل
- ميزة جديدة
- تطبيق جديد
- مهمة البحث
- تحسين الأداء
تذكر أن قائمة الخيارات هذه لا تقتصر على.
في هذه الحالة ، يجب أن نقرر نوع العمل المتوقع منك. هذا مهم لأنه سيؤثر بشكل مباشر على نوع العمل الذي ستقوم به.
هذه المرحلة مهمة بشكل خاص مع المتطلبات الغامضة ، على سبيل المثال: "نحن بحاجة إلى طريقة لمسح ذاكرة التخزين المؤقت لعملائنا بطريقة أو بأخرى بعد تحديث الموقع."
فيما يلي بعض التفسيرات المحتملة لهذا المطلب.
- يجب عليك تنفيذ آلية معينة بسرعة لمسح ذاكرة التخزين المؤقت ، بحيث يتلقى العملاء دائمًا آخر التحديثات.
- من الضروري دراسة جميع طرق تخزين ذاكرة التخزين المؤقت للعملاء هذه وتحديد الخيار (الخيارات) الأفضل للتخلص من هذه ذاكرة التخزين المؤقت بعد كل تحديث للموقع.
- يجب أن تكون ذاكرة التخزين المؤقت للعملاء قد تم مسحها بالفعل ، ويطلب منك العثور على خطأ وإصلاحه يمنع ذلك.
في هذه المرحلة ، إذا لم تكن متأكدًا تمامًا من المقصود بالتفسير ، فأنت بحاجة إلى طلب توضيحات ، وعندها فقط استمر في العمل.
صياغة جوهر المشكلة في شكل بيان أو بيانين بسيطين.لخص المتطلبات المعقدة ، كما لو كانت الإجابة على السؤال "ما الذي تعمل عليه اليوم؟" قد لا يكون الأمر بهذه البساطة ، ولكن يجب أن تحاول تقليل جوهر المشكلة إلى جملة أو جملتين.
إذا فشل تلخيص المهمة بهذه الطريقة ، فقد يعني ذلك أنه يجب تقسيمها إلى عدة مهام فرعية. من حيث المبدأ ، تتحول هذه الخطوة إلى اختبار عباد الشمس ، مما يشير إلى ما إذا كنت قد تمكنت من تنظيم مهامك في شكل أجزاء صغيرة بما فيه الكفاية.
في ما يلي مثال جيد على هذا الملخص: "عند تحديث موقع ، نرفق رقمًا فريدًا للملفات ، حتى يفهم المتصفح أنه يجب أن يستخدم أحدث إصدار من الشفرة".
اجتازت هذه المهمة "اختبار عباد الشمس" للبساطة ، وربما لا يلزم تقسيمها إلى أجزاء أصغر.
وإليك مثال سيئ: "عند تحديث موقع ، نرفق رقمًا فريدًا للملفات ، حتى يفهم المتصفح أنه يجب أن يستخدم أحدث إصدار من الشفرة. يجب علينا أيضًا إرسال رسالة إلى CDN الخاصة بنا ، لإخطارها بهذه الطريقة عن الحاجة إلى تحديث الملفات. سيكون من الضروري أيضًا تصور أن ترسل تطبيقات iOS و Android تحديثًا إلى سوق التطبيقات. المزيد ... "
في هذه الحالة ، الاختبار هو بالتأكيد فشل. مطلوب الكثير من العمل ، وربما تحتاج كل مهمة إلى تحديد وتتبعها بشكل منفصل.
قم بتمييز التفاصيل المهمةالآن يجب عليك (في شكل حر ، والأكثر ملاءمة لك) إنشاء قائمة بالأشياء الرئيسية التي يجب القيام بها.
هذا ، مرة أخرى ، يجب أن يكون ضغطًا بسيطًا جدًا لكل مرحلة من المراحل الرئيسية.
هذا ليس دليل خطوة بخطوة أو دليل مفصل لاستكشاف الأخطاء وإصلاحها.
تذكر أنه أثناء متابعة تحليل المهمة الموكلة إليك. في هذه المرحلة ، أوصي بتدوين الملاحظات المكتوبة. أنا شخصياً أستخدم تطبيق Notes لهذا الغرض.
مهمة التخزين المؤقت الخاصة بنا بسيطة للغاية ، وربما ليس من الضروري تحديدها بهذه الطريقة. دعونا نلقي نظرة على مثال أكثر تعقيدًا في هذه الحالة.
مهمتنا التالية هي تحقيق فرصة جديدة: "يجب أن يتلقى كل مستخدم إعلانات موجهة لمنتجنا الداخلي. يجب أن يكون هذا الإعلان مخصصًا لاحتياجات المستخدم بناءً على البيانات التي نجمعها ".
من أجل عزل العناصر الرئيسية لهذه المهمة ، يجب أن نتخيل بوضوح ما يجب القيام به لتنفيذ كل عنصر.
- ستحتاج إعلاناتنا الحالية إلى التوزيع بطريقة ترتبط ببعض معلمات المستخدم المحددة.
- بالنسبة لقسم التسويق لدينا ، نحتاج إلى توفير طريقة تسمح لنا بربط الإعلانات الجديدة بقطعة واحدة أو أكثر من بيانات المستخدم (في هذه الحالة ، لا يجب على المسوقين برمجة أي شيء!)
- سيتعين على النظام تجميع معلمات المستخدم ذات الصلة في سياق إعلاناتنا.
- أخيرًا ، تحتاج إلى إنشاء نوع من النظام الذي سيتلقى معرف مستخدم وإعلانات صورية.
جمال هذه القوائم هو أنه يمكن الاتفاق عليها بسرعة مع الفريق أو الرئيس! لذا ، في هذا المثال ، يمكنك إظهار هذه القائمة لقائد فريقك ، وقرر أن هناك نقطة أخرى مهمة جدًا مفقودة من القائمة:
- يجب أن يكون المستخدمون قادرين على إخبارنا أنهم لم يعودوا يريدون رؤية إعلانات معينة.
بعد كل شيء ، في النهاية ، آخر شيء نريد إزعاجه هو مستخدمينا المفضلون! مع أخذ الوقت والتفكير في المهمة لبضع دقائق إضافية ، سوف ننقذ أنفسنا من ساعات وأيام من المشاكل في المستقبل. لذلك ، من المهم صياغة وتخطيط مهمة مهمة ، وعندئذ فقط انتقل إلى التعليمات البرمجية.
قبل المضي قدمًا ، أود الرد على انتقاداتك المحتملة.
ربما تعتقد: "في الأعمال التي يتم تسليمها بشكل طبيعي ، يجب القيام بهذا النوع من العمل قبل وضع المتطلبات على الطاولة للمطور" - وأنا أتفق معك بشدة!
ومع ذلك ، للأسف ، عالمنا غير كامل. في بعض الأحيان لا يتم وضع المتطلبات التي تقع على عاتق المطور بأي حال من الأحوال على الرفوف. لذلك ، يجب أن نبذل قصارى جهدنا لتقييم المتطلبات بشكل صحيح قبل الشروع في التنمية.
حدد المشكلة (المشكلات) التي تحاول حلها.أجب على السؤال: "لماذا يجب على أي شخص استخدام هذا؟" أو "ما هي المشكلة الحقيقية أو المتصورة التي أحاول إصلاحها في هذه الحالة؟"
اتمنى الاجابة واضحة في المثال الأول ، هنا ، الجواب: "سيرى المستخدمون دائمًا آخر التحديثات". في الحالة الثانية ، مع الإعلان ، "سيرى المستخدمون دائمًا الإشعارات ذات الصلة ، وليس تلك التي لا تهمهم".
يجب أن يكون استخدام كل من هذه الإجابات واضحًا! من خلال فهم أعمق للمهمة وأهدافها ، يمكنك اتخاذ قرارات أكثر منطقية واتخاذ مثل هذا التنفيذ الذي يلبي أهداف عملك بشكل صحيح. إذا كان من الممكن تحديد الحلول السيئة والمهام التي لا معنى لها ، فسيكون من الممكن عدم إضاعة الوقت والطاقة في عمليات البحث التي ، بحكم تعريفها ، لن تساعد في حل المشكلة.
المرحلة الثانية: تفسير المتطلبات وتقييمهافي هذه المرحلة ، يجب أن تتخيل بالفعل ما عليك فعله ولماذا.
بعد ذلك ، تحتاج إلى فهم تفاصيل ما ستفعله ، وكيف ستفعله ولماذا ستفعله بهذه الطريقة.
قم بتوضيح المصطلحات المهمة المتعلقة بمهمتك.
هذه الخطوة ربما تكون أكثر أهمية للمطور المبتدئ كجزء من فريق ، أو إذا كنت تعمل في شركة كبيرة. في كلتا الحالتين ، من المحتمل جدًا أن تجد عبارات غير مألوفة في المتطلبات.
قد تكون هذه مفاهيم الأعمال ، مثل أسماء المنتجات أو العملاء أو العمليات. قد تكون هناك مصطلحات تتعلق بالتطوير - على سبيل المثال ، أسماء الأدوات أو التطبيقات أو النماذج أو الخدمات أو المكتبات.
تحتاج إلى التأكد من أنك تفهم جميع المصطلحات المهمة بشكل واضح تمامًا ، حتى يمكنك التأكد من أنك تقوم بتنفيذ المهمة بشكل صحيح.
ربما كنت قد فهمت بالفعل أنك بحاجة إلى ابتكار طريقة للوصول إلى معلومات المستخدم المجمعة ، ولكن هل تفهم ما يعنيه "إضافتها إلى داو"؟
ربما تفهم أنك بحاجة إلى تنسيق بيانات الإعلان ، ولكن هل لديك أي فكرة عن ماهية "MADF" (ترميز خلاصات الأخبار الإعلانية)؟
أنا لا أفهم أحدهما أو الآخر.
هذا هو السبب في أنك بحاجة إلى عزل وتحديد جميع المصطلحات المهمة. الخلط بين التعريفات هو الطريقة الصحيحة لحل المشكلة بشكل غير صحيح.
قرر كيف يجب القيام بالمهمة.في هذه المرحلة ، يجب عليك بالفعل معرفة كيف سيتم تنفيذ المهمة. يمكن أن تختلف تفاصيل هذه العملية بشكل كبير اعتمادًا على مكان عملك والمهمة المحددة التي تم تكليفك بها.
في بعض الفرق ، لن يشرح لك أحد كيفية تنفيذ المتطلبات بالضبط ، بل سيقول ببساطة الوظيفة التي يجب الحصول عليها عند الإخراج.
في حالات أخرى ، سيتم تفصيل كل خطوة تخطوها.
على الأرجح ، سوف تصادف أنك في وضع متوسط.
إذا لم يزودك الفريق بالتعليمات ، فلن تتمكن في هذه المرحلة من فعل أي شيء تقريبًا. إذا تلقيت تعليمات ، فابدأ بالتعرف على المراحل التي يجب أن تمر بها.
تبدو هذه الخطوة طبيعية تمامًا ، ولكن من المهم الانتباه تمامًا إلى الترتيب الذي ننتقل إليه.
بطبيعة الحال ، نود أن نغرق في جميع تفاصيل المهمة في وقت واحد ودراستها حتى يصبح الهدف الذي حددناه واضحًا تمامًا بالنسبة لنا.
ومع ذلك ، نظرًا لأنك قد استغرقت الوقت الكافي لفهم المشكلة ، يجب أن يكون لديك الآن فكرة أوضح عن المشكلة بأكملها ، وتقييم الخطوات التي يجب اتخاذها لتحقيقها.
تحديد ما إذا كان يتم معالجة المهام.في هذه المرحلة ، تندمج مراحل التحليل والتفسير معًا. في مرحلة التحليل ، أنت تركز على صورة شاملة وأهداف واسعة النطاق - ماذا نفعل ولماذا.
في مرحلة التفسير ، ركز على التفاصيل - كيف نقوم بذلك.
المرحلة الثانية تسمى "التفسير والتقييم" ، لأنه يمكنك الآن الربط بين "كيف" و "ماذا ولماذا". يمكنك تفسير التفاصيل بناء على الصورة العامة. تقوم بتقييم التفاصيل وتحديد ما إذا تم حل المشكلة الأصلية.
اسأل نفسك: هل الخطوات التي تم إرشادي بها لأخذ النتيجة ، التي تم تحديدها كهدف نهائي للمهمة؟ هل النتيجة المخططة تحل المشكلة الأصلية؟
إذا كنت متأكدًا من أنه يمكن حل جميع المشاكل ، وأن التفاصيل ذات مغزى ، فيمكنك الوصول إلى العمل! خلاف ذلك ، من الضروري الانتقال إلى المرحلة الثالثة من أجل حل جميع أنواع الصراعات.
المرحلة الثالثة: نقترب من المشكلة بشكل نقديفي هذه المرحلة ، يجب أن تكون قادرًا على التأكيد بثقة على أنك تفهم كل من المهمة والحل. كل ما يبقى أن نرى ما إذا كان هذا القرار هو الصحيح.
لإنشاء منتج عالي الجودة ، يجب علينا جميعًا تحمل المسؤولية والتحدث إذا كانت بعض الأشياء خاطئة بشكل واضح.
من ناحية أخرى ، لن نقدم ادعاءات غير لائقة. لا يمكن للمرء أن يقول أن هناك خطأ ما ، لأنه "يبدو كذلك" أو ببساطة "لا يحب". يجب تقديم الحجج الملموسة والمصممة بشكل جيد.
لذا ، نلخص القواعد الأساسية للخلاف المختص
اعرف متى تعارض- الخلاف غير مقبول ، حتى اكتشفت المشكلة بدقة.
إن قول "هذا خطأ" ممكن فقط مع اليقين المطلق أنك تفهم ما تعارضه /
إذا لم تتمكن من صياغة مشكلة وحل مخطط لها بثقة ، فلا يمكنك الاختلاف. إذا لم تكن متأكدًا من أنك تفهم كل شيء بشكل صحيح ، فلا يمكنك الاختلاف. فقط من خلال التأكد من أنك تفهم المشكلة بأدق التفاصيل ، يمكنك تحمل الاختلاف.
إذا كنت تشعر أنه ليس لديك جميع المعلومات الضرورية ، فقد يكون الوقت قد حان للتوقف ومراجعة جميع الخطوات التي تم إكمالها قبل الادعاء بأن المتطلبات غير صحيحة. - لا يمكن للمرء إلا أن يوافق لأسباب ذاتية. ابحث عن مشاكل محتملة حقيقية.
"لا أحب كيف يتم ذلك" هو حكم ذاتي. "هذا سيؤدي إلى مشاكل في الأداء لأن العديد من العمليات متورطة" هو سبب موضوعي. أمثلة لأسباب شخصية أخرى: "وفي مشروع آخر قمنا به بشكل مختلف" أو "كنت سأطبق هذا الحل بشكل مختلف قليلاً ، ولكن هذا بالطبع مسألة ذوق". - يجب أن يكون لديك تفسيرات مدروسة جيدًا جاهزة لدعم ادعاءاتك.
إذا كنت لا تستطيع تفسير سبب وجود خطأ ما - فهل يمكنك التأكد من أنك على حق؟ أنصحك بتدوين الأسباب التي تجعل القرار يبدو خطأ بالنسبة لك ، وصياغة كيفية إصلاحه.
إذا لم تتمكن من تقديم مثل هذا الحل ، فأخبرني عنه بوضوح منذ البداية.
كن حذرا عند الاختلاف مع الآخرين. يستغرق الاستماع إلى الجميع وفهم كل شيء وقتًا طويلاً - وعندها فقط لا يمكنك الموافقة.
إذا كنت حتى هذه اللحظة قد التزمت بعناية بكل الخطوات الموضحة ، فمن المحتمل جدًا أنك على دراية جيدة بكل شيء. ومع ذلك ، حاول ألا تضع نفسك في حساباتك - فقد فاتك شيء!
أحب أن أبدأ المناقشة بالكلمات: "ليس لأنني لا أتفق معك ، أنا فقط لا أفهم بعد". في وقت لاحق ، إذا لزم الأمر ، يمكن التعبير عن خلاف قوي ، ولكن كبداية - لمعرفة ذلك.
تعرف على الاختلاف بشكل صحيح
, , , , .
:
– ; , , , . , , .
, .
, , , - , . , SEO , Google . Google . , Google.
. ( ) – , - . , , .
, . MVP ( ). , , .
, , , , , .