वर्षों के दौरान मैंने पढ़ा है।
यहाँ मैं माइक्रोसॉफ्ट में सीखा कुछ है कि मैं स्पेक्ट्स के बारे में सोचने को बदल गया एक विनिर्दिष्ट ग्रन्थ नहीं है किसी भी उपकरण की तरह, आप इसे काम करने के लिए उपयोग करते हैं।
एक विशेषता को एक पवित्र वस्तु के रूप में व्यवहार करें।
विशेषताओं के लिए यह एजील दृष्टिकोण एक विशिष्ट चुनौतियां निर्मित करता है
सामान्य रूप से एक सिद्धांत मैं'में अपने कैरियर में जीता है।
बुनियादी तौर पर एक विशेषता स्पेक्ट एक बेहतर विशेषता बनाने के लिए वार्तालाप उपकरण है नहीं एक सिद्धांतात्मक
एजील यह है-’ स्थैंड नहीं है, - ऊपर और चिपचिपा नोट्स अनिश्चितता में सही बात बनाने के लिए आर्थिक रणनीति. प्रजातियां उस अनिश्चितता के भीतर रहते हैं, इसलिए उन्हें भी गतिशील होना चाहिए त्वरित घोषणापत्रइसे उत्पाद विकास के लिए डिज़ाइन पैटर्न के रूप में सोचें।
प्रत्येक लूप के बीच दूरी कम करता है “
प्रत्येक लूप के बाद स्पेक्ट अद्यतन करें. परिवर्तन लॉग है जो कुछ आपने सीखा है उसकी कहानी.
विशेषताओं को लिखने के लिए एकल सबसे महत्वपूर्ण सिद्धांत हमेशा समस्या से शुरू करें
यह पैटर्न सरल है
मैंने अनगिनत विनिर्दिष्टियाँ देखी हैं जो सीधे "प्रयोक्ता बटन X को क्लिक करता है जो API Y को बुलाता है, बिना कभी यह स्पष्ट करने के कि उपयोक्ता वास्तव में क्या प्राप्त करने की कोशिश कर रहा है
याद रखें विकासकर्ता विशेषता निर्माण मशीन हैं सचमुच (कोड विशेषताओं को प्रदान करने के लिए उपकरण है कार्य करना यह कैसे करने के लिए नहीं है-.-यदि आपके पास एक UX व्यक्ति है जो UX स्पेक्ट के लिए जिम्मेदार है तो डेव और वे एक साथ काम करना चाहिए। उपयोगकर्ता के लिए जो बदल सकता है और कोई भी बदलाव के लिए दबाव डालने के लिए सशक्त हो जाता है ( स्पेक्टिक में ) और उस समीक्षा प्रक्रिया का विचार परीक्षण करने के लिए
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 जाएँ।
चाल यह है कि निर्दिष्ट करें क्या बिना विहित करने के होने की जरूरत है कैसे ऐसा होता है
अच्छाजब कोई उपयोगकर्ता अवैध डेटा के साथ एक फ़ॉर्म प्रस्तुत करने का प्रयास करता है, तो उन्हें तुरंत प्रतिक्रिया प्राप्त करनी चाहिए जिसमें यह सूचित किया जाए कि कौन से क्षेत्रों में सुधार की जरूरत है
खराब: "प्रपत्र प्रस्तुत करने पर,प्रस्तुत बटन's onClick ह्यान्डलर को validateForm का आह्वान करना चाहिए\M SK4 जो फ़ॉर्म के माध्यम से प्रतिवर्तित होता हैFields एरे प्रत्येक क्षेत्र की जाँच करता है\MSC5उसकी वैधता के विपरीत मान\MST6\regex गुण और यदि कोई त्रुटि हो तो दिखाएँ त्रुटियाँ दिखाने के लिए पुकारा जाना चाहिए
पहला मुझे बताता है कि उपयोगकर्ता अनुभव क्या होना चाहिए।
## तस्वीरों का उपयोग करें / फ्लोcharts; बिंदु को पार करें
आपको याद रखें-'-आप लोगों को समझाने की कोशिश कर रहे हैं कि आप क्या सिफारिश कर रहे है। सुनिश्चित करने के लिए आप को समझ रहे हैंकिसी भी उपकरण का उपयोग करें जो आप की जरूरत है
एक विकी मरमीड में ग्राफ़्स इस के लिए महान हैं याद AI इन बनाने में भी एक पाठ विवरण दिए जाने पर महान है
कुछ लोग लिखित वर्णनों को विश्लेषण कर सकते हैं
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]
अगर वहाँ एक बात है मैं यह सीखा हूँ उपयोगकर्ताओं को अपने शूटी को तोड़ने के लिए तरीके ढूंढेंगे कि आप कभी कल्पना नहीं की थी
एक अच्छा स्पेक्ट केवल खुशी के रास्ते का वर्णन नहीं करता है
आपको इन सबको स्पेक्ट में हल करने की ज़रूरत नहीं है, लेकिन आपको यह मानना होगा कि वे मौजूद हैं।
बहुत से लोगों के लिए यह ' संभव है कि वे ' इस स्पेक्ट के लिए क्षेत्रफल से बाहर हैं \ . आप हो सकता है | ' | तकनीकी स्पेक्ट्स |' | जो कार्यान्वयन विवरण और तकनीकी समाधानों की विस्तृत जानकारी देता है
इन को कोड की समीक्षा के दौरान पीछे विचारों में शामिल नहीं किया जाना चाहिए।
इसी प्रकार, यदि निष्पादन संबंधी बाधाएं हों तो यह खोज करने के लिए 200ms में पूर्ण करना आवश्यक है।
यहाँ मैं विशेषता स्पेक्ट्स के लिए उपयोग करता हूँ टेम्प्लेट है
एक या दो पैराग्राफ जो हम क्या बना रहे हैं और क्यों यह महत्वपूर्ण है summarising what we're building and why it matters. Your CEO should be able to read just this section and understand the value
वर्तमान स्थिति क्या है?
यह मिला-—let उपयोगकर्ता कहानियां में बंधे हुए व्यक्तियों के साथ-साथ यह केवल एक जाँच सूची नहीं है बल्कि विभिन्न प्रकार के उपयोगकर्ताओं की प्रणाली से आदान-प्रदान का एक जीवित नक्शा है
उपयोगकर्ता कहानियां केवल एक बक्सा नहीं हैं वास्तविक व्यक्तियों को मूर्त रूप देना और उनके लक्ष्यों. आप जानते हैं इस बात का निर्माण करने के लिए पूरी बात. प्रत्येक कहानी को एक व्यक्ति के रूप में स्थापित करके आप स्वयं को वास्तविक उपयोग नमूने के बारे में सोचने के लिए बाध्य करते हैं
अंत में व्यक्तियों को पहचानने का एक स्वागत योग्य तरीका है कि आपका सॉफ्टवेयर किस प्रकार उपयोगकर्ताओं के विभिन्न प्रकार की सेवा कर सकता है
एक के रूप में [persona / उपयोक्ता का प्रकार] मैं चाहता हूँ [कुछ करने के लिए [मैं कुछ लक्ष्य प्राप्त कर रहा हूँ
“अर्थात खंड निर्माण विशेषताओं के प्रति सुरक्षा है कोई भी जरूरत नहीं है
| पेन्सोरा | | | कहानी & #44; | | यह क्यों महत्वपूर्ण है |---------|-------|----------------| Alex (Administrator प्रशासक, मैं भूमिकाओं और अनुमतियों को सौंपना चाहता हूँ ताकि मैं डेटा की सुरक्षा और अनुपालन सुनिश्चित कर सकता हूँ के रूप में सामान्य उपयोगकर्ता, मैं एक सरल dashboard चाहता हूँ ताकि मैं बिना तृप्त होने के सबसे महत्वपूर्ण सूचनाओं को शीघ्रता से देख सकता हूँ एक के रूप में पावर उपयोक्ता, मैं मनपसंद कार्यप्रवाह बनाना चाहता हूँ ताकि मैं पुनरावर्ती कार्यों को स्वचालित कर सकते हैं और समय बचा सकता है | मोर्गन (नया-प्रतीक |) | | नया आने वाला, मैं मार्गदर्शन पाठ्य और उपकरणटिप चाहता हूँ ताकि मैं बिना खोने की भावना के सिस्टम सीख सकता हूँ | टेलर हितधारक, मैं नियमित रिपोर्टें मुझे ईमेल करना चाहता हूँ ताकि मैं लॉगइन किए बिना प्रगति का ट्रैक कर सकता हूँ
यह आपका मांस और आलू है।
प्रत्येक आवश्यकता के लिए विनिर्दिष्ट करें
निष्पादन लक्ष्य, सुरक्षा आवश्यकताएंM SK1 पहुंचता मानकों, ब्राउज़रMSC3 उपकरण समर्थनMNK4 मत मानें कि ये स्पष्ट हैं–. लेकिन कुछ टीमों में ये पूरी तरह से अन्य टीमें हो सकती है।
इस अनुभाग के रूप में जितना महत्वपूर्ण है वैसा ही क्या है
यह क्यों महत्वपूर्ण है
सीमा से बाहर वस्तुओं के उदाहरण
यदि कोई तर्क करता है कि एक बाहरी स्कोप मद को स्कप में होना चाहिए।
आप जो नहीं जानते हैं के बारे में सच्चे रहें।
क्या अन्य प्रणालियों पर निर्भर करता है
यह कैसे क्यूटी परीक्षण करेगा? ये ठोस होना चाहिए।
यहाँ कुछ है जो नहीं करता है स्पेक में भी बग हो सकते हैं.
एक विशेष बग है जब विनिर्दिष्टीकरण स्वयं गलत होता है।
जब आप एक विकासकर्ता के रूप में एक विशेष बग पाते हैं
यह लगभग हमेशा सही उत्तर है
स्पेक्ट के मालिक को एक स्पष्ट संदेश भेजें
यह लिखित रूप में करें।
कभी-कभी आपको बस उस चीज़ को बनाने की इच्छा हो सकती है जो विनिर्दिष्ट है, चाहे आप जानते हों DO THIS.
मैंने विकासकर्ताओं को यह देखा है कि वे गलत थे क्योंकि वे जानते थे कि वे स्पेक्ट्स को लागू करते हैं, क्योंकि "thatM SK2s what it said to do" और फिर जबQA इसे अस्वीकार करता है या उपयोक्ता शिकायत करते हैं तो आश्चर्य से काम करें।
अपवाद यह है कि यदि आपको इस मुद्दे को उठाया गया है, किसी भी तरह आगे बढ़ने के लिए कहा गया है।
यदि आप विश्वास रखते हैं कि आप जानते है कि स्पेक्ट क्या कहना चाहिए, तो आप इसे स्वयं ठीक करने के लिए प्रलोभित हो सकते हैं
कभी भी चुपचाप आवश्यकताओं को बदलें
सबसे अच्छा दृष्टिकोण पहले से ही स्पेक्ट बगों को रोकना है
कुछ लोग सोचते हैं कि अधिक विवरण हमेशा बेहतर है
अगर आपका स्पेक्ट युद्ध और शांति में बदल रहा है
एक रिपोर्टिंग सिस्टम बनाना।
अगर आपका स्पेक्ट एक ही वाक्य में पूरी तरह से पकड़ा जा सकता है
"हम एक डैशबोर्ड की जरूरत है।
आवश्यकताएं जो दिन-प्रतिदिन बदलती हैं, यह नहीं है।
"जब हम-'-में होते हैं-हम भी-हमें भी मिल सकता है।
यह मानसिकता परिवर्तन है कि कैसे मैं स्पेक्ट्स लिखने में बदल गया है अपने स्पेक्ट को वैसा ही व्यवहार करें जैसा कि आप स्रोत कोड के साथ व्यवहार करते हैं
आपके विवरण को आपके कोड के साथ संस्करण नियंत्रण में रहना चाहिए।
माइक्रोसॉफ्ट में हम स्पेक्ट्स को कोड के रूप में एक ही रिपोजिटर में रखते थे।
जैसे कोड को पुनरीfactoring की आवश्यकता होती है, वैसे ही स्पेक्ट्स भी होती हैं. जैसे कि आप कार्यान्वयन के दौरान अधिक सीखते हैं.
समस्या को हल करने के लिए एक बेहतर तरीका मिला? नए दृष्टिकोण को प्रतिबिंबित करने और क्यों आपने दिशा बदली समझाने के लिए स्पेक्ट अद्यतन करें
विकास के बाद स्पेक्ट विकसित करने से पहले स्पेक्ट से अधिक परिष्कृत होना चाहिए
एक विशेषता है, जब विकास आरंभ होता है तब '\ t "\ t किया जाता है & #44; "\ t जब विकास शुरू होता है तो ,\ t यह '\ t सिर्फ इस चरण के लिए तैयार है।
इसका मतलब नहीं है कि स्पेक्ट रोज बदलना चाहिए।
इसे इस तरह सोचें
यहाँ कुछ है जो नहीं discussed enough आपके स्पेक्ट के बाद आने वाली सब चीज़ों का आधार बन जाता है
परीक्षण योजनाएं: QA स्पेक्ट पर आधारित परीक्षण केस लिखता है।
दस्तावेज़उपयोगकर्ता दस्तावेज़
भावी विकास: जब किसी को छह महीने बाद विशेषता का विस्तार करने की आवश्यकता होती है।
जहाज पर सवार होना: नए टीम सदस्य सिस्टम को आंशिक रूप से स्पेक्ट्स पढ़ने के द्वारा सीखते हैं
इसीलिए स्पेक्ट मौजूद रहना चाहिए
माइक्रोसॉफ्ट में हम स्पेक्ट अद्यतन को कोड अद्यतन के समान महत्व से व्यवहार करते थे।
अगर आप कोड बदलते हैं लेकिन नहीं, लेकिन विनिर्दिष्ट अद्यतन नहीं करता है, तो आप TECHNICAL DEBT बनाया है
# स्पेक्ट और कार्यान्वयन के बीच संबंध
यह एक बात है जो युवा विकासकर्ता अक्सर नहीं समझते स्पेक्ट सत्य का स्रोत नहीं है
स्पेक आपको बताता है कि आप क्या बनाना चाहते हैं।
इसका मतलब है
विभिन्न लोगों को स्पेक्ट्स से भिन्न चीज़ों की आवश्यकता है
कार्यपालक व्यापार मूल्य और अनुमानित समयरेखा जानना चाहते हैं
उत्पाद प्रबंधक - यह समझने की जरूरत है कि कैसे यह व्यापक उत्पाद रणनीति और रोडमैप में फिट करता है
विकासकर्ता सही ढंग से लागू करने के लिए पर्याप्त विवरण की आवश्यकता है बिना उन्हें यह बताया जाए कि उनका काम कैसे किया जाता है
प्रश्नोत्तरी यह कार्य करता है कैसे सत्यापित करने के लिए जानने की जरूरत है
डिजाइनर उपयोगकर्ता अनुभव क्या होना चाहिए यह जानने की जरूरत है।
एक अच्छा स्पेक्ट इन सभी श्रोताओं को बिना ब्लेड किए सेवा करता है
आप एक स्पेक्ट करने से पहले क्या किया है
लेकिन हम एकgile हैं।
एजील का अर्थ नहीं है 'नियोजित करने के लिए " या " नियोजित करें। विवरण उपकरण हैं, संविदा नहीं है आप उन्हें शुरू करने के लिए पर्याप्त विवरण से बनाते हैं।
बुनियादी भिन्नता है
जलfall Specs:
एजील स्पैक्स:
जलfall दृष्टिकोण मानता है कि आप कोड की एक पंक्ति लिखने से पहले पूरी तरह से सब कुछ निर्दिष्ट कर सकते हैं।
## फीडबैक लूप सब कुछ हैं
एजील स्पेक्टिंग में फ़ीडबैक लूप आपका सबसे अच्छा दोस्त है
डेवलपर फीडबैकआरंभिक दृष्टिकोण जीता था। ' X के कारण काम नहीं करता था। I.' इसके बजाय Y का प्रस्ताव कर रहा था।
उपयोक्ता पृष्ठपोषणवास्तविक उपयोगकर्ताओं के साथ इस सुविधा का प्रयास करें पिवोट आप क्या सीखते हैं पर आधारित स्पेक्ट
कार्यान्वयन फीडबैक: जब आप निर्माण करते हैं, ",", आप किनारे के मामलों को खोजते हैं \ ",", तकनीकी अवरोधों \ ',' या बेहतर दृष्टिकोण \
QA फीडबैकस्पेक्ट X कहता है लेकिन नहीं करता था
इन सब रिबैक लूपों में से प्रत्येक स्पेक्ट बेहतर बनाता है।
इसीलिए पानीfall स्पेक्ट्स अक्सर असफल होते हैं।
बडी बात है-, फ़ीडबैक के रूप में कम से कम संभव एलएलएमएपी यह आप एक BIT बनाने में मदद करता है फिर उपयोगी प्रतिक्रिया प्राप्त करने के लिए बनावटी डेटा का उपयोग करें
यह कुछ है जो पारंपरिक परियोजना प्रबंधकों को चिंतित करता है यह पूर्ण रूप से ठीक है यदि आरंभिक स्पेक्ट अंतर है
यदि आप नहीं जानते हैं, तो खंडों को चिह्नित करें।
यह नहीं है।
के साथ प्रारंभ करें:
जब आप सीखते हैं तो gaps को भरें।
इसे अब स्वीकार करें विकास के दौरान आपका स्पेक्ट बदलेगा अगर यह नहीं है, तो आप या तो अविश्वसनीय भाग्यशाली हो गए हैं या आप कुछ नहीं सीख रहे हैं
आपको अपेक्षा की जाने वाली परिवर्तनें
प्रत्येक परिवर्तन को होना चाहिए
संस्करण इतिहास आप क्या सीखा है की अभिलेख बन जाता है
यदि आप एक महत्वपूर्ण बात भूलें तो एजील दृष्टिकोण असफल हो सकता है "परिवर्तित होगा।
खराब एजील स्पेक्टिंग
सुचारु एजील स्पेक्टिंग
स्पेक्ट एक जीवित दस्तावेज है, लेकिन यह है
कभी भी आप जो भी चाहेंगे नहीं कर रहे हैं और इसे कभी भी नहीं बुलाते
यह एक गतिशील प्रक्रिया है जो सबसे अच्छी वस्तुओं को यथासंभव जल्दी बनाने के लिए सोल लक्ष्य रखता है त्वरित घोषणापत्र के रूप में कहता है ''' पहला सिद्धांत '.'
"हमारी सर्वोच्च प्राथमिकता ग्राहक को संतुष्ट करना है शीघ्र और निरंतर वितरण के माध्यम से मूल्यवान सॉफ्टवेयर
यह कोड बाहर स्पिनक करने के आसपास फेफ नहीं करता है क्योंकि आप भावना को पसंद करते हैं
सवाल यह है-'t "विस्तार को कैसे विस्तृत होना चाहिए ?" यह क्या हम विश्वासपूर्वक निर्माण शुरू करने के लिए जानने की जरूरत है
कुछ विशेषताओं के लिए जो हो सकता है
अन्य के लिए यह हो सकता है:
जहाँ अनिश्चितता है, विवरण जोड़ें अगर हर कोई इस बात पर सहमत हो कि किसी चीज का काम कैसे करना चाहिए, तो आपको यह लिखने की ज़रूरत नहीं है।
लेकिन अंत में यह है-' s ' फिडबैक लूप आरंभ करने के लिए पर्याप्त विवरण है
## टेम्प्लेट और AI: जल्दी शुरू हो रहा है
आरंभिक स्पेक्ट पर अधिक विचार न करें
टेम्प्लेट का उपयोग करें: कुंजी खंडों के साथ एक बुनियादी टेम्प्लेट रखें।
एक साधारण टेम्प्लेट हो सकता है
# [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
-
-
यह है 5 मिनट भरने के लिए और तुममें enough to start discussing or even building
à¤à¥à¤°à¥à¤Claude या ChatGPT जैसे उपकरण पहली ड्राफ्ट प्राप्त करने के लिए शानदार हो सकते हैं
लेकिन - और यह महत्वपूर्ण है AI के गहराई से आपको सब कुछ जोड़ने में आकर्षित न करें
अभियांत्रिकी व्यापक होना पसंद करता है।
अधिकतर को बाहर निकालें. क्या आप अभी जरूरत रखते हैं
एआई को एक मेनू के रूप में उत्पन्न स्पेक्ट सोचें।
लक्ष्य यह है-' एक पूर्ण स्पेक्ट नहीं है, ; यह है। ' कार्य आरंभ करने के लिए पर्याप्त स्पेक्ट है।
यहाँ क्या परिवर्तन है agile में आप एक स्पेक्ट नहीं लिखते और इसे डेवलपर्स को दीवार पर फेंक देते हैं स्पेक्ट एक सहयोगात्मक प्रयास है
सबसे अच्छा दृष्टिकोण मैंने देखा है
यह सहयोगात्मक दृष्टिकोण समस्याओं को जल्दी पकड़ता है जब वे
इससे भी अधिक महत्वपूर्ण है, यह मतलब है कि स्पेक्ट क्या प्रतिबिंबित करता है
यहाँ जहाँ एजिल स्पेक पारंपरिक से भिन्न होते हैं आप इसे बनाते समय विशेषता विकसित हो सकती है
आपको पता चलता है कि आपका आरंभिक दृष्टिकोण सफल होगा
आप सुविधा का प्रयास करते हैं और यह महसूस करता है कि यह नहीं करता
उपयोक्ता प्रतिक्रिया बेहतर समाधान प्रकट करती है
यह विकास एक विशेषता है
लेकिन यह एक समस्या पैदा करता है, यदि विशेषता बदल सकता है तो :
यह एकgile के गन्दे रहस्य है अनुमान बहुत कठिन है जब लक्षण विकसित हो सकते हैं
पारंपरिक अनुमान मानता है कि आप जानते हैं क्या आप बना रहे हैं
एजील आकलन आपको स्वीकार करता है कि आप नहीं कर रहे हैं
आप प्राक्कलित दायरे, अनिरपेक्ष नहीं है के बजाय यह लेगा 3 सप्ताहों को " आप कहते हैं कि """हम क्या पता लगाते है पर निर्भर करते हुए '2' और \ '5' के बीच कहीं से
You estimate in iterations हम इसे खोजने के लिए एक स्पिनट खर्च करेंगे और जो कुछ हमने सीखा है उसके बारे में रिपोर्ट करें। तब हम बाकी का अनुमान अधिक सही तरीके से कर सकते हैं
आप समय के बजाय स्कोप हम इस पर सप्ताह बिताएँगे
लेकिन इन सभी दृष्टिकोणों में एक महत्वपूर्ण आवश्यकता है आपको यह जानने की जरूरत है कि क्या करता है के एक स्पष्ट परिभाषा के बिना एक विशेषता हमेशा के लिए metastasising जारी रख सकता है
यह Waterfall दृष्टिकोणों के मुकाबले एजिल की एक आम आलोचना है।
यह है जहां बहुत से एजिल स्पेक्ट्स टूट जाते हैं।
बिना किसी स्पष्ट परिभाषा के किया जाता है युक्तियाँ नहीं होती हैं युक्तियों को समाप्त नहीं होता है 2 वे metastasise करते हैं 3 वे प्रसारित होते हैं 4 वे प्रणाली के अन्य भागों में tendrils का विकास करते हैं 5 इससे पहले कि आप इसे जानते हैं 6 आपका युक्ति सामान्य टिप्पणी प्रणाली 8 संदेश भेजने के साथ एक पूर्ण सामाजिक नेटवर्क में रूपांतरित हो गया है 9 प्रोफाइलें 10 और मित्र अनुरोध
I'ने स्वीकार्य मानदंडों के साथ स्पेक्ट्स देखा है जैसे
ये कार्य के परिभाषाएँ नहीं हैं, वे अस्पष्ट आकांक्षाएं हैं।
विकासकर्ता को जानने की जरूरत है क्या विशिष्ट बात है जब लागू किया जाता है
अच्छा "doneM SK1 मानक हैं
खराब: "Comments should be moderatedM SK2 अच्छाएडमिन उपयोक्ता अनुमोदन कर सकते हैं।
खराबSearch should be fast" अच्छापरिणाम प्रासंगिकता के आधार पर श्रेणीबद्ध होते हैं।
खराबà¤à¥à¤°à¥à¤ अच्छाà¤à¥à¤°à¥à¤
भिन्नता को ध्यान दें? अच्छे उदाहरण आपको ठीक से बताते हैं कि क्या होना चाहिए और जब आप चीजें जोड़ना बंद कर सकते हैं
याद करो जब मैंने कहा था कि क्षेत्र से बाहर अनुभाग क्षेत्र में क्या है जैसे ही महत्वपूर्ण है
हर विशेषता के लिए , \ There are dozens of things you could add
क्षेत्र में: नीस्टेड टिप्पणी क्षेत्र से बाहर: अनसीमित टिप्पणी थ्रेडिंगM SK1 टिप्पणी मतदान, टिप्पणी थ्रिडिंग, सबसे अच्छा टिप्पणी क्रमबद्ध करनाMSC4 टिप्पणी permalinks (ये बाद में अलग विशेषताओं के रूप में आएँगे
अब जब कोई सुझाव देता है "shouldn't comments have upvotes?" you can point to the spec and say
ओह और अगली विशेषता ? अच्छी तरह से आप एक गुच्छा उपयोग में न लाए गए अच्छे विचारों को पहले ही पकड़ा है
कभी-कभी आप सचमुच नहीं जानते।
"हम'हम recommendation algorithm के विभिन्न दृष्टिकोणों को प्रारूप बनाने के लिए 2 सप्ताह बिताएँगे या जब तक बैकएण्ड तैयार न हो जाए तब तक।
लेकिन ध्यान दें, आप अभी भी एक ठोस है।
एक स्पाइक इन में से एक है। 'को खेलने और इस तकनीक का पता लगाने के लिए जाना चाहिए।
एक स्प्रिंट को अंत में उपलब्धताओं के लिए अपेक्षित है (कुछ कोई अन्य व्यक्ति जो इस में संलग्न व्यक्ति से भिन्न है यह लूप के लिए परीक्षण कर सकता है
वे भी डेव्स के लिए आनंददायक हैं और टीम में मदद करते हैं मैं अक्सर एक परियोजना के दौरान स्पाइक विचार एकत्र करता हूँ और जब वहाँ है तो मैं डेवों को एक खोजने के लिए चुनने देता हूँ।
यहां तक कि स्पष्ट "done" मापदण्ड के साथ-साथ स्कोप कूद सकता हैM SK3 आप किनारे केसों का पता लगाते हैं . आप यह महसूस करते हैं कि उपयोगकर्ताओं को कुछ की जरूरत होती है जिसे आपने नहीं सोचा था।
इसे दस्तावेज़ करें जब आप किसी नई चीज़ को खोजते हैं जिसे जोड़ने की जरूरत है
यह दो उद्देश्यों का काम करता है
अगर आपका स्पेक्ट बढ़ता रहता है, तो यह एक संकेत है।
किसी बिंदु पर आपको भेजने की ज़रूरत है
एक अच्छा परीक्षण क्या उपयोगकर्ता इस सुविधा से मूल्य प्राप्त कर सकते हैं जैसा कि यह है
यदि हाँ है, तो इसे भेजें।
अगर नहीं, तो आप क्या कहते हैं
गतिशीलता का सबसे कठिन हिस्सा है
लेकिन याद रखें कि आपको यह सोचना होगा कि आप इसे सभी को जारी कर सकते हैं या नहीं।
# स्पेक समीक्षा प्रक्रिया
एक स्पेक्ट जब आप इसे लिखने को समाप्त करते हैं तब नहीं किया जाता है
मैं माइक्रोसॉफ्ट में सीखा सबसे अच्छा अभ्यास विशेष समीक्षाओं की तरह ही काम करता है कोड समीक्षाएँ. वे-'-सहयोगी होते हैं-,-विरोधी नहीं होते हैं। ( यद्यपि माइक्रोसॉफ्ट के लड़के क्लब ने अक्सर स्पेक्ट समीक्षाओं को यदि कोई मादा था तो ग्लेडियटरी युद्ध जैसा महसूस किया।
विवरणों की समीक्षा करते समय:
जब आपका स्पेक्ट समीक्षा किया जा रहा है
सबसे अच्छा स्पेक्ट समीक्षा वार्तालाप है।
महत्वपूर्ण सभी दृष्टिकोणों से समीक्षा प्राप्त करें
विकासकर्ता समीक्षा क्या यह वास्तव में काम करेगा
उत्पाद समीक्षा क्या यह सही समस्या को हल करता है?
डिजाइन समीक्षा क्या उपयोगकर्ता अनुभव समझता है?
प्रश्नोत्तर समीक्षा क्या हम यह परीक्षण कर सकते हैं?
आपको औपचारिक चिह्न की जरूरत नहीं है।
अच्छे समीक्षाकर्ता प्रश्न पूछते हैं जो स्पेक्ट सुधारता है
इनमें से कोई भी गॉच नहीं है
आप हर सुझाव को स्वीकार नहीं करेंगे
समीक्षा के प्रत्येक दौर से स्पेक्ट बेहतर होना चाहिए
कार्यान्वयन शुरू करने से पहले इन सभी दृष्टिकोणों से समीक्षा प्राप्त करें
यह सब कम अमूर्त बनाने के लिए-, यहाँ-' क्या एक स्पेक्ट क्या एक स्वचालित मार्क डाउन अनुवाद विशेषता मैं इस ब्लॉग के लिए बनाया है कि क्या लग सकता है
अंग्रेजी में लिखे गए ब्लॉग पोस्टों को केवल गैर शामिल नहीं करता है।
एक पृष्ठभूमि सेवा को लागू करें जो स्वचालित रूप से मार्कडाउन फ़ाइलों को EasyNMT मशीन अनुवाद सेवा के उपयोग से कॉन्फ़िगर किए गए लक्ष्य भाषाओं में अनुवाद करता है
ये मानक हमें ठीक से बताते हैं जब हम इस सुविधा पर काम करना बंद कर सकते हैं
ध्यान दें कि ये विशिष्ट और परीक्षण योग्य हैं।
विकास के दौरान कई चीजें उभरी जो स्पेक को परिष्कृत किया
बैच आकार अनुकूलन: लाइन बैचों के साथ आरंभ किया गया, लेकिन EasyNMT के तहत रहने के लिए अधिक विश्वसनीय लाइनें मिला
छवि पता लगानाआरंभ में छवि फ़ाइलनाम मार्कडाउन में अनुवाद सेवा को भेजा जा रहा था
सेवा उपलब्धता: EasyNMT आरंभ पर भावनात्मक हो सकता है /model_name अनुवाद करने के प्रयास से पहले अंतिम बिंदु
हैश भंडारणफ़ाइल हैश के लिए मूल रूप से योजनाबद्ध डाटाबेस भंडारण .hash फ़ाइलें सरल साबित हुई और इस सेवा के लिए डाटाबेस निर्भरता से बच गया.
इन सीखों को दस्तावेज़ में फिर से फोल्ड किया गया और बाद में समान विशेषताओं के बारे में जानकारी दी गई
यह स्पेक्ट discussed सिद्धांतों का अनुसरण करता है
परिणाम-: एक विशेषता है कि-' महीनों के लिए उत्पादन में चल रहा है। , कम से कम हस्तक्षेप के साथ प्रत्येक ब्लॉग पोस्ट को स्वचालित रूपांतरित करता है।
हम क्या शामिल किया है के आधार पर यहाँ अक्सर आने वाले सवाल हैं
यह उस पर निर्भर करता है "small." यदि यह 'सच्चे तौर पर बेवकूफ है।
तो हाँ, ,। यहां तक कि एक त्वरित स्पेक्ट भी मदद करता है।
यदि आप कर सकते हैं, तो आप को दो वाक्यों में क्या दिखता है
क्षेत्र से बाहर धारा को संकेतित करें
यदि वे आग्रह करते हैं कि सब कुछ समान रूप से महत्वपूर्ण है, तो वे सुझाव देते हैं कि वे किस अन्य कार्य को पीछे लाने के लिए चुनें
कि'का जुर्माना
यदि स्पेक पहचाना नहीं जा सकता है क्योंकि आप मूल में समस्या को पूरी तरह गलत समझे हैं, तो यह एक संकेत है कि अगले बार शुरू करने से पहले अधिक खोज करना है।
संस्करण इतिहास आपको क्या सीखा है के बारे में बताना चाहिए
स्टार्टअप में यह एक 'Pivot' कहा जाता है जहां आप एक खेल बनाना शुरू करते हैं और अंत में एक अद्भुत संदेश प्रणाली बनाते हैं इसके बजाय।
Don't get too locked in
महत्वपूर्ण बग के लिए
जटिल बग के लिए, जो अनेक सिस्टम पर प्रभाव डालते हैं या वास्तुकला परिवर्तनों की आवश्यकता होती है।
के बीच में हर चीज़ के लिए: अपने निर्णय का उपयोग करें. यदि समाधान स्पष्ट नहीं है, या इसका दुष्प्रभाव हो सकता है
यह सुरक्षा बगों के लिए विशेष रूप से सच है. आपको यह जानना चाहिए कि आप क्या ठीक कर रहे हैं और कैसे आप इसे सत्यापित करेंगे
जैसा कि आपकी टीम की आवश्यकता होती है, औपचारिक रूप से. कुछ टीमें विस्तृत JIRA टिकटों के साथ अच्छी तरह से काम कर रहे हैं
औपचारिकता सामग्री से कम महत्व रखती है
आप इसे मार्कडाउन में लिख सकते हैं
यह एकgile विकास के लिए प्रायः अवर्णित कुंजी है। अगर दिन के चक्र एक टीम के लिए काम करते हैं लेकिन एक दूसरे के लिए सप्ताह के स्पिनट आपका दल उस उत्पाद को बनाने वाला मशीन है
एक प्रबंधक के रूप में देखें कि आपके आउटपुट क्या हैं; यदि बोर्ड को एक बर्न डाउन ग्राफ की जरूरत है तो कैसे आप एक बनाने के लिए मौजूदा डेटा का उपयोग कर सकते हैं
अंत में आप टीम आउटपुट सुविधाएं और क्या भागीदारों की जरूरत है
आपको अभी भी विशेषताओं की जरूरत है, शायद इससे भी अधिक हो सकता है . छह महीनों में जब आप इस सुविधा को विस्तारित करने के लिए आवश्यक होता है।
इसके अलावा आपको अभी भी करने की जरूरत है
अपने लिए स्पेक्ट्स लिखना एक इकाई परीक्षणों को लिखने की तरह है। यह अब धीमी लगता है लेकिन बाद में समय बचाता है।
जब कोई कहता है, “"”Oh“,”मैं यह भी उल्लेख करने के लिए भूल गया था कि इसे भी करना चाहिए X”,"” कि
जवाब: "ऐसे किM SK2 एक अच्छा वांछितता है , लेकिन यह\ '\ क्या हम स्पेक्ट में सहमत नहीं हैं.\ हम इसे अभी के लिए बाहर क्षेत्र से धारा में जोड़ें और विचार करें कि क्या इसे शामिल करना या इसे संस्करण के लिए सहेजना
यदि यह वास्तव में एक आवश्यकता है, तो
कभी भी चुपचाप स्कोप क्रीप अवशोषित करें
हाँ, यदि आप'आप खुले प्रश्नों का उत्तर देने के लिए प्रारूप निर्माण कर रहे हैं।
सीखने के लिए प्रोटोटाइपिंग अच्छा है
स्पेक्ट तैयार होने से पहले निर्माण उत्पादन कोड का मतलब है कि आप
अपवाद: यदि आप'उत्पादक मालिक और डेवलपनर हैं |( |सोलो परियोजना | ), | आप एक साथ विनिर्दिष्ट कर सकते है और कोड बना सकते हैं . | लेकिन फिर भी अपने निर्णयों को दस्तावेज़ करें जैसे आप जा रहे हैं
' जब तक स्पेक्ट तैयार नहीं है।
पता लगाने के लिए क्यों
यदि लोग स्पेक्ट समीक्षाओं को छोड़ दें और फिर गलत बात बनाते हैं, तो यह स्पेक्ट में नहीं था, इसलिए हमें इसे फिर से कार्य करना होगा
Also: specs make easy to find
विकास समय का नियम
एक 2- सप्ताह विशेषता के लिए एक 1- सप्ताह विशेषता के लिए एक दिन विशेषता के लिए 2-के लिए एक घंटा या दो स्पेक्ट पर
कुछ विशेषताओं को अधिक ऊपर की जरूरत है
अगर आप इस पर अधिक समय व्यतीत कर रहे हैं कि कार्यान्वयन के बजाय
क्योंकि सॉफ्टवेयर आकलन मूलतः कठिन है आकलन तभी काम करता है यदि आप
जो प्रायः कभी नहीं होता
हर बार जब आप अनुमान लगाते हैं ',' आप ''' के साथ काम कर रहे हैं
इसीलिए
काम जितना नया होगा, उतना आपके अनुमान भी खराब होंगे।
इसीलिए विशेषताओं को स्पष्ट की जरूरत है "done" criteria
इन्हें भिन्न आवश्यकता होती है।
खोज के लिए उदाहरण स्पेक्ट:
समय-बाक्सिंग अन्वेषण के लिए महत्वपूर्ण है
से शुरू करें जो आप जानते हैं
अनुभागों को "TBD." अनिश्चितता के बारे में सच्चे रहें
तब स्पेक्ट समीक्षा प्रक्रिया का उपयोग करके रिक्तियों को भरें
याद रखें
पूरी तरह से . स्पेक्ट को नहीं है | ' | एक अलग दस्तावेज़ होने की जरूरत नहीं है & #44; . | अच्छी तरह से\ - | लिखा गया GitHub निर्गम या JIRA टिकट स्पेक्ट के रूप में काम कर सकता है पूरी तरह अच्छी तरह
क्या बात है सामग्री के रूप में नहीं Container
मुद्दे का उपयोग करने के लाभ
निर्णायक के रूप में समस्याओं का उपयोग करने के लिए सुझाव
परीक्षण: कोई इस मुद्दे को पढ़ सकता है और क्या बनाना जानता है।
यदि आप healthcare में हैं, ,, वित्त,,, एयरोस्पेस या अन्य विनियमित क्षेत्रों में है तो आपको अनुपालन के लिए अधिक औपचारिक विनिर्दिष्टियों की आवश्यकता होगी।
लेकिन आप को भी ज़रूरत होगी
विनियमित परिवेशों में भी।
एक एजील वातावरण में अच्छी विशेषता स्पेक्ट्स लिखना एक कौशल है जो अभ्यास के साथ सुधार करता है।
प्रमुख सिद्धांत
सबसे कठिन हिस्सा यह है-' आरंभिक स्पेक्ट को लिखना नहीं करता है, . यह जानता है कि जब एक विशेषता पर काम करना बंद करने के लिए . बिना स्पष्ट " के बिना किया जाता है
यही कारण है कि एजील आकलन इतनी कठिन है।
आप क्या कर सकते हैं best you can do: be clear about what
एक अच्छा विशेषता विकासकर्ताओं को समझदार ढंग से समस्याओं का समाधान करने के लिए शक्ति देता है जबकि वे सही समय पर रोक सकते हैं जानते हैं
और यदि आप एक विकासकर्ता हैं जो एक विशेषता को पढ़ रहा है कि ' समझ नहीं आता या कोई स्पष्ट नहीं है
© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.