This is a viewer only at the moment see the article on how this works.
To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk
This is a preview from the server running through my markdig pipeline
Tuesday, 11 November 2025
على مر السنين، قرأت / وكتبت مئات الخصائص . و بعضها كان رائعاً "M SK3" و معظمها كان مخيفاً جداً . الفرق بين حالة جيدة و أخرى سيئة لا يتعلق بطولها أو البساطة، لكن بـ; و' وحول ما إذا كان يساعد المطورون في بناء الشيء الصحيح دون أن يغضبوا في العملية
ها هو شيء تعلمته في مايكروسوفت الذي غيّر طريقة تفكيري في التفاصيل التوقيع ليس في الكتاب المقدس مثل أي أداة، تستخدمها لإنجاز عملك،.، تضيف الكثير من التفاصيل كما أنت،,، المساهمين،M SK3، والمطورين يحتاجون إلى أن يذهبوا إلى العمل..، ثم تقوم بتكييفها، ,، تغييرها، و تحديثها كما تتطور هذه الخاصية.
تتعامل مع الوصفات كأداة مقدسة..ورقة ما لا يمكن تغييرها.. وتقوم ببناء الشيء الخاطىء بشكل مثالي..
هذه المقاربة المرنة للتحديات تخلق تحدياً خاصاً.. إذا كان النموذج يمكن أن يتطور كما تعلمون.. كيف يمكنك تقديره بحق الجحيم..
بشكل عام، مبدأ أعيشه في حياتي المهنية..مسك1.. كل العملية سواء كانت تفاصيل.. مسك2.. تعبئة التقارير.. ومسك3.. حتى مراجعة البرمجيات.. والمسك4.. هي ضرائب.. المسك5.. مثل جميع الضرائب، تحتاج إلى توفير قيمة مقابل المال من حيث الحصول على نتائج أفضل مما يمكن أن يكون عليه بدونها أو تحتاج إلى الذهاب.. لمسك6.. إذا قال عملي أنك بحاجة لنظام نقاط القصة القياسية وحرق الرسوم البيانية، لكن لا يستخدمها أي خروس لأي شيء سوى إزعاج فريقك..
أساسا; الخاصية Spec هي أداة حوارية لجعل الخاصية أفضل وليس م dogmatic
الذكاء هو ’ لا يقف - و notes sticky إستراتيجية اقتصادية لبناء الشيء الصحيح تحت عدم اليقين. الكائنات الحية تعيش في داخل ذلك عدم اليقين , لذا يجب أن تكون مرنة أيضاً . أقرأ بيان الذكاء, دعوها تصبح الطريقة التي تفكر بها في بناء أي شيء . فكر بها كنموذج تصميم لتطوير المنتجات
كل حلقة تقلل المسافة بين “ideaM SK1 و “useful”:
تحديث الخاصية بعد كل حلقة. سجل التغيير هو قصة ما تعلمته.
المبدأ الوحيد الأكثر أهمية لكتابة الوصفات دائماً تبدأ مع المشكلة, وليس الحل.
هذا النموذج بسيط:
أ'لقد رأيت أعداد لا تحصى من التوضيحات التي تقفز مباشرة إلى " يضغط المستخدم على زر X الذي يتصل بالAPI YM SK2 دون أن يشرح أبدا ما يحاول المستخدم فعليا تحقيقه . هذا هو arseMSC4backwardsMスク5 التفاصيل في التنفيذ يجب أن تتدفق طبيعيا من فهم المشكلة
تذكر المطورين هي آلات بناء مميزة حقاً (رمز هو الأداة لإيصال المميزات ); أخبرهم ماذا يحتاجون إلى عمل ليس كيف نفعل ذلك. إذا كان لديك شخص UX الذي' هو المسؤول عن спецификация UX عندها ينبغي أن يعمل مع ديفيد وهما معاًM SK2 النقطة هي جعل أفضل ميزة من أجل المستخدم يمكن أن يتغير و أي شخص لديه القدرة على دفع التغيير ( في النموذج ) و الحصول على عملية المراجعة تلك لتختبر الفكرة
flowchart TD
A[Feature Idea] --> B[Spec / Proposal]
B --> C[Visuals: Flowcharts, Figma, UI Mockups]
C --> D[Implementation]
D --> E[Internal Testing]
E --> F[Feedback Loop]
F -->|Refine| B
F -->|Ship| G[Release to Users]
G --> H[User Feedback]
H -->|Iterate| B
قبل أن تكتب كلمة واحدة عن التنفيذ لماذا
لماذا نبني هذا؟ ما هي المشكلة التي يحلها؟ ما هو المنفعة؟ ما الذي يستفيد منه؟ إذا كنت تستطيع؟ ما إذا كنت لا تستطيع أن تجيب على هذه الأسئلة بوضوح. ما إذا كان لديكم؟ ما إن كنتم لا تملكون؟
الشريحة الجيدة تبدأ ب:
هذا هو المكان الذي يذهب فيه أغلب التفاصيل إلى tits-up. غامضة جداً والمطورين يغادرون تخمينهمM SK2 مفصلة جداً وأنتمMSC3تم تديرون خيارات تنفيذية صغيرة أن المطورون أفضل في القيام بها
الخدعة هي تحديد ماذا يجب أن يحدث دون وصفة طبية كيف يحدث . على سبيل المثال:
جيد: "عندما يحاول المستخدم أن يرسل ملفاً يحتوي على بيانات غير صحيحة, يجب أن يحصل على ردود فعل فورية تشير إلى أي الحقول التي تحتاج إلى إصلاح
سيء: " عند تقديم الطلبية, يتوجب على معالج "Klick" أن يتصل بـ validateFormM SK4 والذي يكرر خلال الطلبية tablicة الحقول التي تتحقق من كل حقلMSC5القيمة مقابل الvalidation שלוMスク6متلكات Regex وإذا حدث أي عائق يجب أن ينادي بـ showErrorMST7 مع الحقل MST8اسم و ValidationM ST9parameters of messageM st10
الأول يخبرني ما يجب أن يكون عليه التجربة المستخدمة; أستطيع تنفيذه في React, VueM SK2 JavaScript الفانيلا , أو الحمامة حاملة لكل ما يهمMSC4 والثاني يفترض تفاصيل التنفيذ التي قد تكون خاطئة تماماً لمجموعة التقنيات أو تضع القيود غير الضرورية . لدى أشخاص مختلفين نقاط قوتهم مختلفة غالباً الشخص الذي يكتب الوصفات ليس هو الشخص الفني MST6 ليس هو من يكتب الشفرة ليس هو شخص يكتب الشيفرة MST9 تخيل أنك سائق سيارة أجرة ولا يتم إخبارك عن الوجهة لكن كل تغيير للوقود , نظرة المرآة إلخ . .
## استخدم الصور / خرائط التدفق; تحصل على النقطة عبر
تذكرونكم 'أنتم تحاولون جعل الناس يفهمون ما تقترحونه '. بعض الفرق تتضمن مستندات فيجيما | ( | لوحة قصص |/ | ux | ' |spec |') | أو صور لواجهة الواجهة التي قام المصمم ببناءها | МSK7 | مثل كل شيء آخر على الرغم من أن هذه هي | مSK8 | إلى أن نحاول | المSK9 | الإقتراحات إلى أن يكونوا |مSK10 | قد مروا خلال حلقة ردود الفعل | تأكد من فهمك. استخدم أي أدوات تحتاجها.
في ويكي mermaid .js الرسوم البيانية عظيمة لهذا! ; أتذكر أن الذكاء الصناعي عظيم في توليد هذه أيضا given a textual description.
بعض الناس يستطيعون تحليل الوصفات المكتوبة
flowchart LR
A[User on Profile Page] --> B[Click 'Add Profile Picture']
B --> C[Upload Dialog Opens]
C --> D[Select Image File]
D --> E[Preview + Crop Options]
E --> F{User Confirms?}
F -->|Yes| G[Profile Updated with New Picture]
F -->|No| C
G --> H[User Sees Updated Profile]
إذا كان هناك شيء واحد أتعلمه سيجد المستخدمون طرق لكسر مزخرتك التي لم تكن تتخيلها
وصف جيد لا يصف فقط الطريق السعيد، بل يأخذ بعين الاعتبار
أنت لا تحتاج إلى حل كل هذه في البرمجة، لكنك بحاجة إلى الاعتراف بوجودها.
وبالنسبة للكثير من الأشخاص فإنّه 'محتمل أن تكون ' خارج نطاق هذا الرسم البياني. قد يكون لديك 'تحديدات تقنيّةM SK4 التي تشرح تفاصيل تنفيذها وحلّة التقنيّات لـ
لا ينبغي أن تكون هذه ' مجرد أفكار مضافة أثناء مراجعة الشفرة . إذا كانت هناك متطلبات أمنية محددة "M SK2" مستويات التحقق من صحتها "MSC3" التشفير للبيانات "Mスク4" تسجيل الفحص "MSL5" spell them out in the spec .
وبالمثل, إذا كانت هناك قيود في الأداء التي تهم ("هذا البحث يجب أن يكمل تحت 200ms لمجموعات البيانات التي تصل إلى |1 | مليون سجل | "), | وضعها في الوصفة التوضيحية |
هنا ' هي النموذج الذي أستخدمه لتحديد الميزات . إنها ' ليست نبوءة , لكنها ' خدمتني جيداً :
فقرة أو فقرتين تلخص ما نقوم ببناءه و لماذا يهم
ما هو الوضع الحالي؟ ما الذي دفع هذا الfeature؟ ما طلبه المستخدمون منه؟ ما سيساعدنا على كسب المزيد من المال؟ ما هذا يساعد المطورين على فهم مساحة المشكلة دون أن يكونوا في كل اجتماع منتج
حصلت عليه—let’s توسع قسمك على قصص المستخدم مع الشخصيات المنسقة في , لذلك ’ ليس مجرد قائمة مراجعة ولكن خريطة حيّة عن كيفية تعامل أنواع مختلفة من المستخدمين مع النظام
القصص المستخدمة ليست مجرد صندوق، ولكنها طريقة جسد الناس الحقيقيين و أهدافهم. تعرفون, مستخدميكم الفكرة الأساسية لبناء هذا الشئ. عن طريق ربط كل قصة بشخصية
في النهاية الشخصيات هي طريقة مرحبة لتحديد كيف يمكن لبرنامجك أن يخدم أنواع مختلفة من المستخدمين.
كـ [الشخص / نوع المستخدم] أريد [للقيام بشيء. [أحقق هدفاً ما
الـ “لذلك” cláusula is the safeguard against building features nobody needs—it ties every function back to a real
| الشخص | القصة | لماذا يهم |
|---|---|---|
| أليكس مدير, أريد أن أقوم بتعيين الأدوار والفرص لذلك أستطيع أن أضمن أمن البيانات و التوافق | ||
| جيمي ( المستخدم العادي) | كـ المستخدم العادي, أريد لوحة مفاتيح بسيطة لذلك يمكنني أن أرى بسرعة أهم المعلومات دون أن أكون مغموراً | |
| Priya (Power User) | كـ مستخدمي الطاقة, أريد إنشاء تدفقات عمل مخصصة لذلك أستطيع تشغيل المهام المتكررة و توفير الوقت | |
| مورغان (الضيف الجديد) | كـ المضيف الجديد, أريد دروس مرشدة وأدلة أدوات لذلك أستطيع أن أتعلم النظام دون الشعور بالفقدان | |
| تايلور المساهمين, أريد إرسال تقارير منتظمة إلي لذلك أستطيع متابعة التقدم دون أن أسجل فيه |
هذا هو لحمك و البطاطس
لكل المتطلبات , تشير :
أهداف الأداء,متطلبات الأمنM SK1معايير الوصول,متصفحي /دعم الأجهزةMSC4 لا أفترض أن هذه واضحةMska6 لكن في بعض الفرق يمكن أن تكون TEAMS كاملة أخرىMsko7لكن لا أعتقدMsco8 لا تفقد التركيزMko9 إذا أصبح جزء من دورةك آباً فسوف تفقدون القدرة على التحرك .
هذا الجزء مهم تماماً مثل ما تفعله
لماذا يهم هذا؟
أمثلة جيدة أشياء خارج نطاقها:
إذا كان هناك شخص يجادل في أن item خارج - من - يجب أن يكون في "M SK2" أن ' هي محادثة تستحق التحدث قبل بداية التطوير "MSC4" وليس نصف الطريق إلى التنفيذ
كن صادقاً حول ما لا تعرفه.
ما هي الأنظمة الأخرى؟
كيف سيقوم التقييم باختبار هذا؟..مسك0.. هذه يجب أن تكون حزمة.. مسك1.. عبارة قابلة للاختبار.. ومسك2.. نقاط إضافية.. إذا كانت مسك3.. مكتوبة في شكل يمكن أن يصبح اختباراً آلياً.
هنا , هناك شيء لا يُتحدث عنه بما فيه الكفاية . Specs يمكن أن يحتوي على أخطاء أيضا.
الخطأ المحدد هو عندما يكون الوصف نفسه خاطئاً . ربما يتناقض مع نفسه , أو يحدد سلوكاً هو صعب من الناحية التقنية | , | أو يحل المشكلة الخاطئة تماماً |. | هذه مخيفة لأن المطورين قد يطبقون بالضبط ما សរសេរه | МSK5 | وينتهي بهم المطاف ب منتج لا يعمل | مSK6 | بطريقة صحيحة | المSK7 | في التطور الذكي التركيز الرئيسي هو جعل هذه حلقة ردود الفعل |مSK8 | منخفضة قدر الإمكان لهذا السبب بالضبط |
عندما تجد خطأ محدد كمطور , لديك خيارات قليلة :
هذا تقريباً دائماً الإجابة الصحيحة.
أرسل رسالة واضحة إلى أي شخص يملك النموذج
أفعل ذلك بالبريد (email,تذكرةM SK2 أياً كان ) حتى يكون هناك ,' سجل .
في بعض الأحيان قد تُحجِّل لك أن تبني فقط ما هو محدد، على الرغم من أنك تعرفه. لا تفعلوا هذا
لقد رأيت المطورين يقومون بتطبيق البرمجيات التي كانوا يعرفون أنها خاطئة لأن "that'is what it said to do "and then act surprised when QA rejects it or users complainM SK4 YouMST5re a professionalM ST6 part of your job is to speak up when you see problemsM st7
استثناء هو إذا قمت بطرح المسألة، أو تم إخبارك بمواصلة العمل على أية حال، أو حصلت على ذلك في المذكرات، أو تلقيت ذلك في الكتابة.
إذا كنت متأكداً من أنك تعرف ما يجب أن تقوله الوصفة التوضيحية
لا تغيّر متطلباتك بصمت . هذا ' هو الطريقة التي تنتهي بها بناء الميزات لم يطلب منها أحد
المقاربة الأفضل هي منع الأخطاء المحددة في المقام الأول:
بعض الناس يعتقدون أن المزيد من التفاصيل دائماً أفضل.
إذا تحول نموذجك إلى حرب وسلام
المشكلة المعاكسة : " Build a reporting system ." Right , cheers for that \ . \ I \ ' ll just knock up something and we | ' \ ll see if it matches what you had in your head
إذا كان بإمكانك الحصول على إختيارك الكامل في جملة واحدة.
" نحن بحاجة إلى لوحة مفاتيح ," , هو , ' , ليس شرطا .; , إنه . ' , حل مسبقا ,. , ربما تحتاج إلى لوحات مفاتح ,مSK6 , لكن ربما تحتاج لشيء مختلف تماما .
المتطلبات التي تتغير يومياً هي:' "t requirements" ; "they" ' " chaos" . "if things are changing that fast" "If things are Changing That Fast" "You don't know" "The problem doesn't understand well enough yet" "stop and do more discovery before writing specs"
" بينما نحن'متواجدون هناك , هل يمكننا أيضاًMSC3 لاM SK4 لا يمكنناMST5tMS. لكل ميزة مكلفةMSR7 إذا كنت تريد إضافة شيء جديدMSL8 أكتب وصفاً مستقلاً لذلك وتعطيه الأولوية بشكل صحيحMsl9
هذا هو تغير العقلية الذي غيّر الطريقة التي أكتب بها إختبارات اتعامل مع تفاصيلك تماما كما تتعامل مع شفرة المصدر.
ينبغي أن تعيش تفاصيلك في تحكم الإصدار جنباً إلى جنب مع شفرةك. تأكد منها في. تتبع التغييراتM SK2 أكتب رسائل الإرسال المعقولة عندما تقوم بتحديثهاMSC3 هذا يخلق تاريخاً عن كيفية تطور الطلبات .
في مايكروسوفت , حافظنا على الإختبارات في نفس المخازن مثل البرمجة . عندما تغيّر إختبار ما غيّر ,, , كان يمر خلال نفس عملية المراجعة مثل الرمز .. . لم يكن هذا , ' , غير بروقراطية . ; . كان يضمن أن الجميع يفهم ما كان يتغير ولماذا .
تماماً كما يحتاج البرمجة إلى إعادة التعديل, وكذلك الخاصيات. كما تعلمون أكثر خلال تنفيذهاM SK2 الخاصية يجب أن تتطور لتعكس ذلك التعلمMSC3
وجد طريقة أفضل لحل المشكلة? تحديث الوصفة لتعبر عن المقاربة الجديدة وتشرح لماذا غيرت الاتجاه. اكتشفت حالة حافة لم تكن قد تفكر فيها
يجب أن تكون الوصفة بعد التطوير أكثر دقة من الوصفة قبل التطوير.
التوضيح هو 't "done" عندما يبدأ التطوير , إنه ' إنه فقط | ' جاهز | ' لتلك المرحلة |. أنه |' | تم إنجازه عندما تذهب المركبة المميزة وتحول إلى نظام صيانة . . . . حتى ذلك الوقت .
هذا لا يعني ' أن البرمجة يجب أن تتغير يوميًا . التغييرات الكبيرة في الشروط تحتاج إلى مناقشة و اتفاق | . | لكن التوضيح |, | أمثلة إضافية | МSK4 | ينبغي أن تكون كل الحالات المكتشفة حديثًا للحافة معلقة مرة أخرى في البرمجية كما تجدها |
فكروا في الأمر بهذه الطريقة.
هنا ' شيء لا يُناقش فيه ' بما فيه الكفاية تصبح الخاصية الخاصة بك الأساس لكل شيء يأتي بعد .
خطط الاختبار: يكتب الـQA حالات الإختبار بناءً على الوصفة التوضيحية. إذا كان الوصفة قديمةM SK2 تُختبر الأشياء الخاطئة . تحصل على إجابات خاطئة ( تنجح في الإختبر لكن الميزة قد ماتتMSC5 أو سلبيات خاطئه ( تفشل في الإعتبار ولكن الميزات تعمل بشكل جيدMスク7
الوثائق: مستندات المستخدمة, دوتنې APIM SK2 أنظمة المساعدة , وكالة دعم الذكاء الصناعي RAG المذهلة لديك | - , كلهم يبدأون من الوصفة التوضيحية .. . إذا وصف الوصفة خصائص لا توجد . ' . أو يفتقدون خصائص تفعل .
التنمية المستقبلية: عندما يحتاج أحدهم لتوسيع الميزة بعد ستة أشهر, سيقرأون النموذج الخاص به ليفهموا كيف يعمل . إذا لم يتوافق مع الواقعM SK5 سيبدأون بفرضيات خاطئةMSC7
على متن الطائرة: أعضاء الفريق الجديدون يتعلمون النظام جزئياً من خلال قراءة البرمجيات. البرمجات القديمة تُعلمهم النموذج العقلي الخاطئ لكيف تعمل الخصائص
لهذا السبب يجب أن يبقى النموذج الحالي.
في مايكروسوفت, تعاملنا مع تحديثات التعريف بنفس أهمية تحديثات البرمجة. تم مراجعة التغييرات في التعريفM SK2 تم نسخهها بجانب الرمزMSC3 عندما تغيّر أحد الخصائصMST4 لم يكن تحديث التعريف M stk5 غير اختياريMstk6 كان جزءا من تعريف M stk7 قد تم إنجازهMstrk8
إذا قمت بتغيير الرمز و لكنك لا تقوم بـ' ولا تعيد تحديث التعريف , فأنتم ' قد أنشأتون إختراقاً تقنياً "TECHNICAL DEBT" "M SK3" العمل في المستقبل سيكون أبطأ لأن لا أحد يعرف ما هو الوضع الحالي
# العلاقة بين النموذج والتطبيق
هنا ' شيء لا يفهمه المطورون الصغار عادة 't grasp النموذج ليس مصدر الحقيقة; الشيفرة هي.
البرمجة تخبرك ما ستحاول بناءه..... الشفرة هي ما قمت ببناءها بالفعل.. ... هذين الشيئين يجب أن يتناغمون.,.. لكن عندما لا يتناسبون..
هذا يعني:
أناس مختلفون يحتاجون أشياء مختلفة عن الوصفات
المسؤولين التنفيذيين - تريد أن تعرف القيمة التجارية والخط الزمني الدقيق . أعطيهم نظرة عامة ومعايير النجاح
مديري المنتجات - نحتاج أن نفهم كيف يتوافق مع إستراتيجية المنتج والخريطة العريضة
المطورين - تحتاج إلى تفاصيل كافية لتطبيقها بشكل صحيح دون أن يُخبرهم كيف يفعلون عملهم. أعطيهم المتطلباتM SK2 أغلب المراحل , و غيرهاMSC4 المتطلبات الوظيفيةMST5
QA - يحتاجون إلى معرفة كيف يتأكدون من أن يعمل
المصممين - تحتاج إلى معرفة ما يجب أن يكون عليه التجربة المستخدمة. أعطيهم قصص المستخدم وتدفقات التفاعلM SK2 أفضل من ذلك أن يطوروا مخطط UX / لوحات القصص في نفس الوقت أثناء العمل مع المطور & مؤلف مخططة ; أن يكون PM , BA إلخ . من يكتب المخطط هو أقل أهمية مما يجعل الخاصية النهائية أفضل
نموذج جيد يخدم كل هؤلاء الحضور دون أن يُزَرَبَمَ
قبل أن تتصل بالتحديد تم إنجازه, أسأل نفسك:
"لكننا'نحن مرنة ! نحن لا نحتاج إلى توصيلاتM SK4 أسمع هذا كثيرًاMSC5 إنه مزخرفةMスク7
الذكاء لا يعني " لا وجود للتخطيط "M SK2" أو " لا يوجد أي توثيق ." بل هو الاستجابة للتغيير عن طريق اتباع خطة "MSC5" المعدات هي أدوات, وليست عقود. أنت تصنعها بتفاصيل كافية فقط لتبدأ , ثم تتطورها كما تتعلم . رحلتي |' |Agile | ' |كانت أكثر حدة |; | لأنك تصبح جيدة جداً في التفاصيل حتى تلك تصبح أكثر ذكاءاً ♫, | أنت تريد أن تكيف وتحسن اعتماداً على ما يريده فريقك
الاختلاف الأساسي هو: format or length
الأنواع المائية:
النوع الخفيف:
المقاربة المائية تفترض أن بإمكانك تحديد كل شيء بشكل مثالي قبل كتابة سطر من البرمجة..... ذلك.. '.. هو خيال جميل..
## حلقات ردود الفعل هي كل شيء
في التنقيب الذكي, حلقات ردود الفعل هي صديقك الأفضل. أنتM SK2 تجمع المدخلات بشكل مستمر وتقوم بتحديث الوصفة
تقييم المطور: " النهج الأولي فاز' لا يعمل بسبب XM SK3 أناMSC4 أقترح Y بدلاً من ." ♫→ تحديث الخاصية لتعبر عن النهج الجديد ولماذا تغيّر ♫ . في نهاية المطاف أنتـ' دائماً أول مستخدم |' | ' | من ميزة .
ردود فعل المستخدم: جرب هذه الخاصية مع مستخدمين حقيقيين ( حتى داخليًا). "هذا لا يحل مشكلتي في الواقع لأن فيوت الدقة اعتماداً على ما تتعلمه
ردود الفعل للتطبيق: أثناء بناءك, ستكتشف حالات الحافةM SK2 القيود التقنية , أو المقاربات الأمثلة . | → قم بتجميع هذه الدروس مرة أخرى في الوصفة
ردود الفعل الQA: " تقول الوصفة X لكن لم تأخذ في الإعتبار سيناريو Y." ♫→ أضيف السيناريو إلى الوصفةM SK5
كل واحدة من هذه حلقات الاستجابة تجعل الخاصية أفضل . الخاصية بعد سباق تطوير يجب أن تكون أكثر دقة من الخاصية قبل , لأنك ,' , تعلمت أشياء لم تكن تستطيع , ' , لم تكن تعرفها في البداية .
هذا هو السبب في فشل إختبارات الم滝 غالباً : إنهم يتجاوزون حلقات ردود الفعل . في الوقت الذي تكتشف فيه أن الإختبار كان خاطئاً | , | أنت |' | قمت ببناء الشيء الخاطىء و | МSK4 | تغيير الإختيار |
شيء كبير , ردود الفعل قريبة جداً من المفهوم LLMApi يساعدك على بناء BIT ثم استخدام بيانات وهمية للحصول على ردود فعل مفيدة.
هذا ما يجعل مديري المشاريع التقليديين قلقين إنه ' جيد تماماً إذا كان النموذج الأولي لديه فجوات .
Mark sections as "TBD" if you don’t know
هذا ليس ' "t sloppiness" ; "it" ' "the honesty" . "You don't" ' "not know everything up front" "The pretending you do just means you will write confident specifications for the wrong solution"
أبدأ ب:
ثم تخلي الفجوات كما تعلمون
أقبلوا هذا الآن: سوف يتغير spécificaك خلال التطوير. إن لم تكن كذلك، فأنت إما محظوظة بشكل لا يصدق أو أنك لا تتعلم شيئاً
التغييرات التي يجب أن تتوقعوها:
كل تغيير يجب أن يكون:
تاريخ النسخة الخاصة بـ' يصبح سجلا لما تعلمته. . أن ' هي وثائق قيمة للخواص المستقبلية.
النهج الذكي يمكن أن يفشل إذا نسيت شيئاً مهماً "سوف يتغير " لا ,' لا يعني , " لا حدود
دقة خاطئة في التنقيب
دقة مميزة جيدة
الشريحة هي وثيقة حيّة، لكنها، لا تشبه الفوضى، لا تتطوّر على أساس التعلم، لا على غرار
لا تفعل أبداً أي شئ تريده وتدعوه "أجل"
إنها ' عملية ديناميكية لديها هدف ذاتي لبناء أفضل الأشياء بأسرع وقت ممكن بيان الذكاء يقول كما هو "أول مبدأ"
"أول أولوياتنا هي إرضاء الزبائن من خلال تقديم مبكر و مستمر من البرمجيات القيمة."
إنه لا يتوجب عليك أن تتلاعب بالبرمجة لأنك تحب الشعور
السؤال هو:"ما هي التفاصيل التي يجب أن تكون في الوصفة؟"""ما هو التفصيل الذي يجب أن يكون في الوصفات؟"
لبعض الخصائص التي قد تكون:
بالنسبة للآخرين قد يكون :
أضف تفاصيل أين توجد عدم اليقين. إذا كان الجميع يتفق على كيفية عمل شيء ما، فأنت لا تحتاج إلى كتابة ذلك في تفاصيل مروعة.
ولكن في نهاية المطاف هناك تفاصيل كافية للبدء حلقة التقييم
## Templates and AI: Getting Started Quickly
لا تبالغ في التفكير بالتحديد الأولي
إستخدام القواميس: أملك نموذجاً أساسياً مع الأجزاء الرئيسية (مشكلة, الحلM SK3 في نطاق النطاقMska4 خارج نطاق النفقM Ska5 Criteria تم تنفيذهاMske6 أបំពេញ ما تعرفهMskai7 ترك الأجزاء فارغة إذا كنت لا تعرفها Mskai8 لا تعرفه بعدMaskan9 تصفها بـ ماسك10TBDماسک11 وتنتقل إلى ماسك12
يمكن أن يكون نموذجاً بسيطاً :
# [Feature Name]
## Problem
[What's broken? What pain exists?]
## Proposed Solution
[High-level approach]
## What "Done" Looks Like
- [ ] Specific, testable criterion 1
- [ ] Specific, testable criterion 2
- [ ] Specific, testable criterion 3
## In Scope
-
-
## Out of Scope
-
-
## Open Questions
-
-
أن' هو . خمس دقائق من التعبئة وتحصلون على ما يكفي للبدء في النقاش أو حتى البناء
استخدام الذكاء الاصطناعي لرسم Specs: أدوات مثل Claude أو ChatGPT يمكن أن تكون رائعة للحصول على مسودة أولية. تغذيه على المشكلة وبعض السياقM SK2 تطلب منه رسم وصفة
لكن - وهذا أمر حرج - لا تدع دقة الذكاء الصناعي يجذبك إلى إضافة كل شيء
يحب الذكاء الاصطناعي أن يكون متكاملا. سوف يعطيك قسماً عن المواقف الأمنية, متطلبات الأداءM SK3 سهولة الوصول , العولمة , معالجة الأخطاءMSC6 التسجيلMST7 المراقبةM ST8 استراتيجية إنطلاقM st9 خطط للعودة إلى العملMst10 و سبعة عشر أشياء أخرى قد تحتاجونهاM St11 في النهايةMSt12
أخرج معظم ذلك . حافظ على ما تحتاجه الآن . Rest can be added later when you actually need it
فكر في الذكاء الاصطناعي-التحديد الذي تم توليده كម៉ឺនុយ. اختار الأجزاء التي هي مهمة للبدءM SK2 تجاهل الباقي . يمكنك دائما العودة لبضع ثوانٍ
الهدف هو ,' , ليس تحديداً كاملاً .; , إنه , ' , محدداً بما فيه الكفاية للبدء بالعمل . . , سواء كان ذلك ,' , تقدير سريع .
هنا ' ما يتغير في الذكاء : فأنت لا تكتب وصفاً ولا تضعه على الحائط للمطورين الشرط هو جهد تعاوني.
أفضل المقاربة التي رأيتها
كل شخص يساهم في تحديد الدقة..أول شخص لا يملكها بشكل حصري.. أول شخص يملكها.. هذه المقاربة التعاونية تلتقط المشاكل مبكرا عندما تكون مكلفة..
والأهم من ذلك , يعني أن الطيف يعكس ما هو في الواقع ممكن ' وليس ما أراده أحدهم في عزلة .
هنا' حيث الاختلافات المتطورة تختلف عن التقنيات التقليدية الميزة يمكن أن تتطور كلما بنيتها
ستكتشف أن النهج الأولي الخاص بك سينجح ' لا يعمل ? تحديث الوصفة لتعكس النهج الجديد .
تحاولون هذه الخاصية وتدركون أنها لا تحل المشكلة في الواقع
ردود الفعل المستخدمة تكشف عن حل أفضل? دمجها وتشرح التغيير.
هذه التطور هي ميزة , ليست مشكلة . أنت' تستجيب للمعلومات الجديدةM SK3 يجب أن يلتقط الوصفة ذلك التعلمMSC4 لا تتظاهر بأن لديك معرفة ممتازة من اليوم الأول
لكن هذا يخلق مشكلة: إذا كان الميزة يمكن أن تتغير, كيف يمكنك تقديرهاM SK2 كيف تعرف متى تم
هذا هو سر القذر من الذكاء التقدير صعب جداً عندما تتطور الميزات
التقدير التقليدي يفترض أنك تعرف ما تقوم ببناءه
التقدير الذكي يعترف بأنك لا أعرف كل شيء مقدماً
يمكنك تقدير المسافات, وليست المطلقات. بدلاً من "سوف يستغرق هذا 3 أسابيع" تقولون "في مكان ما بين SSK4 وـ5 أسابيع إعتماداً على ما نكتشفه
تتوقعون في تكرارات. "سوف نقضي سباقاً واحداً لنستكشف هذا ونقوم بتقرير ما تعلمناه . عندها سنتمكن من تقدير الباقي بدقة أكبر
أنت في وقت -box بدلاً من مجال -boxing. سوف نقضي اسبوعين على هذا
لكن كل هذه المقاربات لها متطلبات أساسية واحدة عليك أن تعرف ما يعنيه بدون تعريف واضح للفعل , يمكن لصفة أن تستمر في التحفيز للأبد .
إنه ' نقد شائع ل "ال Agile" مقارنة بنهج الغطاء المائي ' بدون وصف محدد لا يمكن أن يكون هناك تقديرات جيدة
هذا هو المكان الذي يختفي فيه العديد من الخصائص المتطورة.
بدون تعريف واضح للقيام بـ, . الخصائص لا تنتهي .' . لا تنتمي ,; . تتحوّل . . . تنتشر .
أ'رأيت توضيحات مع معيار قبول مثل:
هذه ليست تعريفات لـ"الجزء"ـ "الجزأة"ـ" الـ"جزء 1" بل هي طموحات غامضة" جزء 3" مالذي تفعله "جزء 4" المعلومات ذات الصلة "جزئ 5" تعني "جزئة 6" مالماذا "جزئية 7" و "جزيء 8" تعمل بشكل جيد "جزئاً 9" يمكنك أن تكررها للأبد ولا يمكن أن تُفعل أبداً
يحتاج المطور أن يعرف: ما هو الشيء المحدد, عندما يتم تنفيذه, يعني أنني أستطيع التوقف عن العمل على هذه الخاصية
جيد "done" المعايير هي
سيء: " الملاحظات يجب تعديلها" جيد: " مستخدمي admin يمكنهم الموافقةM SK2 رفضه, أو حذف تعليقات من لوحة adminMSC4 غير - التعليقات التي تم الموافقة عليها غير مرئية للمستخدمين العاديينMスク6 إبلاغ بريدي يُرسل إلى admin عند نشر تعليق جديدMST7
سيء: "البحث يجب أن يكون سريعا" جيد: "البحث يعيد نتائجه في 200ms لـ S95مئة المائة من الأسئلة مقابل مجموعة بيانات من M100,000وظائف. النتائج تصنف بالنسبة | | ( | Full |- | text search score | МSK8 | date as tie | - | breaker
سيء: " تبين لوحة العرض القياسات المفيدة" جيد: "معروضات المنطاد: مشاهد صفحة كاملة MSC3آخر MSC4 أيام MSc5 مستخدمين فريدون МСC6آخرة msc7 أيام msc8 أعلى мсc9 مشاركات حسب المشاهد مزك10آخرى მსc11 أيامـ MSc12 وتصنيف الزوار حسب البلدـ MSC13 تحديث جميع القياسات مرة في الساعة MScs14
لاحظوا الاختلاف? الأمثلة الجيدة تخبركم بالضبط ما الذي يجب أن يكون موجوداً وعندما يمكنك التوقف عن إضافة أشياء
تذكرون عندما قلت سابقاً أن قسم خارج نطاق هو مهم كما هو ما هو في نطاق
لكل ميزة , هناك العشرات من الأشياء التي يمكن أن تضيفها . .
في نطاق: تعليقات متداخلة (مستوى واحد من الإجابات) خارج نطاق العمل: ردود نظر غير محدودة, تصويت الملاحظاتM SK2 ردة نظر threading , ترتيب الملاحظة الأفضلMSC4 تعليق permalinks MSC5 يمكن أن تأتي لاحقاً كخواص مختلفةMSc6
الآن عندما يقترح شخص ما "من المفترض ' أن يكون للتعليقات نقاط إزديادية | ?" | يمكنك الإشارة إلى الوصفة وتقول |" | أن |' | خارج نطاق هذا التكرار | . | دعونا نناقشه |' | كنوع من الخاصية بعد أن تكون التعليقات الأساسية تعمل | ."
حسناً، لديك مجموعة من الأفكار الجيدة غير المستعملة قد تم التقاطها بالفعل
في بعض الأحيان لا تعرف حقاً ' ماذا فعلت " ما يبدو عليه " عند بدأك. المساحة المشكلة غير متأكدة جداًM SK4 جديدة تماماً أو حتى بعض الأنظمة الخلفية يجب أن تكون بنيت في نفس الوقت
"نحن'سنقضي 2 أسابيع (أو حتى يكون الجزء الخلفي جاهزًاM SK4 لنخترع نماذج مختلفة لخوارزمية الإرشادMSC5 في نهاية مSK6 أسابيع سنقوم بتقييم ما تعلمناهـ' ونقرر ما إذا كان بإمكاننا إنتاج نهجٍ واحد ــ, نحاول شيئاً مختلفًا ــ , أو نترك الميزة ـــ."
لكن لاحظوا : أنكم مازلتم تملكون قطعة إسمنتية " تم تنفيذها ," حالة , (2 , أسابيع ., , ثم يقيمون ,MSSK5 , وأنكم ,' , لا تقومون ببناءها على الإستمرار . . . هذه الاكتشافات غالباً ما تتم في سياق , مثل , .
"سيب" هو واحد من هذه "مسك0" أذهب للعب ومعرفة هذا التكنولوجيا "مسک1" يمكن أن يستمر لفترة طويلة مثل "سبريد" "مكس2" أو أطول "مسكو3" ولكنها في الغالب فقط بضعة أيام "مكسي4" عندما أحصل على أشخاص يقومون بذلك فأنا في الغالبية أطلب بريداً في النهاية "مکس5" أو رسالة wiki إلخ "مساك6" مع الإكتشافات "مكسب7" هل يستحق ذلك "مسكر8" هل يجب علينا إعتماده إلخ
يُتوقع أن يكون للسباق أشياء متاحة في النهاية (شيء ما شخص آخر غير الشخص الذي يشارك فيه يمكن أن يقوم باختبار الدائرة | ). | Spike ربما يكون لديه لكن على الأرجح المقدرة الوحيدة هي المعرفة للفريق |.
إنها أيضاً ممتعة للعاملين ويساعدون الفريق غالباً ما أجمع أفكار Spike خلال المشروع وعندما يكون هناك ' فترة استراحة أسمح للعاملون بإختيار واحدة لاكتشافها ( بشكل خاص لبعض المبرمجين المستقبليين ولكن غالباً فقط لإيقاف جيم المبرمج الصغري يستمر في العمل حوله
حتى مع معايير واضحة "doneM SK1 criteria, scope can creep . You discover edge casesMSC4 You realise users need something you hadnMST5t consideredM stk6 How do you handle this without breaking your definition of doneMstk7
وثيقة ذلك, don't just do itM SK2 عندما تكتشف شيئاً جديداً يتوجب إضافته, تحديث الوصفة. جعلها واضحة بأن نطاقها قد تغيّرM SK2 الحصول على اتفاق من المساهمين
هذا يخدم إثنين من المهام
إذا كان طيفك يستمر في النمو , أن ' هو إشارة | . إما أنكم ــ ' تقومون ببناء الشيء الخاطئ ♫ ( وتحتاجون إلى الرجوع وإعادة التفكير ♫), أو ينبغي أن تكون هذه خصائص متعددة |, | أو تحتاجون إلى قطع المجال لشحن شيء مفيد مبكراً ♫
في نقطة ما, تحتاج إلى شحن. هذه الخاصية لا تحتاج إلى أن تكون مثاليةM SK3 تحتاج أن تكون مفيدة .
تجربة جيدة: هل يمكن للمستخدمين الحصول على قيمة من هذه الخاصية كما هي
إذا كان نعم , أرسلها . يمكنك دائما أن تكرر في الإصدار التالي. قد تم , لا يعني ' . لا يعني , " . لن يتم تحسينها أبداً .." . يعني . " . يحل المشكلة بشكل جيد بما فيه الكفاية بحيث يستفيد المستخدمون ويمكننا الانتقال إلى عمل آخر .
إذا لم يكن , فأنت ' لم تفعل بعد "M SK2" بغض النظر عن ما تقوله الخاصية الخاصة بك
أصعب جزء من الذكاء هو stopping work
لكن تذكروا أنكم يجب أن تحسبوا ما إذا قمتم بنشره للجميع, أن يكون لديكم مجموعة قريبة لـ A/B M SK2 UAT ( اختبار قبول المستخدمينMSC4 أنّه عادةً ما هو قرار تجاري حول المخاطرMスク6 في بعض الأحيان يفتخر العامة ويرون ميزة العرض المكتملة جزئياً كمحتوى على جودة نظامكم . إن كان ذلك موضوعًا، فإن المجموعة التي يتم التحكم بها أكثر أماناً
# عملية مراجعة Spec
لا يتم صنع مصطلح ' عندما تنتهي من كتابةه. ; هو "M SK2" تم صنعه عندما تم مراجعةه من قبل الأشخاص الذين سيستخدمونها.
أفضل الممارسات التي تعلمتها في مايكروسوفت التقييمات المحددة تعمل تماما مثل تقييمات الشيفرة. إنهم مسك0 تعاونون مسك1 ليسوا متضادين المسك2 على الرغم من أن مايكروسوفت ' نادي الصبية ' غالبا ما جعل نقد الإعدادات يبدو وكأنها معركة Gladiatorial إذا كان شخص ما رجلاً .
عند مراجعة الوصفات:
عندما يتم مراجعة الوصفة الخاصة بك
أفضل تقييمات الشرائح هي المحادثات. تذهب ذهابا وإيابا. تتعلم من بعضهم البعضM SK2 الشريحة التي تظهر أفضل مما كان بإمكان أي شخص أن يكتبه وحده
الحصول على تقييمات من جميع المنظور التي تهم:
مراجعة المطور - هل سينجح هذا في الواقع? هل هناك القيود التقنية التي لم نأخذها بعين الاعتبارM SK2 لم نضعها في الإعتبار ? هل هنالك تفاصيل كافية لتطبيقها ? ما هي الأسئلة التي ستطرحها إذا كنت تبني هذا
مراجعة المنتج - هل يحل هذا المشكلة الصحيحة? هل يتناغم مع استراتيجية المنتجM SK2 ماذا ' يفتقدهMSC4 هل تشير الـ | " | ما فعلته |" | المعايير الحقيقية إلى القيمة للمستخدمين
مراجعة التصميم - هل التجربة المستخدمة منطقية? هل أخذنا في الإعتبار الإمكانية للوصولM SK2 ماذا عن الهواتف النقالة ? هل نقوم بحل مشكلة المستخدمMSC4 أو فقط بناء خصائصMST5
مراجعة الاختبارات - هل يمكننا أن نختبر هذا? هل criteria of acceptance واضحة بما فيه الكفاية ? ماذا عن الحواجز الحافيةM SK3 ما الذي يمكن أن يسير بشكل خاطئMSC4
لا تحتاج إلى علامة رسمية. لا تحتاج للتوقيع الرسمي. لا يحتاج إلى التوقيع من الجميع. لاحتاج إلى إدخالهم لجعل الوصف أفضل. لا بحاجة إلى إشارة رسمية
المراجعون الجيدون يطرحون أسئلة تحسن الدقة
لا أحد من هذه المسئلة مقنعة. إنها أسئلة حقيقية تساعد في صياغة الوصف
لن تقبل كل اقتراح
يجب أن يتحسن الدقة مع كل دور من المراجعة.
أحصل على تقييمات من كل هذه المنظور قبل أن تبدأ في تنفيذها.
لجعل كل هذا أقل تجريدية, هنا's كيف يمكن أن يبدو النموذج الخاص بأداة ترجمة العلامات الآلية التي قمت ببناءها لهذا المدونةM SK2 هذا يوضح المبادئ التي ناقشناها '
نشرات المدونات المكتوبة باللغة الانجليزية فقط تبعد عن غيرها
تنفيذ خدمة خلفية تترجم بشكل تلقائي الملفات الملاحظة إلى اللغات المستهدفة المخصصة باستخدام خدمة الترجمة الآلية EasyNMT. وسيقوم сервис
هذه المعايير تخبرنا بالضبط متى يمكن أن نتوقف عن العمل على هذه الخاصية:
لاحظوا أن هذه مميزة و قابلة للاختبار. يمكننا التحقق من كل واحد منها. عندما يتم إكتفاء جميعهاM SK2 نقوم بـ' لقد قمنا بـ . نحن لا نستمر بإضافة خصائص مثل " تقيم جودة الترجمة " أو | " تحرير ترجمة يدوية |" إلا إذا قمنا بتوسيع نطاق العمل بشكل واضح
العديد من الأشياء ظهرت خلال التطوير التي تحسن طيف :
تكييف حجم المجموعة: بدأت بـ 20- صفوف الخطوط, لكن وجدنا 10 خطوط أكثر ثقة للبقاء تحت EasyNMTMSC4 حد الكلمة بينما نحافظ على السياقM SK5
اكتشاف الصورة: في البداية , كان يتم إرسال أسماء الملفات المصورة في علامة التخفيض إلى خدمة الترجمة , تفكيك الجملة . تم إضافة إكتشاف ممتدة لتخطي مسارات الصور S.
توفر الخدمات: EasyNMT يمكن أن يكون متقلبا في البداية. أضف فحص الصحة الذي يسأل /model_name نقطة النهاية قبل محاولة الترجمة.
تخزين الهش: تم وضع قاعدة بيانات مخططة أصلاً لشبكات البيانات , ولكن نظام دوتنه МSK2 مبني .hash أثبتت أن الملفات أكثر بساطة وتجنبت إعتماد قاعدة البيانات لهذا الخدمة.
تم دمج هذه التعلمات مرة أخرى في documentación وعلمنا بخصائص مماثلة لاحقا.
هذا النموذج يتبع المبادئ التي ناقشناها
وكانت النتيجة : وهي أداة تعمل في الإنتاج منذ شهور ' , تقوم بترجمة كل تعليق على المدونة تلقائياً مع تدخل صغير
بناءً على ما قمنا بعرضه هنا هي الأسئلة التي تطرح عادة
إنها تعتمد على "small." إذا كان ' حقاً أمراً ضئيلاً (تغيير نص الأزرار , إصلاح الخطأ .), لا . . لكن إن كنت بحاجة إلى
ثم نعم, حتى الدقة السريعة تساعد. إنها لا تحتاج إلى أن تكون رسميةM SK3 بضع نقاط قصاص في غطية التذاكر مشكلةMSC4 حلMske5 ومعايير قد فعلت غالبًا ما تكفي
الاختبار: إذا كنت تستطيع' لا تشرح ما M SK2 فعلتهMSC3 يبدو عليه في جملتين , تحتاج إلى وصفة
أشير إلى قسم خارج نطاقه.
إذا كانوا يصرون على أن كل شيء هو بنفس القدر من الأهمية , يقترحون أنهم يختارون أي عمل آخر ليؤجل بدلاً من ذلك . هذا عادة يوضح الأولويات بسرعة | .
ذلك ' مكافأة , طالما :
إذا كان الرمز غير قابل للتعرف لأنك فهمت المشكلة بصورة خاطئة تماماً في البداية.
تاريخ النسخة الخاصة بـ' يجب أن يخبرنا عن ما تعلمناه
في الشركات الناشئة هذا يسمى 'Pivot' حيث تبدأ ببناء لعبة وينتهي بك الأمر ببناء نظام استغاثة مدهش بدلاً من ذلك.
لا تقف في مقعدك كثيراً. إذا كان هناك فرصة لـ مقعدتك عن طريق الدوران خذها
للأخطاء الحرجة: لا, أصلحها فقطM SK2
للأخطاء المعقدة التي تؤثر على عدة أنظمة أو تتطلب تغييرات معمارية: نعم. تتعامل معها مثل ميزةM SK2 ما الذي كسرته ' مشكله ( مسألة ), كيف ستقوم بحلها ' سوف تحلها ( حل ), كيف تتعرف عليها ' سوف تعرفونها ' تم إصلاحها | ( توضع المعايير |), ما لم تتغيره |
لكل شيء في المنتصف: استخدم رأيك. إذا لم يكن الصلاح واضحاًM SK2 أو قد يكون له آثار جانبية , يساعد وصفة سريعة
هذا صحيح بالتحديد بالنسبة للأخطاء الأمنية. تحتاج أن تعرف بدقة ما تقوم بحله و كيف ستقوم بتحققه ' share the fixes WIDELY
وبشكل رسمي كما تحتاجه فريقك. بعض الفرق على ما يرام مع تذكرات JIRA مفصلة. آخرون يريدون مستندات مناسبة في التحكم في النسخة
formality matters less than the content:
يمكنك أن تكتب ذلك في علامة "مسك0" "كونفلونس" "مكسك1" "كلمات" "ماكسك2" "أو مكتوبة على قماش" "موكسك3" الشكل لا يهم "ماكسيك4" "لا يهم" " ماكسيك5" التفكير يهم
هذا هو المفتاح الذي لا يُذكر غالبا لتطوير الذكي; ولماذا أكره الإطارات الذكيّة (و الإهانة ). النقطة الأساسية هي أنه مثل النموذج الذكي، فإن عمليةك تحتاج إلى أن تكون متكيفة أيضاًM SK3 إذا لم تنجح الكتابة قليلاً ' لا تعمل لفريق واحد ولكن الكثير يفعلها , تفعل ذلك | . إذا لا تعمل أي مذكرات للفريق الصغير لكن المذكرات الكاملة تعمل لمجموعة كبيرة |, | تفعل ذلك إذا عملت الدراجات اليومية لفريق واحد ولكن سباقات الأسبوعية لآخر الفكرة العامة هي أن نصنع أفضل منتج; فريقك هو الآلة التي تصنع ذلك المنتج. جعل الآلة تعمل بسلاسة قدر الإمكان
كمدير انظروا الى ما هي مخرجاتكم ; اذا كان الحاسوب يحتاج لرسم بياني توضح كيف يمكنك استخدام بياناتك الحالية لبناء واحد . اذا كنت تريد استخدام نقاط التاريخ '' هل هذا يعطي البيانات التي تحتاجها
في نهاية المطاف أنت تنتج خصائص الفريق وما يحتاجه المساهمين
مازلت تحتاج إلى إختبارات..,.. ربما أكثر.. ... خلال ستة أشهر عندما تحتاج إلى توسيع هذه الخاصية..
بالإضافة إلى ذلك، لا تزال تحتاج إلى
كتابة الإختبارات الخاصة بك هو مثل كتابة اختبارات وحدة.
اقولها "ماسك0" عندما يقول شخص ما "ماسک1" "أوه" "ماكس2" نسيت أن أذكر أنه يجب أن يفعل أيضاً "ماك3" " ماسك4" "لا توضيح" "مسك5" "إنه"
الإجابة MSC0 MSC1 هذا msc2 هو požadavek جيد msc3 لكنه sc4 ليس ما اتفقنا عليه في الوصفة التوضيحية psc5 دعونا msc6 نضيفه الى قسم خارج نطاق الان ونناقش ما اذا كان يجب ان نضمه او نحفظه لإصدار msc7
إذا كان حقاً متطلبات (لا لطيفة-لـ-أنتملكM SK3 عندها :
لا تستهلك أبداً الغطاء الضوئي . إنه ' سيدمّر تقديراتك ومصداقيتك
نعم, إذا كنتم'أنتم تقومون بتصنيع النماذج الأولية لإجابة الأسئلة المفتوحة . لاM SK3 إن كنتمـ'أنكم تبنيون من أجل الإنتاجMSC5
النموذج الأولي للتعلم هو جيد: " لدينا ثلاثة طرقM SK2 دعوني أضرب كل واحدة لأرى أيها تعمل بشكل أفضل ." هذا يُخبر بالتحديد
بناء برمجة الإنتاج قبل أن تكون الوصفة جاهزة تعني أنكم 'تم تتخمينون في الشروط . أنتم ' ستقومون على الأرجح ببناء الشيء الخاطىء
استثناء: إذا كنتـ' أنت مالك المنتج والمطور M SK2 مشروع منفرد), يمكنك أن تحدد وتبرمج في نفس الوقت . لكن لا تزال توثق قراراتك كما تذهب
' إلى أن يكون النموذج جاهزًا ' هو طريقة عظيمة لجعل المشغلين يشحنون حتى يبدأوا. تقدير المقاربات التكنولوجيةM SK3 كتابة لوحة بخارية مشتركة وغيرهمMSC4
اكتشف لماذا
إذا تجاهل الناس التقييمات المحددة ثم قاموا ببناء الشيء الخاطىء.
أيضاً : تجعل الوصفات سهلة في العثور عليها . إذا كانت ' مدفونة في بعض الwiki الغامضة , لن يقرأها أحد
قاعدة إبهام: M SK1 زمن التطوير.
بالنسبة لـ 2-إختيار أسبوعي: 1-2 أيام على الشريحةM SK3 بالنسبة لـ 1-إختيار أسبوعي : نصف يوم على الشريحة لـ2-day feature :" one or two on the spec
لكن لا تعتقد أن هذا شيئًا مقدسًا. بعض الخصائص تحتاج إلى المزيد.
إذا كنتم ' تقضيون وقتاً أكثر على البرمجة بدلاً من تنفيذها , أنتم ,' تبالغون في التفكير بها .. تذكروا , : أن البرمجيات هي أدوات تساعدكم على العمل .
لأن تقدير البرمجيات في الأساس صعب تقديرات تعمل فقط إذا قمت بفعل تلك المهمة قبل ذلك بدقة
والذي لا يحدث تقريباً
في كل مرة تخمين فيها , فأنت ' تتعامل مع
لهذا السبب
كلما كان العمل أكثر إثارة للإهتمام , كلما كانت تقديراتك أسوأ . بناء نفس شكل الـCRUD الذي قمت ببناءه | ' | صنعته |50 | مرات | ? | أنت |' | ستكون قريبة منك ــ . | الإندماج مع خدمة جديدة باستخدام بروتوكول غير مألوف ♫ ? | تقديرك هو تخمين مغطا بالأمل |
هذا هو السبب في الحاجة إلى إختبارات واضحة "done"kriteriensM SK2 يمكنك 't estimate accuratelyMNK4 but you can define when to stopMKK5 ThatMMK6s more valuableMZK7
هؤلاء يحتاجون مختلفين "doneM SK1 criteria. بدلاً من "feature X worksMSC4 itMska5s "weMske7ve answered question YMsek8
دليل مثال للبحث:
الوقت-القفز هو أمر حاسم للاستكشافM SK1 بدونه, المهام البحثية لا تنتهي أبداً
نبدأ بما نعرفه
Mark sections as "TBDM SK1 Be honest about uncertainty.
ثم استخدم عملية المراجعة المحددة لتملأ الفجوات. المحادثات خلال المراجعة غالباً تشرح ما لم تفهمه
تذكروا : غير مكتمل - لكن - ضربات صادقة كاملة - ولكن S- خاطئة .
بالتأكيد. الشريحة لا تحتاج إلى أن تكون وثيقة منفصلة. جيدًاM SK3 выпуск GitHub مكتوب أو تذكرة JIRA يمكن أن تخدم كشريحة بشكل جيد جدًا
ما يهم هو المحتوى , وليس الوعاء . قضية جيدة - كما - يجب أن يكون Spec .
الفوائد من استخدام المسائل
النصائح لاستعمال القضايا كإختبارات:
الاختبار: هل يمكن لشخص أن يقرأ المسألة ويعرف ما الذي يجب بناءه, ماذا M SK2 فعله " ماذا يعنيMSC4 وماMST5 خارج نطاق العملMSM6 إذا كان صحيحاًـ, إنه نموذج جيد regardless of format
إذا كنتم ' في مجال الرعاية الصحية
لكنكم أيضاً ستحتاجون إلى
حتى في بيئة تنظيمية, يعمل التنقيب الذكي. لديك فقط المزيد من الدوائر للقفز عبرهاM SK2 التوقيع لا يزال أداة ; إنها ' مجرد أداة تحتاج لإيجاب المنظمين وكذلك المطورين
كتابة مميزات جيدة في بيئة مرنة هو مهارة تتطور مع التدريب.
المبادئ الرئيسية:
الجزء الأصعب هو"MSC0" لا كتابة الوصف الأولي "MSC1" بل معرفة متى يجب التوقف عن العمل على أداة "MSc3" بدون أن يكون واضحاً " "done" " "criteria" "Specifics grow forever and never ship"
هذا هو السبب في صعوبة تقدير الذكاء.
أفضل ما يمكنك فعله : أن تكون واضحاً حول ما فعلته " ما يعنيه " , الوقت
الخاصية الجيدة تمكن المطورين من حل المشاكل بذكاء بينما يعرفون بالضبط متى يمكنهم وقفها
وإذا كنت مطوراً يقرأ نموذجاً لا يبدو منطقياً أو ليس واضحاً
© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.