Back to "Agile Speccing: Writing Feature Specs που λειτουργούν πραγματικά"

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

Agile Documentation Software Development

Agile Speccing: Writing Feature Specs που λειτουργούν πραγματικά

Tuesday, 11 November 2025

Εισαγωγή

Κατά τη διάρκεια των ετών μου άρεσε' αναφέρει ανάγνωση / έγραψε εκατοντάδες προδιαγραφές χαρακτηριστικών ΜSK2 αναφέρουν Ορισμένα ήταν λαμπερά ΜSK3 αναφέρεται ότι οι περισσότεροι ήταν αιματηρή τρομερό . αναφέρει Η διαφορά μεταξύ μιας καλής ειδικότητας και ενός κακού δεν είναι σίγουρα' αναφέρει για το μήκος ή την τυπικότητα ; αναφέρει ότι η ' αναφέρει αν πραγματικά βοηθά τους προγραμματιστές να οικοδομήσουν το σωστό πράγμα χωρίς να τους οδηγήσει τρελό στη διαδικασία

Εδώ' αναφέρει κάτι που έμαθα στη Microsoft το οποίο άλλαξε τον τρόπο σκέψης μου για τα specs: Ένα spec δεν είναι μια Βίβλος;ΜSK1 ένα εργαλείο. Όπως οποιοδήποτε εργαλείο μπορεί να χρησιμοποιηθεί για να πάρετε μια δουλειά που έχει ολοκληρωθεί για το . μπορεί να προσθέσετε τόσες λεπτομέρειες όπως μπορείτε, μπορεί τα ενδιαφερόμενα μέρη μπορεί, μπορεί και οι προγραμματιστές πρέπει να πάει για το . μπορεί, στη συνέχεια θα την προσαρμόσετε για το MK5 μπορεί να αλλάξει για το MC6 μπορεί και να επικαιροποιήσει καθώς η λειτουργία αναπτύσσεται για το SMK7 μπορεί

Θεραπεύστε ένα spec ως ιερό, αμετάβλητο έγγραφο και θαυμάζετε το ' αναμένεται να χτίσει το λάθος πράγμα τέλεια Το (' αναμένει πολύ γρήγορα στην λάθος κατεύθυνση Το '). αναμένετε Αντιμετωπίστε το ως ένα ζωντανό εργαλείο και θαύμαζετε τον ' αναμένω να χτιστεί κάτι που πραγματικά επιλύει προβλήματα

Αυτή η ευέλικτη προσέγγιση για τα specs δημιουργεί μια ιδιαίτερη πρόκληση: αν το χαρακτηριστικό μπορεί να εξελιχθεί καθώς μαθαίνετεΜSK1 πώς η κόλαση την εκτιμάτε? Πώς ξέρετε όταν σας αρέσει' κάνουμε ΜSK4 Αυτό σχεδόν ΜSK5 τι είναι αυτό το άρθρο σχετικά με

Σε γενικές γραμμές, μια αρχή που μου αρέσει'βει ζωντανή από την καριέρα μου; ALL διαδικασία αν είναι specs / γεμίζοντας σε αναφορές ΜSK3 ακόμη και κριτικές κώδικα κλπM SK4 είναι ένας φόροςMK5 Όπως όλοι οι φόροι χρειάζεται να παράσχει αξία για τα χρήματα όσον αφορά ένα καλύτερο αποτέλεσμα από ό, τι θα ήταν χωρίς αυτό ή πρέπει να πάει . Αν η διαδικασία σας λέει ότι χρειάζεστε ένα αυστηρό σύστημα σημείων ιστορίας και κάψτε τα γραφικά αλλά κανένα bugger τους χρησιμοποιεί για οτιδήποτε εκτός απ’ το να ενοχλεί την ομάδα σαςMST7

Θεμελιωδώς, το ; μπορεί να είναι ένα χαρακτηριστικό Spec είναι ένα εργαλείο συνομιλίας για να κάνει το χαρακτηριστικό καλύτερο ΟΧΙ μια δογματική σχέση, μπορεί να μην αλλάξει LAW.

Γιατί Agile ( και Τι Σημαίνει ΠράγματιΜSK1

Agile δεν είναι’τ standΜSK1ups και sticky notes.ΑυτόM SK3τ ένα Οικονομική στρατηγική για την οικοδόμηση του σωστού υπό αβεβαιότητα. Specs ζουν μέσα σ’ αυτή την αβεβαιότηταΜSK1 έτσι πρέπει να είναι ευέλικτοι πολύ. Διαβάστε το άρθρο Μανιφέστο Agile, αφήστε το να γίνει όπως σκέφτεσαι για την κατασκευή ΚΑΘΕ ΠΡΟΣΟΧΗ. Σκεφτείτε το ως πρότυπο σχεδιασμού για την ανάπτυξη προϊόντων. Το ' δεν είναι μια διαδικασίαM SK4 το ' έχει ένα μυαλό

Πρώτες αρχές

  • Η αλλαγή είναι η προεπιλογή, όχι εξαίρεση. Οι αγορές κινούνται, οι χρήστες σας εκπλήσσουνΜSK1 εξαρτήσεις slip. Ένα spec που μπορεί να επιτύχει’ flex γίνεται φαντασίαM SK4
  • Οι μαθησιακές κινήσεις προβλέπουν. Μπορείτε να ανακαλύψετε τις πραγματικές απαιτήσεις μόνο αφού οι άνθρωποι αγγίζουν το πράγμα. Agile κάνει μάθηση Φτηνά και γρήγορα.
  • Πλησιάζει ηρωικά . Μικρά, συνεχείς κινήσεις χτυπήσει μεγάλαΜSK1 ασυνήθιστη “μεγάλη έκρηξηM SK3 πέφτειMK4

Η οικονομία ( γιατί αυτό σας εξοικονομεί χρήματαΜSK1

  • Μειώστε το κόστος του λάθους. Σύντομοι κύκλοι + ειδικά ελαφριά μαρτυρίες σημαίνει κακές ιδέες πεθαίνουν γρήγορα αντί μετά από ένα έξιΜSK1εβδομάδα οικοδόμησης.
  • Απεργία μη αναστρέψιμων αποφάσεων. Κρατήστε τις επιλογές ανοιχτές μέχρι την τελευταία υπεύθυνη στιγμή που οι επιχειρήσεις ; δεσμεύονται όταν η πληροφορία είναι υψηλότερη και ο κίνδυνος είναι χαμηλότερος.
  • Μειώστε την εγκατάσταση. Μισό- ανακοινώθηκε epics και μαζικό “ ανακοινωμένο μέλλον ΜSK2 ανακοινώνεται τμήματα εργάζονταιM SK3 διατηρείMK4 ανακοινώνει προοδευτικό χρέος. ανακοινά πλοίο λεπτές γραμμέςMSKA6 ανακοινούμενη τράπεζα την αξία

Η ανατροφοδότηση είναι το προϊόν

Κάθε κύκλωμα συντομεύει την απόσταση μεταξύ “idea” και ΜSK2 χρήσιμεςM SK3

  • ΕΠΙΧΕΙΡΗΣΗ ⇄Dev: Πάρτε τις αδυναμίες πριν κωδικοποιήσετε τα κέντρα τους.
  • ΔΗΜΟΚΡΑΤΙΑ ⇄QA: Μετατρέψτε τα κριτήρια αποδοχής σε εκτελεστικούς ελέγχους.
  • Εσωτερική τροφή σκυλιών ⇄ ΧρήστεςΜSK1 αποδείξτε ότι επιλύει ένα πραγματικό πρόβλημα, όχι μια φανταστικήΜSK1

Ενημερώστε το spec μετά από κάθε κύκλο.Το log αλλαγής είναι το Ιστορία του τι έμαθες.

Τι κάνει ένα καλό Spec

Το πρόβλημα-Επεξεργασία

Η μοναδική πιο σημαντική αρχή για το γράψιμο specs: Πάντα ξεκινήστε με το πρόβλημα, δεν είναι η λύσηΜSK1

Αυτό το πρότυπο είναι απλό:

  1. Πρόβλημα - Ποιες πιθανότητες θα δημιουργούσαν οι λειτουργίες για το ? Τι πόνο βιώνουν οι χρήστες για τον ?
  2. Λύση - Εδώ Η ' αναφέρει τον τρόπο με τον οποίο προτείνουμε να το διορθώσουμε Το / εκμεταλλεύεται αυτή την ευκαιρία
  3. Στο πεδίο - Τι μας αρέσει' ελπίζει να κάνει σε αυτό το spec
  4. Πέρα από το πεδίο -Αυτό που χρειαζόμαστε' αναφέρει σαφώς ΔΕΝ ΚΑΝΕΙ ΜSK2 ισοδύναμα σημαντική Η ; αναφέρει ότι τροφοδοτεί τον μελλοντικό προγραμματισμό και σταματά την η ' γιατί είναι η ΜSK5 αναφέρει πως κάνουμε xΗ ΜSK6 αναφέρει ερωτήσεις για το ΜSK7 αναφέρει

I'βλεπα αμέτρητα specs που πηδούν απευθείας σε "Ο χρήστης κάντε κλικ στο κουμπί X το οποίο καλεί API YΜSK2χωρίς ποτέ να εξηγήσει τι ο χρήστες προσπαθεί πραγματικά να επιτύχειM SK3Αυτό είναι ένα τσιγάροMK4backwardsMSKA5Τι λεπτομέρειες εφαρμογής θα πρέπει να τρέχουν φυσικά από την κατανόηση του προβλήματοςMKA6

Θυμηθείτε ότι οι προγραμματιστές είναι μηχανές κατασκευής χαρακτηριστικών REALLY (code είναι το εργαλείο για να παραδώσει χαρακτηριστικά); τους λέει τι Πρέπει να κάνουμε ΟΧΙ πώς να το κάνετε. αν έχετε ένα UX πρόσωπο πουΜSK1 ευθύνεται για το UX spec τότε ο dev και αυτοί θα πρέπει να εργαστούν μαζί. Το σημείο είναι να κάνει την καλύτερη λειτουργία Για τον χρήστη που μπορεί να αλλάξει και οποιοσδήποτε έχει την εξουσία να πιέσει για την αλλαγή ( διατηρεί το specΜSK1 και έχουν αυτή τη διαδικασία επανεξέτασης δοκιμάζει την ιδέα

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

Η σαφήνεια του σκοπού

Πριν γράψετε μια λέξη για την εφαρμογή, πρέπει να απαντήσετε σε ένα ερώτημα: ΓΙΑΤΙ ΠΡΕΠΕΙ ΝΑ ΚΑΝΟΥΝ

Γιατί χτίζουμε αυτό? Ποιο πρόβλημα λύνειΜSK1 Ποιος ωφελεί? Εάν μπορείτε να ικανοποιήσετε' απαντήστε σε αυτές τις ερωτήσεις σαφώςM SK4 έχετεMK5 αποκτά ένα χαρακτηριστικόMSKA6 σας αρέσει' αποκτήσει μια λίστα επιθυμιώνMKA8

Ένα καλό spec ξεκινά με:

  1. Η προβληματική δήλωση - ΤιΜSK1 αναφέρει σπασμένο ή λείπει? Να είστε συγκεκριμένοι ΜSK3
  2. Ο αντίκτυπος του χρήστη - Ποιος φροντίζει και γιατί το ? Quantify αν είναι δυνατόν το .
  3. Κριτήρια επιτυχίας - Πως γνωρίζουμε ότι το πετύχαμε' λύθηκεΜSK2 Κάντε το μετρήσιμο.
  4. Κανένας δεν θέλει - Τι είμαστε σαφώς ΔΕΝ κάνουμεΜSK1 Αυτό εμποδίζει την κλίμακα και τις ατελείωτες συζητήσεις.

Το σωστό επίπεδο των λεπτομερειών

Αυτός είναι ο τόπος όπου οι περισσότεροι ειδικοί πηγαίνουν στήθη-πΜSK1Πολύ αβέβαιο και οι προγραμματιστές αφήνονται να φανταστούν; πάρα πολύ λεπτομερή και εσείςΜsk3μουν μικροδιαχείριση επιλογές υλοποίησης που οι developers είναι καλύτερα εξειδικευμένοι για να κάνουνM SK4

Το κόλπο είναι να προσδιορίσουμε Τι Πρέπει να συμβεί χωρίς συνταγή Πώς Για παράδειγμα, το :

Καλή: ΜSK1Όταν ένας χρήστης προσπαθεί να υποβάλει μια φόρμα με μη ισχύοντα δεδομένα, θα πρέπει να λαμβάνουν άμεση ανατροφοδότηση που δείχνει ποια πεδία χρειάζονται διόρθωση

κακό: ΜSK1Στην υποβολή φόρμαςΗ ΜSK2 το κουμπί υποβολήςΗ ' σεClick handler θα πρέπει να καλέσει validateFormη ΜSK4 η οποία iterates μέσω formFields array ελέγχοντας κάθε πεδίοη .αξιολόγηση εναντίον της επικύρωσής τουΗ μSK6regex ιδιοκτησία και αν οποιαδήποτε αποτυχία θα έπρεπε να καλεί showErrorΑξιολογίες() με το πεδείοΟνομασία και επικύρωσηΟι παραμέτρους ανακοινώσεων.

Ο πρώτος μου λέει τι θα πρέπει να είναι η εμπειρία του χρήστη; ίσως μπορώ να την εφαρμόσω στο React, Δείτε το , βανίλια JavaScriptM SK3 ή φορέας μολύβι για όλα αυτά που έχουν σημασίαΜSK4 Το δεύτερο υποθέτει λεπτομέρειες εφαρμογής που μπορεί να είναι εντελώς λανθασμένες για το τεχνολογικό σκάκι ή εισάγει περιττές περιορισμούςMK5 Διαφορετικοί άνθρωποι έχουν διαφορετικές δυνάμεις συχνά το άτομο γράφει το spec δεν' τεχνική / όχι' ο ένας γράφει τον κώδικαM Sk9 Φανταστείτε ότι είστε οδηγός καλωδίων και δεν είστε γνωστοί στον προορισμό αλλά κάθε συσκευή μεταβάλλεται

## Χρησιμοποιήστε Φωτογραφίες / αναφέρει χάρτες ροής ΜSK1 αναφέρει Get The Point Across

Θυμηθείτε ότι το ' αναμένεται να προσπαθήσει να πάρει τους ανθρώπους να κατανοήσουν τι σας ενδιαφέρει' αναμένει να προτείνει το . αναμένω Μερικές ομάδες περιλαμβάνουν τα έγγραφα Figma ( αναμένεται storyboard ΜSK4 αναμενόταν ux ' αναμενώνεται με ') αναμερώνεται ή εικόνες του UI που κατασκευάστηκε από τον σχεδιαστή Smk7 αναμελώνεται Όπως όλα τα άλλα αν και αυτά είναι SMK8 αναμενόμενα δοκιμάζουμε αυτό Βεβαιωθείτε ότι σας αρέσει να καταλαβαίνετε. Χρησιμοποιήστε οποιοδήποτε εργαλείο χρειάζεστεΜSK1

Σε ένα Wiki mermaid. διαγράμματα είναι GREAT για αυτόΜSK1 ; ίσως να θυμάστε ότι η AI είναι GREAT στη δημιουργία αυτών επίσης δεδομένης μιας κειμενικής περιγραφήςΜSK1

Μερικοί άνθρωποι μπορούν να μοιράζονται γραπτές περιγραφές, κάποιες χρειάζονται εικόνες και ταινίες!

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]

Edge Cases και επεξεργασία σφαλμάτων

Εάν υπάρχει ένα πράγμα που μου αρέσει το ' μου αρεθεί ότι έμαθε αυτό, τότε το ' μου αρωθεί αυτό. Οι χρήστες θα βρουν τρόπους για να σπάσει το κλέφτη σας που δεν έχετε φανταστεί ποτέ.

Ένα καλό spec δεν μπορεί' μπορεί να περιγράφει μόνο το ευτυχισμένο μονοπάτι για; μπορεί να θεωρεί ότι: μπορεί

  • Τι συμβαίνει όταν το δίκτυο αποτυγχάνει στη μέση της λειτουργίας -?
  • Τι γίνεται αν ο χρήστης δεν έχει άδειες?
  • Τι γίνεται με τις ανταγωνιστικές τροποποιήσεις?
  • Πώς αντιμετωπίζουμε μερικές αποτυχίες στις κατανεμημένες επιχειρήσεις?

Δεν σας αρέσει' θα χρειαστεί να λύσετε όλα αυτά στο spec, επιχειρήσεις, αλλά πρέπει να αναγνωρίσετε ότι υπάρχουνΜSK2 δεν ενοχλεί τους προγραμματιστές περισσότερο από το να ανακαλύπτουν μισό δρόμο μέσω της εφαρμογής που κανείς δεν σκέφτεται τι συμβαίνει όταν η εξωτερική API είναι κάτω

Για το ' αναφέρει πιθανότατα ότι θα ικανοποιήσει' αναφέρει έξω από το πεδίο εφαρμογής για THIS spec. αναφέρουν Μπορεί να έχετε 'Τεχνολογικά specsΜSK4 ΠΟΥ ΔΕΝ λεπτομερώς τις λεπτομέρειες της υλοποίησης και τεχνικές λύσεις σε Η ΜSK5ΤΕΧΝΙΚΑ ΕΠΙΛΟΓΙΑ

Σχετικά με την ασφάλεια και την απόδοση

Αυτά θα έπρεπε να' αναφέρθηκε να είναι ακολούθως εξεταζόμενα κατά τη διάρκεια της επανεξέτασης κώδικα. αναφέρθηκαν Αν υπάρχουν συγκεκριμένες απαιτήσεις ασφαλείας ΜSK2 επίπεδο εξακρίβωσης, αναφέρουμε την κρυπτογράφηση δεδομένωνM SK4 αναφέρεις το λογισμικό ελέγχουMK5 αναφέρεται να τις εμφανίσει στο spec. αναφέρων

Παρόμοια αναφέρει, αν υπάρχουν περιορισμοί επιδόσεων που σημαίνουν ("Αυτή η αναζήτηση πρέπει να ολοκληρωθεί κάτω από ΜSK2 για τα σύνολα δεδομένων έως ΜSK3 εκατομμύρια εγγραφές "), τους βάλει στο specM SK5 Don' αφήνει τους προγραμματιστές να υποθέσουν σε μηMK7Προδοσιακές απαιτήσεις

Η δομή μιας καλής SPEC

Εδώ' ικανοποιεί το πρότυπο που χρησιμοποιώ για τα χαρακτηριστικά specsΜSK1 ικανόποιεί ότι η ' ικανοί δεν είναι ευαγγέλιοΗ , ικανούς αλλά ότι η ΜSK4 ικανούμενη με εξυπηρετούσε καλά

1. Ανασκόπηση

Μια παράγραφος ή δύο που συνοψίζουν τι χρονολογούμε' και γιατί έχει σημασία. θα πρέπει ο Διευθύνων Σύμβουλος σας να είναι σε θέση να διαβάσει μόνο αυτό το τμήμα και να καταλάβει την αξία του .

2. ΤαπετσαρίαΜSK1Σχετικά

Τι θα μας βοηθήσει να κερδίσουμε περισσότερα χρήματα για το ? Αυτό βοηθά τους προγραμματιστές να κατανοήσουν την κατάσταση του προβλήματος χωρίς να έχουν υπάρξει σε κάθε σύσκεψη προϊόντος για τον .

Κάντε το—letΜSK1ται να επεκτείνει την ενότητα σας Ιστορίες χρηστών με πρόσωπα ενσωματωμένα σε,, έτσι ώστε ναΜSK1 διατηρεί όχι μόνο μια λίστα ελέγχου αλλά έναν ζωντανό χάρτη του πώς διαφορετικοί τύποι χρηστών αλληλεπιδρούν με το σύστημα.


3. Ιστορίες χρηστών ΜSK1with Personas

Οι ιστορίες των χρηστών είναι πιθανό’ταν μόνο ένα κουτίΜSK1τεκτική άσκηση—ταν’ταν ένας τρόπος να Ενσωματώνοντας πραγματικούς ανθρώπους και τους στόχους τους. Γνωρίζετε, οι χρήστες σας Ολόκληρο το σημείο της οικοδόμησης αυτής της βρωμιάς. Με την ανασκόπηση κάθε ιστορίας σε ένα άτομο, ίσως σας αναγκάσει να σκεφτείτε για τα πραγματικά πρότυπα χρήσηςΜSK1 κίνητρα, και περιορισμούςM SK3 Η μορφή είναι απλή αλλά ισχυρήMK4

Στο τέλος personas είναι ένας απίστευτος τρόπος για να αναγνωρίσετε πώς το λογισμικό σας μπορεί να εξυπηρετήσει διαφορετικούς τύπους χρηστών. Ίσως ο Alex χρειάζεται ένα dashboard για να δει τα προβλήματα ασφαλείας στη λειτουργία σας, ίσως η Morgan χρειάζεται τις άδειες του περιορισμένες για να τον σταματήσουν να σπάσει κέλυφος κλπ

Ως α [persona / τύπος χρήστηΜSK1 θέλω [Για να κάνουμε κάτι για το ΜΣΚ0 Έτσι [Έχω πετύχει κάποιο στόχο

Η “so ότιΜSK1 Η ρήτρα είναι η προστασία από τα χαρακτηριστικά του κτιρίου κανείς δεν χρειάζεται— συνδέει κάθε λειτουργία πίσω σε ένα πραγματικόΜSK1world αποτέλεσμα.


Παραδείγματα ανθρώπων

  • Ο Αλεξ ο διαχειριστής – επιχειρήσεις φροντίζουν για τον έλεγχοΜSK1 επιχειρήσεις παρακολούθηση ΜSK2 επιχειρήσεις και αποδοτικότητα . επιχειρήσεις
  • Jamie ο τυχαίος χρήστης – αναφέρει τιμές απλότητας και γρήγορα κέρδη ΜSK1 αναφέρουν
  • Παρουσιάζει τον χρήστη δύναμης – επιχειρήσεις πιέζει το σύστημα στα όριά του , επιχειρήσεις θέλουν προηγμένη προσαρμογή . επιχειρήσεις
  • Ο νέος Morgan Οι επιχειρήσεις – χρειάζονται καθοδήγηση ειδικότερα, ειδικά επί του σκάφους ειδικότερες εταιρείες , και ανασφάλιση ειδικότερο.
  • Taylor ο μετόχος Η – δεν αναφέρει ότι η ’ αναφέρει την καθημερινή χρήση του συστήματος, αλλά χρειάζεται ορατότητα στα αποτελέσματα

Παραδείγματα ιστοριών χρηστών

Προσωπικά ΜSK1 Ιστορία ΜSK2 Γιατί έχει σημασία
Αλέξη ΜSK1Ο διαχειριστής ΜSK2 Διαχειριστής, θέλω να αναθέσω ρόλους και άδειες Έτσι αυτό Μπορώ να εξασφαλίσω την ασφάλεια και τη συμμόρφωση με τα δεδομένα. ΜSK1 Αποτρέπει μη εξουσιοδοτημένη πρόσβαση και διατηρεί το σύστημα αξιόπιστο.
Jamie ΜSK1Καθημερινός χρήστης ΜSK2 Ως τυχαίο χρήστη, ίσως θέλω ένα απλό dashboard Έτσι αυτό Μπορώ γρήγορα να δω τις πιο σημαντικές πληροφορίες χωρίς να ξεγελάσω. ΜSK1 Μειώνει την τρυφερότητα και αυξάνει την υιοθεσία.
Priya ΜSK1Power User ΜSK2 Δύναμη χρήστη, θέλω να δημιουργήσω προσαρμοσμένες ροές εργασίας Έτσι αυτό Μπορώ να αυτοματοποιήσω επαναλαμβανόμενες εργασίες και να εξοικονομήσω χρόνο . ΜSK1 Αποκλείει την αποδοτικότητα και προηγμένες περιπτώσεις χρήσης ΜSK2
Morgan (Newcomer) ΜSK3 Ως ένα ΝΕΟΜΕΝΑ, θέλω καθοδηγούμενα διδασκαλία και tips εργαλείων Έτσι αυτό Μπορώ να μάθω το σύστημα χωρίς να αισθάνομαι χαμένος . ΜSK1 Βελτιώνει την επιβίβαση και τη διατήρηση ΜSK2
Taylor ΜSK1Στοχικός φορέας ΜSK2 Συμμετοχή, ίσως θέλω τακτικά μηνύματα που μου στέλνονται Έτσι αυτό Μπορώ να παρακολουθήσω την πρόοδο χωρίς να συνδεθώ σε. ΜSK1 Κέιπς απόφαση ΜSK2 δημιουργοί ενημερωμένοι και δεσμευμένοι .

Γιατί οι άνθρωποι + Stories δουλεύουν μαζί

  • Οι άνθρωποι ανθρωποποιούν το αφηρημένο. Αντί να “ μεταχειριστές,” θα σας αρέσει’ σκέφτονται για τον AlexΜSK3 JamieMK4 PriyaM SK5 MorganMSKA6 και TaylorMKA7
  • Ιστορίες σχετίζονται με χαρακτηριστικά για τους στόχους. Το “ ανέφερε ότι το ” ανέφερε τις διατάξεις της σαφήνειας του : ανέφερε πως κάθε χαρακτηριστικό πρέπει να εξυπηρετεί ένα σκοπό.
  • Εμφανίζονται τα μοντέλα. Όταν καταρτίζετε πολλαπλές ιστορίες, βλέπετε υπερβάσεις, συγκρούσεωνΜSK2 και προτεραιότητες μεταξύ personasM SK3

4. αναφέρει λεπτομερείς απαιτήσεις

Αυτό είναι το κρέας και οι πατάτες σας. Διακόψτε το κάτω από τη λειτουργική περιοχήΜSK1 Χρησιμοποιήστε τα υποκείμενα ελεύθερα. Περιλαμβάνετε mockups ή wireframes αν τα έχετεM SK3 μια εικόνα αξίζει χίλιες λέξεις περιγραφής

Για κάθε απαίτηση οι επιχειρήσεις , προσδιορίζουν τις επιχειρήσεις

  • Η αναμενόμενη συμπεριφορά
  • Οποιεσδήποτε περιορισμοί ή κανόνες επικύρωσης
  • Απαιτήσεις αντιμετώπισης σφαλμάτων
  • Πώς αλληλεπιδρά με τα υπάρχοντα χαρακτηριστικά

5. Δεν ΜSK1Παρακτικές απαιτήσεις

Στόχοι απόδοσης , Αυτές οι απαιτήσεις ασφαλείας ΜSK1 Πρότυπα προσβασιμότητας ΜSK2 Browser / Υποστήριξη εξοπλισμού . Don ' υποθέτει ότι αυτά είναι προφανή MC6 Αλλά σε μερικές ομάδες αυτές μπορεί να είναι WHOLE OTHER TEAMS MK7 MD8 απώλεια εστίαση MT9 Εάν ένα μέρος του κύκλου σας μετατρέπεται σε υδράργυρο τότε μπορείτε MG10 έχασαν την ευελιξία με τον ορισμό MH11

6. out of scope

Αυτή η ενότητα είναι εξίσου σημαντική με αυτό που αναφέρει' αναφέρεται στο πεδίο εφαρμογής . αναφέρθηκε Να είστε ξεκάθαροι για το τι αναφέρετε' αναφέρθηκαν ΔΕΝ κάνετε σε THIS spec. αναφέρθη

ΓΙΑΤΙ ΕΙΝΑΙ ΣΧΕΤΙΚΑ ΜΕ ΤΗΝ ΠΡΟΣΩΠΙΚΗ

  • Αποφύγετε το Scope Creep - ΜSK1Αλλά μπορούσαμε να κάνουμε το ΜSK2θα απλώςμαΜSK3 οι συνομιλίες πεθαίνουν γρήγορα όταν μπορείτε να αναφέρετε στην ενότητα Out of Scope
  • Κάντε προσδοκίες - Οι συμμετέχοντες γνωρίζουν τι Κέρδισε το ' (το χρονικό διάστημαΜSK1
  • Επιτρέπει την μελλοντική εργασία - Τα στοιχεία εδώ ενδέχεται να γίνουν δικά τους specs αργότερα
  • Επικεντρώστε την ομάδα - Όλοι γνωρίζουν τα όρια αυτής της εργασίας

Παραδείγματα καλών Εξωτερικών στοιχείων:

  • "Προσωπική υποστήριξη ΜSK1Θέλει να αντιμετωπιστεί σε ξεχωριστά είδη ΜSK2
  • "Η μετανάστευση των υφιστάμενων δεδομένων ΜSK1η τρέχουσα ειδικότητα επεξεργάζεται μόνο νέα δεδομένα ΜSK2
  • "Admin UI για διαμόρφωση ΜSK1will use config files initially)"
  • "Σύνδεση με το Σύστημα X Η εξάρτηση από το ( δεν είναι ακόμη διαθέσιμη ΜSK2

Εάν κάποιος διατυπώνει μια έκθεση σχετικά με την - αναφορά σχετικά με το - στοιχείο ανασκόπησης θα πρέπει να είναι στο πεδίο εφαρμογής σχετικά με τη , αναφορές ότι η ' αναφέρει μια συνομιλία αξίζει να έχει BEFORE ανάπτυξη ξεκινάει, ίσως όχι μισό δρόμο μέσω της υλοποίησης σχετικά με . αναφορές

7. Ανοιχτές ερωτήσεις

Να είστε ειλικρινείς σχετικά με το τι δεν σας αρέσει' θα γνωρίζετε. θα τα σημειώσετε σαφώς και βεβαιωθείτε ότι απαντούν πριν από την έναρξη της ανάπτυξηςΜSK2 να μην υπάρχει τίποτα χειρότερο από το να μπλοκάρουμε την ανάπτυξη, επειδή κανείς δεν έχει αποφασίσει αν μας αρέσουν' να κάνουμε μαλακές διαγραφές ή σκληρές διαγραφίες

8. Εξαρτήσεις

Ποια άλλα συστήματα ενδιαφέρονται/Teams ενδιαφέροντα/Τι βασίζεται σε? Τι πρέπει να είναι έτοιμο πριν από την ανάπτυξη μπορεί να ξεκινήσειΜSK3

9. Κριτήρια αποδοχής

Πώς θα δοκιμάσει η QA αυτό?Αυτά πρέπει να είναι συγκεκριμέναΜSK1 δοκιμαστικές δηλώσεις. Πόντους αν τους αρέσει' γραμμένο σε μορφή που θα μπορούσε να γίνει αυτοματοποιημένες δοκιμέςM SK4ΕπισκόπησηMSKA5Όταν το /Τότε στυλMKA7

Το πρόβλημα των Spec Bugs

Εδώ αναμένεται' αναφέρει κάτι που δεν αναμένει' αναμένω να μιλήσει για αρκετά Specs μπορεί να έχουν bugs πάρα πολύ.

Ένα σφάλμα spec είναι όταν η ίδια η προδιαγραφή είναι λανθασμένη. Ίσως αντιτίθεται με τον εαυτό τουΜSK1 ή προσδιορίζει τη συμπεριφορά ότι' διατηρεί τεχνικά αδύνατονM SK3 ή επιλύει το λάθος πρόβλημα εντελώςMK4 Αυτά είναι αμφιλεγόμενα επειδή οι προγραμματιστές θα μπορούσαν να εφαρμόσουν ακριβώς αυτό που' αναφέρει γραπτώς και εξακολουθούν να τελειώνουν με ένα προϊόν που δεν σημαίνει' διατηρείται λειτουργεί σωστά M Sk7 διατηρήστε Agile Η κύρια έμφαση είναι να κάνει αυτό

Πώς συμβαίνουν τα Spec Bugs

  1. ατελείωτη κατανόηση - Το άτομο που έγραψε το spec ανέφερε ότι η ' ανέφερε πλήρως την κατανόηση του προβλήματος ή του υπάρχοντος συστήματος
  2. Συγκρούσεις απαιτήσεων - Διαφορετικοί ενδιαφερόμενοι θέλουν διαφορετικά πράγματα και κανένας δεν έχει επιλύσει τη σύγκρουσηΜSK1
  3. Τεχνική αδυναμία - Το spec ζητά κάτι που μπορεί να επιτύχει το 't πραγματικά να γίνει Ο ερευνητής του μπορεί να πετύχει ότι η 't θα πραγματοποιηθεί εντός εύλογων περιορισμών.
  4. Αλλαγή απαιτήσεων - Ο κόσμος μετακόμισε, αλλά το spec ανέφερε ότι η ' αναμένεται να ενημερωθεί

Επεξεργασία Spec Bugs

Όταν βρίσκετε ένα σφάλμα spec ως προγραμματιστής, έχετε μερικές επιλογές:

Επιλογή 1: Αυξήστε το Αμέσως

Αυτό είναι σχεδόν πάντα η σωστή απάντηση. Καθώς εντοπίζετε κάτι που δεν σημαίνει ότι το ' κάνει νόημαΤο , σηκώνει αυτό Το . Don Το ΜSK4 περιμένει μέχρι να φτάσετε στο ' μισό δρόμο μέσα από την εφαρμογή

Στείλτε ένα σαφές μήνυμα σε όποιον κατέχει το spec:

  • Τι λέει το SPC
  • Γιατί το ' θεωρεί προβληματικό
  • Τι νομίζετε ότι θα έπρεπε να συμβεί αντί για αυτό ( αν έχετε μια πρόταση)

Κάντε αυτό γραπτώς (emailΜSK1 εισιτηρίου, ό,τιM SK3 έτσι υπάρχειMSKA4 ένα ρεκόρMK5

Επιλογή 2: Implement It Anyway

Μερικές φορές μπορεί να σας δοκιμάσει μόνο για να δημιουργήσετε αυτό που αναφέρει η ' ακόμα και αν γνωρίζετε ότι το ' αναφέρει λάθος ΔΗΜΟΣΙΟΓΡΑΦΙΚΑ ΠΡΕΠΕΙ ΝΑ ΚΑΝΕΙΣ ΑΥΤΟ

Σχετικά με το ' αναφέρθηκε ότι οι προγραμματιστές εφαρμόζουν ειδήσεις που γνώριζαν ότι ήταν λάθος επειδή " αναφέρθηκαν ότι το ' αναφέρει τι είπε να κάνει" αναφέρουν και στη συνέχεια ενεργεί έκπληκτος όταν η QA τον αρνείται ή οι χρήστες παραπονιούνταιM SK4 αναφέρονται ότι εσείς αναφέρεστε στο ' αναφέροντας έναν επαγγελματίαΜSK6 αναφέρθηκα ότι μέρος της εργασίας σας είναι να μιλήσετε όταν βλέπετε προβλήματα

Η εξαίρεση είναι αν σας αρέσει' αναφέρεται ανέβηκε το ζήτημα, αναφέρθηκε να προχωρήσει ούτως ή άλλως, αναφέρθηκαν και έλαβε αυτό γραπτώςΜSK3 αναφέρθης Στη συνέχεια καλάM SK4 αναφέρθήκατε' αναφέρει κάνοντας τη δέσμευσή σας για την ευχέρεια

Επιλογή 3: Φροντίστε τον εαυτό σας

Αν σας αρέσει' διατηρεί εμπιστοσύνη ξέρετε τι το spec θα πρέπει να πει, ίσως μπορείτε να δοκιμαστεί για να το διορθώσετε μόνοι σαςΜSK2 Αυτό είναι καλό για προφανείς τύπους ή θέματα μορφοποίησης, αλλά για ουσιαστικές αλλαγές χρειάζεστε τη συμφωνία από τους ενδιαφερόμενους φορείςM SK4

Ποτέ μη αλλάζετε σιωπηλά τις απαιτήσεις.ΑυτόΜSK1 αναφέρει πώς τελειώνετε τα χαρακτηριστικά κατασκευής Κανείς δεν ζήτησε για.

Αποφυγή Spec Bugs

Η καλύτερη προσέγγιση είναι να αποφευχθούν τα bugs spec στην πρώτη θέση:

  1. Ενεργοποιήστε τους προγραμματιστές νωρίς - Λάβετε μια τεχνική ανασκόπηση των ειδών πριν από αυτόΜSK1 τελειοποιήθηκεΜSK2 Σχεδιάζουμε ΜSK3 σημεία αδυναμίες και περιπτώσεις ακμής που οι άνθρωποι του προϊόντος θα μπορούσαν να χάσουν ΜSK4
  2. Εμφανίσεις QA νωρίς - Εάν μπορεί να δοκιμάσει το ' θα δοκιμασθεί, μπορεί να κατασκευάσει το ΜSK2 η δουλειά σας κάνει κάτι που το κάνει για τους χρήστεςΜSK4 QA είναι ΚΡΙΤΙΚΟ εδώ.
  3. Χρησιμοποιήστε τα παραδείγματα ελεύθερα - Οι αφηρημένες περιγραφές είναι εύκολο να ερμηνευθούν με λάθος τρόπο ΜSK1 Συγκεκριμένα παραδείγματα ΜSK2Ο χρήστης Τζον έχει άδεια X ΜΚ3 προσπαθεί να κάνει Y ΜΚΕ4 και βλέπει Z ΜΣΚ5 είναι πολύ πιο σαφείς ΜΚΑ6
  4. Αντίθετα με το υπάρχον σύστημα - Το spec κάνει υποθέσεις σχετικά με το πώς λειτουργούν τα πράγματα σήμεραΜSK1 Δύο-ελέγξτε αυτές τις υποθέσειςM SK3
  5. Ετικέτες Specs - Επεξεργαστείτε το spec ως ζωντανό έγγραφοΜSK1 Καθώς μαθαίνετε περισσότερα κατά τη διάρκεια της εφαρμογήςΗ , ενημερώνει τηνΗ ΜSK3Οι μελλοντικοί προγραμματιστές θα σας ευχαριστήσουνη ΜSK4

Συνηθισμένο Spec Pitfalls

Το μυθιστόρημα-Longth Spec

Μερικοί άνθρωποι πιστεύουν ότι περισσότερες λεπτομέρειες είναι πάντα καλύτερη. ΑυτόΜSK1 δενΜΣΚ2 Ένα Μσκ3page spec που κανείς δεν διαβάζει είναι χειρότερο από ένα 5-page Spec που όλοι καταλαβαίνουνΜσΚ5

Αν το spec σας μετατρέπεται σε Πόλεμο και Ειρήνη, θα ήΜSK1

  • Χρειάζεται να το σπάσει σε πολλαπλές λειτουργίες
  • Οι λεπτομέρειες εφαρμογής που πρέπει να αφήνονται στους προγραμματιστές
  • Το λάθος πρόβλημα επιλύεται και πρέπει να γυρίσουμε πίσω.

Το κενό του χεριού

Το αντίθετο πρόβλημα:ΜSK1Χτίστε ένα σύστημα αναφοράςM SK2Δίκαια, χαίρονται γι’ αυτόΗ ΜSK4Αγαπώ την ΜSK5θα απλά χτυπήσει κάτι και θα αγαπάμε τη ΜSK6θα δούμε αν ταιριάζει με ό,τι είχατε στο μυαλό σαςΗ ,θα ευχαριστήσουμε το ΜSK8

Εάν το spec σας μπορεί να ληφθεί πλήρως σε μία φράση, αυτόΜSK1 δεν είναι ένα spec ΜSK2 αυτό μSK3 μια αόριστη επιθυμία

Η λύση-First Spec

"Χρειαζόμαστε ένα δίσκοΜSK1Δεν είναιΗ ΜSK2 έχει μια απαίτησηΗ ;Διατίθεται ότι η ΜSK4 έχει μια προκαθορισμένη λύσηΑλλά ίσως χρειάζεστε έναν δίσκόΗ , αλλά μπορεί να χρειαστείτε κάτι εντελώς διαφορετικόΟ ΜSK7 Ξεκινήστε με το πρόβλημαΤο ΜSK8Από το ΜSK9Bob ο διαχειριστής του συστήματος μπορεί να κάνει τη ΜSK10βλέπε πότε υπάρχουν προβλήματα στο σύστημα ταχέως και εύκολα για την "

Ο κινητός στόχος

Απαιτήσεις που αλλάζουν καθημερινά είναι'ει τις απαιτήσειςΜSK1ει τους ΜSK2ει το χάοςΜσκ3Αν τα πράγματα αλλάζουν ότι γρήγοραΜσΚ4 δεν μπορείς να καταλάβεις το πρόβλημα αρκετά καλά όμωςΜСК6 Σταματήστε και κάντε περισσότερη ανακάλυψη πριν γράψετε specsΜск7

Η κουζίνα πέφτει

"Καθώς αγαπάμε το ' θαυμάζουμε εκεί θαυμασία, θα μπορούσαμε επίσης να αγαπήσουμε..." δεν θαυμάτων. δεν θαύματαΜSK5 θαυματασύνη. Κάθε χαρακτηριστικό έχει ένα κόστοςθαυμασίας.Αν θέλετε να προσθέσετε κάτι καινούργιοθαυμία, θα γράψετε ένα ξεχωριστό spec για αυτό και προτεραιότητάς το σωστάθαυμάση.

Θεραπεία Specs ως κώδικα πηγής

Αυτή είναι η αλλαγή του μυαλού που άλλαξε τον τρόπο με τον οποίο γράφω specs: Αντιμετωπίστε το spec σας ακριβώς όπως αντιμετωπίζετε τον κωδικό πηγής.

Έλεγχος έκδοσης

Τα specs σας θα πρέπει να ζουν στον έλεγχο της έκδοσης δίπλα στο κώδικα σας.Ελέγξτε τα σεΜSK1Ανακολούθηση αλλαγών.Γράψτε σημαντικά μηνύματα δέσμευσης όταν τις ενημερώσετεM SK3Αυτό δημιουργεί μια ιστορία του τρόπου με τον οποίο εξελίχθηκαν οι απαιτήσειςMK4

Στο Microsoft, διατηρήσαμε specs στα ίδια αποθηκευτήρια όπως κώδικαΜSK1 Όταν ένα spec άλλαξε, πήγε μέσα από την ίδια διαδικασία επανεξέτασης όπως κωδικόςM SK3 Αυτό δεν ήταν ΜSK4 γραφειοκρατίαMK5 ήταν να εξασφαλιστεί ότι όλοι καταλαβαίνουν τι αλλάζει και γιατί . Ακόμα η παρακολούθηση της αναθεώρησης στο Word είναι καλύτερη από οτιδήποτε M Sk7 μπορείτε να έχετε μια'εξέτασηM sk9 το τμήμα αλλά donMesk10 αφήστε αυτό να βγάλει έξω από τον έλεγχο

Επεξεργασία Specs

Ακριβώς όπως ο κώδικας χρειάζεται αναπαραγωγή, έτσι κάνουν specs. Καθώς μαθαίνετε περισσότερα κατά τη διάρκεια της εφαρμογήςM SK2 το spec θα πρέπει να εξελιχθεί για να αντικατοπτρίζει ότι η μάθησηΜSK3

Βρέθηκε ένας καλύτερος τρόπος για να επιλύσετε το πρόβλημα?Αναβαθμίστε το spec για να αντικατοπτρίζετε τη νέα προσέγγιση και εξηγήστε γιατί άλλαξε κατεύθυνση.Αποκαλύφθηκε ένα παράθυρο που είχατεM SK2Συμφωνώ μεΜSK3Προσθέστε το στο specMK4

Το spec μετά την ανάπτυξη θα πρέπει να είναι πιο εξελιγμένο από το spec πριν την εξέλιξη. Εάν ενδιαφέρεται' δεν ενδιαφέρετε, σας ενδιαφέρει' έχασαν μια ευκαιρία για να τεκμηριώσουν τι έχετε μάθειΜSK4

Η αρχή του ζωντανού εγγράφου

Ένα spec δεν είναι't "δενΜSK2 όταν η ανάπτυξη ξεκινάM SK3δένει'δίδει μόνο'δούσε' για αυτό το στάδιοMK7ΔενMSKA8δυναμεί να γίνει όταν τα χαρακτηριστικά πλοία και γίνεται λειτουργία συντήρησηςMST9Την ώρα που έλαβε,δυνδέεται'δύνει ένα ζωντανό έγγραφο που εξελίσσεται με την κατανόησή σας του προβλήματος

Αυτό δεν σημαίνει ότι η ' αναφέρει ότι το spec θα πρέπει να αλλάξει καθημερινά. αναφέρουν Μεγάλες αλλαγές στις απαιτήσεις χρειάζονται συζήτηση και συμφωνίαΜSK2 αναφέρουν Αλλά διευκρινίσειςM SK3 αναφέρουν πρόσθετα παραδείγματα, αναφέρουν τα νεοανακαλυφθέντα περιθώρια περιπτώματα θα πρέπει όλοι να επιστρέφουν στο spec καθώς μπορείτε να τους βρείτε

Σκεφτείτε το με αυτόν τον τρόπο για : αν σας αρέσει' αφήστε παλιότερα σχόλια στο κώδικα, Don ' αφήσετε παλιότερες πληροφορίες σε specs.

Γιατί τα SPECS πρέπει να παραμείνουν τρέχοντα

Εδώ' αναφέρει κάτι που δεν μπορεί να συζητηθεί αρκετά' Το spec σας γίνεται η βάση για όλα όσα έρχονται μετά από.

Προγράμματα δοκιμών: QA γράφει δοκιμαστικές περιπτώσεις με βάση το specΜSK1 Εάν το spec είναι παλαιόΗ , οι δοκιμές δοκιμάζουν το λάθος πράγμαΗ ΜSK3 Παίρνετε ψευδείς θετικές Ο ΜSK4 περάσει αλλά η λειτουργία διακόπτεταιΤο ΜSK5 ή τα ψεύτικα αρνητικά

τεκμηρίωση: Χρησιμοποιήστε την τεκμηρίωσηΜSK1 API docs ΜSK2 βοηθήστε τα συστήματα ΜСК3 φαντασία RAG AI υποστηρικτικό πράκτορα - όλα ξεκινούν από το spec ΜΚ5 Εάν το spec περιγράφει χαρακτηριστικά που don ΜΣΚ6 υπάρχουν ή λείπουν χαρακτηριστικά τα οποία ΜΑΣΚ7 τα δεδομένα σας είναι λάθος από την ημέρα ένα ΜΕΣ8

Η μελλοντική ανάπτυξη: Όταν κάποιος χρειάζεται να επεκτείνει το χαρακτηριστικό έξι μήνες αργότεραΜSK1 θα διαβάσει το spec για να καταλάβει πώς λειτουργεί ΜSK3 Εάν δεν ενδιαφέρεται' ανταγωνίζεται την πραγματικότητα , αναφέρει ότι ΜSK6 ξεκινά με εσφαλμένες υποθέσεις

Onboarding: Νέα μέλη της ομάδας μαθαίνουν το σύστημα εν μέρει με την ανάγνωση των ειδών . Πιο επικαιροποιημένες ειδές τους διδάσκουν το λάθος πνευματικό μοντέλο του πώς λειτουργούν τα χαρακτηριστικά .

Αυτός είναι ο λόγος για τον οποίο το spec πρέπει να παραμείνει σε ισχύ. Αυτό' όχι μόνο σχετικά με την αρχική εφαρμογήΜSK2 αυτόM SK3 θεμελιώδεις για όλα τα άλλα

Στο Microsoft, επεξεργαστήκαμε ενημερώσεις spec με την ίδια σημασία με τις ενημερωμένες εκδόσεις κώδικαΜSK1 Οι αλλαγές Spec πέρασαν από αναθεώρηση. Έχουν εκδοθεί δίπλα στον κωδικόM SK3 Όταν ένα χαρακτηριστικό άλλαξεΗ , η ενημέρωση του spec δεν ήτανη 'επιλεγμένηη ΜSK6ήταν μέρος της ορισμού του Η "η ."

Εάν αλλάξετε τον κώδικα, αλλά δεν το κάνετε' θα ενημερώσει το spec, ίσως να σας αρέσει' θα δημιουργηθεί TECHNICAL DEBT. ίσως η μελλοντική εργασία θα είναι αργότερη επειδή κανείς δεν ξέρει τι τρέχεται στην πραγματικότητα .

# Η σχέση μεταξύ Spec και εφαρμογής

Εδώ' ικανοποιεί κάτι νεαροί προγραμματιστές συχνά donΜSK1 ικανούμε να καταλάβει: ικανούς Το spec δεν είναι η πηγή της αλήθειας; ο κωδικός είναι.

Το spec σας λέει τι αγαπάτε' μπορεί να προσπαθήσει να χτίσει. μπορεί ο κώδικας είναι αυτό που πραγματικά χτίσατε. μπορεί Αυτά τα δύο πράγματα πρέπει να ευθυγραμμιστούνM SK3 μπορεί αλλά όταν δεν αγαπούν' μπορεί, μπορεί ο κωδικός κερδίζειMSKA6 μπορεί μπορείτε να πετύχετε' μπορεί να τρέξει ένα specMKA8 μπορεί να εκτελέσετε τον κωδικό MK9 μπορεί να μην αντέχειMKK10 μελλοντικό θέμα

Αυτό σημαίνει ότι το :

  1. Το Specs πρέπει να εξελιχθεί - Καθώς ανακαλύπτετε τα πράγματα κατά τη διάρκεια της εφαρμογήςΜSK1 ενημερώνει το spec. ΑυτόM SK3 τεκμηρίωση του τι σας αρέσει' οικοδόμησηΜσκ5 δεν είναι ένα ιερό κείμενοΜσΚ6
  2. Λεπτομέρειες εφαρμογής Don't Μέρος σε Specs - Μόλις άρχισες να εφαρμόζεις το , ο ίδιος ο κώδικας τεκμηριώνει τον τρόπο με τον οποίο ο ( διατηρεί κάποιες θέσεις σε ένα ΜSK4Τεχνικό SpecΤο ' αλλά αυτά είναι σπάνια και συχνά ένα προϊόν κακούς ΜSK6Agile Frameworks ' Το - ένας κατοικίδιο ζώο μίσος Το . Παρουσιάζοντας μια ουσιαστικά προσαρμοστική πρακτική όπως το Agile με κάνει να βγάλω λίγο ). Το spec θα πρέπει να καταγράψει γιατί το .
  3. Δοκιμαστική γέφυρα το χάσμα - Καλές δοκιμές επαληθεύουν ότι η εφαρμογή ταιριάζει με τις απαιτήσεις ΜSK1 Αγαπούν το ' αναγνωρίζει την εκτελεστική μορφή του spec

Γράφοντας Specs για διαφορετικούς ακροατές

Διαφορετικοί άνθρωποι χρειάζονται διαφορετικά πράγματα από τα specs:

Εκτελεστές - επιχειρήσεις Θέλετε να γνωρίζετε την αξία των επιχειρήσεων και το σκληρό χρονοδιάγραμμα για . επιχειρήσεις Δώστε τους τα κριτήρια αναφοράς και επιτυχίας για ΜSK2 επιχειρήσεις

Διαχειριστές Προϊόντων - Χρειάζεται να κατανοήσουμε πώς ταιριάζει στην ευρύτερη στρατηγική προϊόντος και χάρτη οδούΜSK1 Δώστε τους ιστορίες χρηστών και εξαρτήσειςΜσκ2

Οι προγραμματιστές - Χρειάζονται αρκετές λεπτομέρειες για να εφαρμοστούν σωστά χωρίς να ειπωθεί πώς να κάνουν τη δουλειά τουςΜSK1 Δώστε τους τις απαιτήσεις, περιπτώσεις ακρογωνιαίωνΜsk3 και μηΜσκ4 λειτουργικές απαιτήσεις

ΚΑ - Χρειάζεται να ξέρετε πώς να επαληθεύσετε ότι λειτουργείΜSK1 Δώστε τους τα κριτήρια αποδοχής ΜSK2

Σχεδιαστές - Χρειάζεται να ξέρετε τι θα πρέπει να είναι η εμπειρία του χρήστη ΜSK1 Δώστε τους τις ιστορίες των χρηστών και τις ροές αλληλεπίδρασης ΜSK2 Ακόμα καλύτερα έχουν αναπτύξει ένα UX spec / storyboards παράλληλα, ενώ εργάζονται με το dev & spe writer MK5 να είναι ότι PM MSC6 BA κλπ MC7 Ποιος γράφει το spec είναι λιγότερο σημαντικό από ό, τι κάνει την τελική λειτουργία BETTER MK8

Ένα καλό spec εξυπηρετεί όλους αυτούς τους ακροατές χωρίς να εκφοβιστούν. Χρησιμοποιήστε τμήματα και δομή έτσι ώστε οι άνθρωποι μπορούν να διαβάσουν τι τους ενδιαφέρειΜSK1

Δοκιμάστε το Spec

Πριν καλέσετε ένα spec done, ρωτήστε τον εαυτό σας:

  1. Μπορεί ένας προγραμματιστής που γνωρίζει το ' να μην έχει δει ποτέ αυτό το χαρακτηριστικό να το κατασκευάζει από αυτό το spec. Εάν δεν ενδιαφέρεστε για το , θα σας ενδιαφέρει' ανακοινώσει λείπουν λεπτομέρειες . σίγουρα ΔΕΝ έχουν κομμάτια όπως ΜSK3 αυτό λειτουργεί σαν χαρακτηριστικό x στο τρέχον σύστημα ΜSK4 σίγουρα Πρώτον ότι ' ευθυγραμμίζεται με άσχημο AF , σίγουρα δεύτερο Η ιδιότητα μπορεί να αλλάξει ή είναι δύσκολο να κατανοήσουμε περιπτώσεις ακμής
  2. Θα μπορούσε η QA να γράψει δοκιμαστικές περιπτώσεις από αυτό το spec? Εάν δεν πληροί το , τα κριτήρια αποδοχής σας, είναι πιθανό ότι η ' πληροφόρησε αρκετά ξεκάθαρα.
  3. Μπορείτε να χτίσετε κάτι εντελώς άχρηστο που εξακολουθεί να ταιριάζει με αυτό το spec? Εάν το , έχετε' καταγράφηκαν οι πραγματικές απαιτήσεις σωστάΜSK2
  4. Αυτό το spec περιγράφει πώς να εφαρμόσει ή τι να επιτύχει? επιχειρήσεις Εάν ενδιαφέρεται για το ' αναγνωρίζει την προηγούμενη , αναγνωρίζετε ότι η ' αναγνωρίζεται για τη μικροδιαχείριση του .

Η ευέλικτη προσέγγιση των Specs

"Αλλά αγαπάμε το ' αρέσει ευέλικτο το ΜSK2 αρέσουμε το ΜΚ3 αρέσουν οι ανάγκες των ειδών του ΜΚ4 αρέσω να το ακούω αυτό πολύ Αρέσει το ΜΣΚ5 αρέσεις Το ΜΚ6 αρέζει ηλίθιο το ΜΑΣΚ7 αρέσετε

Agile ' t σημαίνει ΜSK1 nο σχεδιασμός ΜSK2 ή " no τεκμηρίωση ." Αυτό σημαίνει να ανταποκριθείτε στην αλλαγή μετά από ένα σχέδιο Οι ειδικοί είναι εργαλεία, δεν συμβάλλουνΜSK1 Δημιουργείτε τα με αρκετές λεπτομέρειες για να ξεκινήσετε, και μετά εξελίξτε τα καθώς μαθαίνετεΜSK1 Μου 'Αγικό ταξίδιM SK3 ήταν ακόμα πιο ακραίοMSKA4 καθώς παίρνετε super good σε specs ακόμη και εκείνα που γίνονται περισσότερο AgileMKA5 θέλετε να ladapt και να βελτιωθεί με βάση ό, τι η ομάδα σας θέλειMCA6 χρειάζεται

Πώς τα Agile Specs διαφέρουν από την πτώση του νερού

Η θεμελιώδης διαφορά είναι ότι το ' έχει μορφή ή μήκος, αλλά και το ΜSK1 έχει νοοτροπία και διαδικασία.

Πυρκαγιά Specs:

  • Γράφει εντελώς μπροστά πριν από οποιαδήποτε εξέλιξη
  • Ελπίδα για πλήρη από την 1η μέρα
  • Οι αλλαγές απαιτούν επίσημες διαδικασίες ελέγχου των μεταβολών
  • Το Spec είναι " ανακλεισμένο ΜSK1 έχει εγκριθεί μία φορά
  • Πιστεύω ότι μπορεί να γνωρίζουμε τα πάντα πριν ξεκινήσουμε
  • Linear: Spec → Κατασκευάστε ΜSK2 Δοκιμή → Εκμετάλλευση

ΑΓΙΛΙΚΟ SPECS:

  • Ξεκινήστε με ελάχιστη βιώσιμη λεπτομέρεια για να ξεκινήσετε
  • Περιμένετε ατέλειες στην αρχή ( και ότι' καλά
  • Οι αλλαγές αναμένεται και καλωσορίζονται
  • Το Spec εξελίσσεται συνεχώς με το χαρακτηριστικό
  • Υποθέτουμε ότι το : θα μας αρέσει' θα μάθουν καθώς χτίζουμε
  • Κυκλική: Σχεδιασμός ΜSK1 Κατασκευάστε ΜSK2 Μάθετε → Ενημέρωση Spec → Κατασκευή Περισσότερα

Η προσέγγιση υδραργύρου υποθέτει ότι μπορείτε να καθορίσετε τα πάντα τέλεια πριν γράψετε μια γραμμή κώδικα.Αυτό ίσως το ' απολαμβάνει μια όμορφη φαντασία.Στην πραγματικότηταM SK3 ανακαλύπτεται η μισή από τις απαιτήσεις μόλις οι χρήστες δοκιμάσουν πραγματικά την ιδιότηταΜSK4 Σχέδιο για αυτό ΜSK5 ενσωματώνει αυτόMSKA6 Οι χρήστες είναι οι ULTIMATE testerMSKI7 Μπορούν να σπάσουν τσίχλα ήσασαν' ακόμη και γνωρίζετε εσείςMSKE9 γίνονται σε ρυθμό που φαίνεται να παραβιάζει αιτιολογικότητα

## Το Feedback είναι τα πάντα

Στην ευέλικτη επιθεώρηση των ειδών , οι εταιρείες ανατροφοδότησης είναι ο καλύτερος φίλος σας . οι εταιρίες You' ενημερώνουν συνεχώς για τη συλλογή εισιτηρίων και την ενημέρωση του ειδικού :

Ανάπτυξη FeedbackΜΣΚ0 "Η αρχική προσέγγιση κέρδισεΤο ' θα λειτουργήσει εξαιτίας του XΟ .Θα προτείνω το Y αντί για το ."Ο ΜSK6 θα ενημερώσει το spec για να αντικατοπτρίζει τη νέα προσέλευση και γιατί άλλαξεΗ .Την τελειοποίησή σας ο ' θα διατηρήσει πάντα την πρώτη Αυτός ο χρήστης της ' θα ανακοινώσει ότι η ' θα αναφερθεί σε ένα χαρακτηριστικόΑΥτός ο λόγος που μοιάζει άσχημοςΟ ... θα αναγνωρίσει το bug και θα ταξινομηθεί.

Feedback χρήστη: Δοκιμάστε το χαρακτηριστικό με τους πραγματικούς χρήστες ΜSK1 internally ). ΜSK3Αυτό δεν σημαίνει ότι η ' λύσει πραγματικά το πρόβλημα μου επειδή ΜΚ5 Πειραιά Το spec βασίζεται σε αυτό που μαθαίνετε.

Εφαρμογή Feedback: Καθώς χτίζετεΜSK1 ανακαλύπτετε περιπτώσεις ακρογωνιασμών ΜSK2 τεχνικούς περιορισμούς , ή καλύτερες προσεγγίσεις ΜСК4 ΜΣΚ5 Συμπληρώστε αυτές τις σπουδές πίσω στο spec ΜΑΣΚ6

ΕΠΙΣΤΡΟΦΗ: ΜSK1Το σενάριο λέει X αλλά συνέβη με το ' έλαβε υπόψη το σκηνικό Y ΜSK3 → Προσθήκη του σκηνικού στο spec

Κάθε μία από αυτές τις ανατροφοδόσεις κάνει το spec καλύτερο. Το spec μετά από ένα sprint της ανάπτυξης θα πρέπει να είναι ακριβέστερο από το spec πριν, επειδή εσείςΜSK2 μαθαίνετε πράγματα που θα μπορούσατεΗ ' γνώριζε στην αρχήΗ ΜSK4

Αυτός είναι ο λόγος για τον οποίο οι δείκτες υδραργύρου συχνά αποτυγχάνουν: αν και ξεπέρασαν τα κενά ανατροφοδότησηςΜSK1 αν και κατά τη στιγμή που ανακαλύπτετε ότι το spec ήταν λάθος ΜSK2 αν και σας αρέσει η ' αντιστοιχεί στην κατασκευή του λανθασμένου πράγματος και Η αλλαγή της spec" αντιστοίχως σημαίνει τεράστια επανεξέταση

Μεγάλο πράγμα, feedback AS EARLY AS FEASIBLE. ΑυτόΜSK2 γιατί κατασκευάστηκα LLMAΠΙ Βοηθά να δημιουργήσετε ένα BIT και στη συνέχεια να χρησιμοποιήσετε ψεύτικα δεδομένα για να πάρετε χρήσιμες ανατροφοδόσεις.

ΠΡΩΤΗ ΕΠΙΧΕΙΡΙΣΗ ΜΑΘΗΜΑΤΑ ΣΤΗΝ ΚΕΦΑΛΑΙΟ 1

Εδώ' αναφέρει κάτι που κάνει τους παραδοσιακούς διαχειριστές έργων νευρικούς Το ' αναφέρει εντελώς καλά εάν το αρχικό spec έχει κενά σε σχέση με το .

Σημειώσεις μάρκας όπως "TBD" αν δεν γνωρίζετε το ' γνωρίζουμε όμως το . Λίστα ανοιχτών ερωτήσεων διακεκριμένα το M SK4 Να είστε σαφείς σχετικά με αυτό που έχετε γνωρίσει το ΜSK5 καταγράφηκε ακόμα το MST6

Αυτό δεν είναι σίγουρα'τ αργότητα;τ αυτόΜSK2τ ειλικρίνεια.Δεν γνωρίζετε'τ ξέρετε τα πάντα μπροστάM SK5Προτιμήστε να κάνετε απλά σημαίνει ότι θα αγαπήσετε'τ γράψετε εμπιστευτικές προδιαγραφές για την λανθασμένη λύση

Ξεκινήστε με:

  • Καθαρή δήλωση προβλήματος (Πρέπει να το γνωρίζετε αυτόΜSK1
  • Προτεινόμενη προσέγγιση λύσης (δυναμία αλλαγής)
  • Δύσκολο "συνειδητοποίησε" κριτήρια ΜSK2Θέλουν να ανακαλυφθούν)
  • Γνωστές άγνωστες που χαρακτηρίζονται ως ανοιχτές ερωτήσεις

Στη συνέχεια, συμπληρώστε τα κενά καθώς μαθαίνετε. Το' είναι πολύ καλύτερο να έχει ένα ατελείωτοM SK2 τοΜSK3τι πιο ειλικρινής spec από ένα πλήρεςMSKA4MSKI5μετρούσε έναMSKE6

Το SPC θα αλλάξει

Αποδεχτείτε αυτό τώρα: Το spec σας θα αλλάξει κατά τη διάρκεια της ανάπτυξης. Εάν δεν σας αρέσει το ' θα σας αρεσει στο , ίσως ή έχετε μια απίστευτη τύχη ή θα σας Αρέσει η ' να μην μάθετε τίποτα.

Αλλαγές που θα πρέπει να περιμένετε:

  • Η τεχνική προσέγγιση αλλάζει όταν ανακαλύψετε περιορισμούς
  • Προσαρμογές κλίμακας όταν συνειδητοποιείτε ότι το ' αντιλαμβάνεται την κατασκευή πάρα πολύ Το ( αντιλαμβανόμαστε πολύ λίγα
  • "Διαγράψτε τα κριτήρια αναβάθμισης " καθώς καταλαβαίνετε καλύτερα το πρόβλημα
  • Νέες περιπτώσεις που ανακαλύφθηκαν κατά τη διάρκεια της εφαρμογής
  • Καλύτερες λύσεις που βρέθηκαν μέσω πειραμάτων

Κάθε αλλαγή θα πρέπει να ικανοποιείται

  1. τεκμηριωμένο - Ενημερώστε το specΜSK1 DonΗ ' αλλάζει μόνο τον κωδικό
  2. Επικοινωνία - Πείτε στα ενδιαφερόμενα μέρη τι άλλαξε και γιατί
  3. Λογισμένος - Εξηγήστε τι έχετε μάθει που προκάλεσε την αλλαγή

Το spec' αναφέρει την ιστορία της έκδοσης γίνεται ένα ρεκόρ αυτού που μαθαίνετε για το . αναφέρουν ότι το ' αναφέρει πολύτιμη τεκμηρίωση για τα μελλοντικά χαρακτηριστικά του . αναφέρουν

Όταν το Agile Speccing πάει λάθος

Η ευέλικτη προσέγγιση μπορεί να αποτύχει αν ξεχάσετε ένα κρίσιμο πράγμα "will αλλαγήΜSK1 δεν ΜSK2τ σημαίνει Η "δεν υπάρχουν όρια."

Κακή ευέλικτη προβολή:

  • Το SPC αλλάζει καθημερινά χωρίς ξεκάθαρο λόγο
  • Κανένας ορισμός του "δεν ΜSK1 έτσι το χαρακτηριστικό συνεχίζει να αυξάνεται
  • Οι αλλαγές είναι't επικοινωνούν Η ενημέρωση του (spec αναμένεται να πηδήξει απευθείας στον εγκέφαλο των συναδέλφων σαςΜSK2 οι άνθρωποι εργάζονται από διαφορετικές κατανόηση
  • "AgileΜSK1 χρησιμοποιήθηκε ως δικαιολογία για να μην σκεφτόμαστε τα πράγματα μέσα από
  • Οι ενδιαφερόμενοι εκπλήσθηκαν από τις αλλαγές στο πεδίο, επειδή κανείς δεν τους είπε

Καλή ευέλικτη προβολή:

  • Οι αλλαγές συμβαίνουν για σαφείς λόγους με βάση τη μάθηση
  • "Τα κριτήρια που αναφέρονται στο " είναι σαφή, ακόμη και αν άλλες λεπτομέρειες αναφέρουν το '
  • Οι αλλαγές συζητούνται, επιχειρήσεις συμφωνήθηκεΜSK1 επιχειρήσεις και τεκμηριώθηκε
  • Το να είσαι ευέλικτος δεν σημαίνει ότι είσαι χαλαρός
  • Οι συμμετέχοντες είναι μέρος του κύκλου feedback

Το spec είναι ένα ζωντανό έγγραφο, αλλά αυτόΜSK1 δεν υπάρχει χάος. εξελίσσεται με βάση την εκμάθησηM SK3 όχι σε ό,τι αφορά.

Η ευφυΐα δεν κάνει ποτέ ό,τι θέλεις και το αποκαλεί ευφυϊκό

Η ' διατηρεί μια δυναμική διαδικασία που έχει το SOLE GOAL να χτίσει τα καλύτερα πράγματα όσο το δυνατόν γρηγορότερα. Μανιφέστο Agile Όπως λέει η ' επιτυγχάνει την πρώτη αρχή της .

"Η υψηλότερη προτεραιότητα μας είναι η ικανοποίηση του πελάτη Μέσω έγκαιρης και συνεχούς παράδοσης Αξιοσημείωτο λογισμικό."

Αξίζει να σημειωθεί ότι το ' υποσχέθηκε ότι δεν θα χτυπήσει γύρω από το spunking out κώδικα επειδή σας αρέσει η αίσθηση του .

Αρκετές λεπτομέρειες για να ξεκινήσετε

Το ερώτημα δεν είναι't ΜSK1how λεπτομερή αν το spec είναι ΜSK2 Αυτό 's "όπως πρέπει να γνωρίζουμε για να ξεκινήσουμε την κατασκευή με εμπιστοσύνη ΜСК5

Για ορισμένα χαρακτηριστικά που μπορεί να είναι:

  • Μια παράγραφος που περιγράφει το πρόβλημα
  • Τρεις πυροβόλα σημεία σχεδιάζουν τη λύση
  • Ένας σαφής ορισμός του τι "δoneΜSK1 φαίνεται

Για τους άλλους μπορεί να είναι ευχάριστο.

  • Λεπτομερείς ροές χρηστών με mockups
  • Οι απαιτήσεις επιδόσεων που υποστηρίζονται από τα δεδομένα
  • Προδιαγραφές ενσωμάτωσης για πολλαπλά συστήματα

Προσθέστε λεπτομέρειες όπου υπάρχει αβεβαιότητα. Εάν ο καθένας συμφωνεί πώς κάτι θα έπρεπε να λειτουργήσει, δεν κάνετεΜSK1 χρειάζεται να το γράψετε κάτω σε λεπτομέρειες εξαντλητικές ΜSK2 Αν υπάρχειΜ SK3 διαφωνία ή σύγχυση ΜΣΚ4 ότιΜΣΚ5 όπου χρειάζεστε συγκεκριμένα

Αλλά στο τέλος το ' αναφέρει ' διατηρεί αρκετές λεπτομέρειες για να ξεκινήσει η ροή επιστροφής

## Τα πρότυπα και η AI: ξεκινούν γρήγορα

Don't overthink the initial specΜSK1 Ο σκοπός στην αρχή είναι να έχετε αρκετά για να ικανοποιήσετε τις άμεσες ανάγκες σας, αν ότιM SK3

  • Μια σκληρή εκτίμηση ( ανέφερε ένα SWAG ΜSK1 ανέφερε Shitty Wild ΜSK2 ανέφερεAssed Guess - ανέφερε ότι είναι καλύτερο από τίποτα
  • Εισαγωγή στις συζητήσεις προτεραιότητας
  • Αρκεί μόνο για να ξεκινήσετε προσωπικά την κωδικοποίηση

Χρησιμοποιήστε πρότυπα: Έχετε ένα βασικό πρότυπο με τις κλειστές ενότητες ΜSK1Problem, ΛύσηM SK3 Στο πεδίο εφαρμογήςMK4 Out of ScopeMKK5 Δώσε κριτήριαMKR6 Συμπληρώστε σε αυτό που ξέρετεMRK7 Αφήστε το τμήμα άδειο αν δεν γνωρίζετεMKM8 γνωρίζει ακόμαMKL9 Σημειώστε τα ωςMNK10TBDMKS11 και μετακινήστε στοMHK12

Ένα απλό πρότυπο μπορεί να είναι:

# [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
-
-

Το γεγονός ότι το ' ευχαρίστησε να πληρώσει το . σχεδόν Πέντε λεπτά συμπλήρωσης που στο και εσείς ο ' αναμένεται να έχει αρκετό για να ξεκινήσει συζήτηση ή ακόμη και την οικοδόμηση του .

Χρησιμοποιήστε AI για να σχεδιάσετε Specs: Εργαλεία όπως Claude ή ChatGPT μπορεί να είναι λαμπερά για να πάρει ένα πρώτο σχέδιοΜSK1 Φροντίζει το πρόβλημα και κάποιο πλαίσιο, ζητάει να σχεδιάσει ένα specM SK3

ΑΛΛΑ - και αυτό είναι κρίσιμο ΜSK1 Don't επιτρέψτε στο AIΜSK1ς λεπτομέρεια σας προσελκύει σε προσθέτοντας τα πάντα ΜSK2

Η AI αγαπά να είναι ολοκληρωμένη.ΑυτόΜSK1 θα σας δώσει τμήματα σχετικά με Σημειώσεις ασφαλείας, Απαιτήσεις απόδοσηςM SK3 ΠροσβασιμότηταMK4 ΔιεθνοποίησηM Sk5 Διαχείριση σφαλμάτων, ΛογισμόςM sk7 ΠαρακολούθησηMesk8 Στρατηγική εκμετάλλευσηςMosk9 Ρολμπέκ ΣχέδιαMšk10 και δεκαεπτά άλλα πράγματα που ίσως χρειαστείτεMzk11 τελικάMk12

Αποσπάστε το μεγαλύτερο μέρος αυτού από. Κρατήστε ό, τι χρειάζεστε ΤΩΡΑΜSK1 Το υπόλοιπο μπορεί να προστεθεί αργότερα όταν πραγματικά χρειάζεται.

Σκεφτείτε το AI-γεννημένο spec ως ένα μενούΜSK1 Επιλέξτε τα bit που είναι σημαντικό για να ξεκινήσετε. Ignore το υπόλοιποM SK3 Μπορείτε πάντα να επιστρέψετε για δευτερόλεπτα

Ο στόχος είναι ότι το ' επιτυγχάνει ένα πλήρες spec; επιτύχει ότι η ' επιτρέπει επαρκή spec για να ξεκινήσει την εργασία του . επιτύχουν Είτε αυτό που ο ' επιδίδει μια γρήγορη εκτίμηση, είτε αυτό που η ΜSK5 επιδιώκει μια απόφαση προτεραιότητας ή ακριβώς σαφήνεια σχετικά με ό, τι σας αρέσει το ' επιδιδίζει οικοδόμησης για τον εαυτό σας.

Το συνεργατικό μοντέλο

Εδώ' αναφέρει τις αλλαγές στο Agile: Δεν σας αρέσει' θα γράψει ένα spec και να το ρίξει πάνω από τον τοίχο για τους προγραμματιστές . Το spec είναι μια συνεργατική προσπάθεια.

Η καλύτερη προσέγγιση που έβλεπα'βλεπε:

  1. Προϊόν/PM σκάει το πρόβλημα - αναφέρει τι πρέπει να επιλυθεί και γιατί
  2. Οι προγραμματιστές συμβάλλουν στην τεχνική προσέγγιση - Πώς θα μπορούσαμε να το λύσουμεΜSK1 ποιες είναι οι περιορισμοί
  3. Οι σχεδιαστές συμβάλλουν στις απαιτήσεις του UX - Τι πρέπει να είναι η εμπειρία του χρήστη
  4. Το QA συμβάλλει σε σενάρια δοκιμών - αναφέρει περιπτώσεις Edge και προσεγγίσεις επικύρωσης

Όλοι συμβάλλουν στο spec.Κανένας δεν το κατέχει αποκλειστικάΜSK1Αυτή η συνεργατική προσέγγιση συλλάβει προβλήματα νωρίς όταν αναφέρουν' αναφέρει φθηνά για να διορθώσουν και όχι αργά όταν αναφέρονται' αναφέρει ακριβά

Ακόμα πιο σημαντικό είναι ότι το , σημαίνει ότι το spec αντικατοπτρίζει αυτό που ο ' θεωρεί πραγματικά εφικτό για τον , ειδικά όχι αυτό που κάποιος ήθελε στην απομόνωση για την . ειδικά

Η εξέλιξη κατά την ανάπτυξη

Εδώ το ' αναφέρει πού τα ευέλικτα specs διαφέρουν από τα παραδοσιακά. Το χαρακτηριστικό μπορεί να εξελιχθεί καθώς το χτίζετε.

Θα ανακαλύψετε ότι η αρχική σας προσέγγιση κέρδισε' εργάζεται? Ενημερώστε το spec για να αντικατοπτρίζει τη νέα προσέλευσηM SK2

Μπορείτε να δοκιμάσετε το χαρακτηριστικό και συνειδητοποιήστε ότι δεν μπορεί' πραγματικά λύσει το πρόβλημα? Pivot και τεκμηρίωση γιατί.

Η ανατροφοδότηση των χρηστών αποκαλύπτει μια καλύτερη λύση? Ενσωματώστε το και εξηγήστε την αλλαγή.

Αυτή η εξέλιξη είναι ένα χαρακτηριστικό, όχι ένα σφάλμαΜSK1 Σας αρέσει' ανταποκρίνεται σε νέες πληροφορίες ΜSK3 Το spec θα πρέπει να καταλάβει ότι μάθηση , δεν υποθέτει ότι είχατε τέλεια γνώση από την πρώτη μέρα

Αλλά αυτό δημιουργεί ένα πρόβλημα: αν το χαρακτηριστικό μπορεί να αλλάξειΜSK1 πώς το εκτιμάτε? Πώς γνωρίζετε όταν σας αρέσει'

Η πρόκληση της εκτίμησης

Αυτό είναι το βρώμικο μυστικό της Agile: εκτίμηση είναι αιματηρή δύσκολη όταν τα χαρακτηριστικά μπορούν να εξελιχθούν.

Η παραδοσιακή εκτίμηση υποθέτει ότι γνωρίζετε τι σας αρέσει' αναγνωρίζει το κτίριο. αναγνωρίζεται Μπορείτε να το καταστρέψετε σε εργασίες, αναγνωρίστε κάθε εργασίαMK3 αναγνωρίζονται προσθέτοντάς τουςMKK4 αναγνωρίζουν απλόMRK5

Η ευέλικτη εκτίμηση αναγνωρίζει ότι δεν γνωρίζετε το ' μπορεί να ξέρει τα πάντα προς τα εμπρός, αλλά η λειτουργία θα μπορούσε να αλλάξει καθώς μαθαίνετε το . Έτσι πώς μπορείτε να εκτιμήσετε το MSC3

Εσείς εκτιμάτε κλίμακα, δεν απολύουνΜSK1 Αντί του "this θα χρειαστεί ΜSK1 εβδομάδες ΜSK2 λέτε "somewhere μεταξύ ΜΣΚ4 και Μόσχα5 εβδομάδων ανάλογα με το τι ανακαλύπτουμε ΜСК6

Υπολογίζετε στις εικασίες. "Θα ξοδέψουμε το ' θα περάσει ένα σπριντ εξερευνώντας αυτό και να αναφέρουμε πίσω σε ό, τι μάθαμε το . Στη συνέχεια μπορούμε να εκτιμήσουμε τα υπόλοιπα με μεγαλύτερη ακρίβεια.

Έχετε χρόνο να κερδίσετε-box αντί για το πεδίο εφαρμογής-boxing. "Θα περάσουμε ΜSK2 εβδομάδες σε αυτό ΜSK3 Στο τέλος του 2 εβδομάδων θα έχουμε την καλύτερη έκδοση που μπορούμε να δημιουργήσουμε εκείνη τη στιγμή

Ωστόσο, όλες αυτές οι προσεγγίσεις έχουν μία κρίσιμη απαίτηση: Πρέπει να ξέρετε τι σημαίνει "ΜSK1 Χωρίς ξεκάθαρο ορισμό του γεγονότος, το , μπορεί να διατηρήσει τη μετάσταση για πάντα.

Το ' αναφέρει μια κοινή κριτική της Agile σε σύγκριση με τις προσεγγίσεις Waterfall ' παρά το γεγονός ότι χωρίς ένα συγκεκριμένο δείγμα δεν μπορεί να υπάρξει καμία καλή εκτίμηση ειδικότερα '. ειδικά Dunno I ειδικά ' αναφέρουν μάλλον να έχουν μια floppy εκτίμηση που οδηγεί σε ένα καλό χαρακτηριστικό από έναν νεκρό σε ένα για την κρέμα ειδικά

Ορισμός "Διαβάστε ΜSK1 ΜSK2Or Πώς να σταματήσετε τη μεταστάσεις χαρακτηριστικών )

Αυτό είναι όπου πολλά ευέλικτα specs πέφτουν ξεχωριστά.ΌλοιΜSK1 ενθουσιασμένος για την ευελιξία και την ιθεράση ΜSK2 αλλά κανείς δεν θέλει να είναι αυτός που λέει "δίκαια , ότιM SK5δίδει το

Χωρίς ξεκάθαρο ορισμό του έργου, χαρακτηριστικά Don' τελειώνουνΜSK2 μεταστατικοποιούν. ΔιαδίδουνM SK4 Καλλιεργούν τεντρίλες σε άλλα μέρη του συστήματοςMSKA5 Πριν το γνωρίζετεMska6 σας MKA7 απλό σχόλιο σύστημαMK8 έχει συντριβεί σε ένα πλήρες κοινωνικό δίκτυο με τα μηνύματαMKK9 προφίλMRK10 και φίλους αιτήματα

Το πρόβλημα με το Vague "Διαβάστηκε ΜSK1

Αγαπώ το ' διατηρεί προβλεπόμενες προδιαγραφές με κριτήρια αποδοχής όπως το :

  • "Οι χρήστες μπορούν να σχολιάσουν τις δημοσιεύσειςΜSK1
  • "Το δίσκο εμφανίζει σχετικές πληροφορίεςΜSK1
  • "Η αναζήτηση λειτουργεί καλάΜSK1

Αυτά είναι'τε ορισμούς του έργουΜSK1θαύμαστο'θυμίζει αόρατες φιλοδοξίες.Τι συμβαίνειM SK4σχετικές πληροφορίεςMK5τι σημαίνειMSKA6Τί γνωρίζει το 'το "θαυμάζει"? Μπορείτε να ιτέρετε σε αυτά για πάντα και ποτέ δεν κάνετεMST10

Ο προγραμματιστής πρέπει να γνωρίζει: επιχειρήσεις Τι συγκεκριμένο πράγμα έκανε το , όταν υλοποιήθηκε το , σημαίνει ότι μπορώ να σταματήσω να εργάζομαι πάνω σε αυτό το χαρακτηριστικό ?

Γράφοντας Συγκεκριμένα "Διαβάστηκε ΜSK1 Κριτήρια

Καλό "συνειδητοποίησε" κριτήρια είναιΜSK2

  • Δοκιμαστική - Μπορείτε να επαληθεύσετε αν το ' έχει γνωρίσει
  • Ειδικότερα -Δεν υπάρχουν κρυμμένες λέξεις όπως ΜSK1καλή ΜSK2 ή "σχετικές
  • περιορισμός - Δεν τους αρέσει' imply infinite scope

κακό: ΜSK1Τα σχόλια θα πρέπει να είναι μετρήσιμα" Καλή: ΜSK1Οι χρήστες του Admin μπορούν να εγκρίνουν,ΑπορρίπτουνM SK3 ή διαγράψουν σχόλια από το admin panelMK4Δεν γνωρίζετε-Επιβεβαιωμένα σχόλια δεν είναι ορατά στους συνηθισμένους χρήστεςMST6Η ειδοποίηση ηλεκτρονικού ταχυδρομείου που αποστέλλεται στο admin όταν δημοσιεύεται ένα νέο σχόλιο

κακό: ΜSK1Η αναζήτηση θα πρέπει να είναι γρήγορη" Καλή: ΜSK1Η αναζήτηση επιστρέφει τα αποτελέσματα μέσα σε Συμφωνίες 200 για το ποσοστό των ερωτήσεων εναντίον μιας δέσμης δεδομένων από Προβολή μηνυμάτων 100,000Τα αποτελέσματα κατατάσσονται ανάλογα με τη σχετικότητα Οι επιδόσεις (Αναζητήσεις -Επισκόπηση κειμένου αναζήτησης Διαβάστε περισσότερα

κακό: ΜSK1Το δίσκο δείχνει χρήσιμες μετρήσεις" Καλή: ΜSK1Η οθόνη του δίσκου Η ΜSK2 συνολικές προβολές σελίδων Η ΜSK3μεσχεθεί η ΜSK4μέρεςΗ ), μοναδικοί επισκέπτες η ΜSK6μεμεσέλθει οι ημέρες της ΜSK8 κορυφαία Ο ΜSK9 δημοσιεύσεις με προβολή Το ΜSK10μεσιέλθουν Αυτές οι μέρες που έλαβαν μέρος στις ανακοινώσεις για τη ΜSK12 και την κατάρρευση των επισκεπτών ανά χώραΗ μSK13 Όλες οι ενημερώσεις μετρήσεων μία φορά την ώραΗ ΣΚ14

Σημειώστε τη διαφορά? Τα καλά παραδείγματα σας λένε ακριβώς τι πρέπει να υπάρχει και πότε μπορείτε να σταματήσετε να προσθέτετε πράγματα.

Το Out of Scope είναι ο φίλος σας

Θυμηθείτε νωρίτερα όταν είπα ότι η ενότητα Out of Scope είναι εξίσου σημαντική με ό, τι' αναφέρει στην έκταση? Αυτός είναι ο λόγος για τον οποίο

Για κάθε χαρακτηριστικό, υπάρχουν δεκάδες πράγματα που θα μπορούσατε να προσθέσετε. Το τμήμα Out of Scope ξεκαθαρίζει ρητά τι σας αρέσει' Μην κάνετεΜSK3 Αυτό εμποδίζει τοM SK4 ενώ χρειαζόμαστε' σε εκείνη την περίπτωση, θα μπορούσαμε επίσης να κερδίσουμε..." συνομιλίες που προκαλούν μεταστάσεις χαρακτηριστικών .

Στο πεδίο: Αναρτήθηκε σχόλια ΜSK1 αναρτήθηκε επίπεδο απαντήσεων ΜSK2 Πέρα από το πεδίο: Unlimited σχολιασμός απειλώνταςΜSK1 σχολιασμό ψηφοφορίας, σχολιαζόμενος απειλούνM SK3 καλύτερο σχόλιο ταξινόμησηςMK4 παραμύθι σχολιασμού ΜSK5το ενδέχεται να έρθει αργότερα ως ξεχωριστά χαρακτηριστικά

Τώρα που κάποιος προτείνει "Θα πρέπει να σημειωθεί ότι το ' αναφέρει σχόλια έχουν υποψηφιότητεςΤο ?" ίσως μπορείτε να επισημάνετε το spec και να πείτε Το " μπορεί να εκτιμήσει ότι η ' αναφέρεται εκτός πεδίου για αυτή την ιταρίαΗ .Προσθέτουμε ότι το ΜSK6 αναφέρθηκε να συζητήσει ως ξεχωριστή ιδιότητα όταν τα βασικά σχόλια λειτουργούνΟ ."

Oh and the NEXT spec?Και έχετε μια σειρά από άχρηστες καλές ιδέες που έχουν ήδη καταγραφείΜSK1Πώς είναι ευκολότερο να ξεκινήσετε!

Χρόνος-Boxing ως Last Resort

Μερικές φορές δεν μπορείτε πραγματικά να απολαύσετε το ' θα ξέρετε ακριβώς τι " θα απολαυθεί " θα φαίνεται όπως όταν ξεκινάτε ΜSK3 Το χώρο του προβλήματος είναι πάρα πολύ αβέβαιο Η , ίσως εντελώς νέα ή ακόμη και κάποιο σύστημα πίσω πρέπει να κατασκευαστεί ταυτόχρονα με την . Σε αυτές τις περιπτώσεις η , χρόνος Η - boxing μπορεί να λειτουργήσει η :

"Θα ξοδέψουμε το 2 εβδομάδες ΜSK3 μέχρι το backend είναι έτοιμο ΜSK4 πρωτότυπα διαφορετικές προσεγγίσεις για τον αλγόριθμο σύστασης . Στο τέλος του 2 εβδομάδων θα αξιολογήσουμε αυτό που γνωρίζουμε Το ' μαθαίνει και θα αποφασίσει αν να παράγει μια προσέγγιση Η , δοκιμάζει κάτι διαφορετικό η , ή εγκαταλείπει τη δυνατότητα

Αλλά σημειώστε ότι: ίσως έχετε ακόμα ένα συγκεκριμένο "σχετικά με το " κατάσταση ΜSK3 εβδομάδες ΜSK4 στη συνέχεια αξιολογήστε). Σχετικά Με το ΜSK6 όχι μόνο χτίζοντας αόριστα ΜΣΚ7 Αυτές οι εξερεύσεις γίνονται συχνά σε ένα πλαίσιο όπως μια ΜСК8Sprint στο SCRUM που ονομάζεται 'Spike

Σπυράκια &SprintsΜSK1

Ένας Spike είναι ένας από αυτούς 'go έχουν ένα παιχνίδι και ανακαλύψτε αυτή την τεχνολογίαM SK1 μπορεί να διαρκέσει όσο μια Sprint ΜSK2or περισσότερο) αλλά συνήθως μόνο μερικές ημέρεςMK4Όταν έχω devs κάνω αυτά συνήθιζα να ζητήσω ένα μήνυμα ηλεκτρονικού ταχυδρομείου στο τέλος (or a wiki post κλπMSKA6 με τα ευρήματαMKA7όπως αξίζει τον κόποMska8 θα έπρεπε να το υιοθετήσουμε κλπ

Ένα σπριντ αναμένεται να έχει παραδόσεις στο τέλος (κάτι άλλος από το άτομο που ασχολείται με αυτό μπορεί να δοκιμάσει για τον κύκλοΜSK1 Ένας Spike MIGHT έχουν αλλά πιθανότατα το μόνο παραδοσιακό είναι η γνώση για την ομάδα.

Αγαπούν το ' διατηρεί επίσης FUN για τους devs και βοηθάει την ομάδα που συχνά συλλέγω ιδέες Spike κατά τη διάρκεια ενός έργου και όταν υπάρχει το ΜSK1 διατηρείται ένα κούρεμα αφήνω τα devs να επιλέξουν ένα για να εξερευνήσουν ( ειδικά για κάποιο μελλοντικό dev αλλά συχνά απλά για να σταματήσει ο Jim ο junior dev KEEP GOING ON ABOUT IT

Πρόληψη του Scope Creep κατά τη διάρκεια της ανάπτυξης

Ακόμη και με σαφή "δουνΜSK1 κριτήρια, εύρος μπορεί να κρύβει ΜSK3 Ανακαλύπτετε περιπτώσεις άκρων . Καταλαβαίνετε ότι οι χρήστες χρειάζονται κάτι που είχατε ΜΣΚ5θετήσατεΜΣΚ6 Πώς μπορείτε να το χειριστείτε αυτό χωρίς να παραβιάσετε τον ορισμό σας για να κάνετε ΜΑΣΚ7

Το έγγραφο που κάνει, Don' απλώς το έκανε. Όταν ανακαλύψετε κάτι καινούργιο που πρέπει να προσθέσετε, ενημερώνει το specΜSK1 Κάντε σαφές ότι το πεδίο εφαρμογής έχει αλλάξει. Αποκτήστε συμφωνία από τους ενδιαφερόμενους φορείς

Αυτό εξυπηρετεί δύο σκοπούς:

  1. Ορατότητα Ο καθένας ξέρει τι έχει αλλάξει και γιατί
  2. κόστος συνειδητοποίησης - Οι συμμετέχοντες βλέπουν ότι η προσθήκη των πραγμάτων επηρεάζει το χρονοδιάγραμμα

Εάν το spec σας συνεχίζει να αναπτύσσεται, αναφέρει ότι' διατηρεί ένα σήμαM SK2 αναφέρει Ή εσείς ενδιαφέρεστε' αναφέρει χτίζοντας το λάθος πράγμα ΜSK4 αναφέρει και χρειάζεται να γυρίσετε πίσω και να ξανασκεφτείτεMSKA5 αναφέρει ή αυτό θα πρέπει να είναι πολλαπλές λειτουργίεςMKA6 αναφέρουν ή πρέπει να κόψετε την έκταση για να αποστέλλουν κάτι χρήσιμο νωρίτερα

Πότε να το καλέσετε

Σε κάποιο σημείο το , ίσως χρειαστεί να αποστέλλετε το . Το χαρακτηριστικό αυτό δεν σημαίνει ότι το ' θα πρέπει να είναι τέλειο; αν χρειάζεται να είναι χρήσιμοΤο .

Μια καλή δοκιμή: Μπορούν οι χρήστες να αποκτήσουν αξία από αυτό το χαρακτηριστικό καθώς είναι?

Εάν ναι, σκάβει αυτόΜSK1 Μπορείτε πάντα να ιτέρετε στην επόμενη έκδοση. Done δεν σημαίνει ότι το ' θέλει ποτέ να βελτιωθεί ΜSK5 Σημαίνει Το " επιλύει το πρόβλημα αρκετά καλά ώστε οι χρήστες να επωφεληθούν και μπορούμε να προχωρήσουμε σε άλλες εργασίες ."

Εάν δεν γνωρίζετε το , θα γνωρίσετε το ' θα γνωρίζει ότι δεν έχει γίνει, αλλά θα γνωρίζουμε το M SK2 ανεξάρτητα από αυτό που λέει το spec.

Το πιο δύσκολο κομμάτι της ευελιξίας είναι ότι το ' αναφέρει την έναρξη εργασίας του ; αναφέρει ότι η ' αναφέρει τη διακοπή εργασίας του ΜSK3 αναφέρει Clear " αναφέρει τα κριτήρια που καθιστούν δυνατή τη διακόπηση

Αλλά θυμηθείτε ότι πρέπει να ζυγίσετε αν το εκδίδετε σε όλους, έχουν μια στενή ομάδα για A/B M SK2 UAT ΜSK3user αποδοχή δοκιμήMSKA4ΑυτόMK5ται συχνά μια επιχειρηματική απόφαση γύρω από τον κίνδυνοMKA6 Μερικές φορές το κοινό είναι FUCKING DUMB και βλέπει ένα εν μέρει ολοκληρωμένο χαρακτηριστικό προβολής όπως η GOSPEL FOR YOUR SYSTEM QUALITYMSKI7Αν αυτόMKI8ται ένα πρόβλημα ένας ελεγχόμενος όμιλος είναι ασφαλέστεροςMKY9

# Η διαδικασία επανεξέτασης του Spec

Ένα spec δεν είναι'τι κάνει όταν τελειώσετε να το γράψετεΜSK1τι 'τι γίνεται όταν αυτό ΜSK3τι έχει αναθεωρηθεί από τους ανθρώπους που'τι θα το χρησιμοποιήσει

Θεραπεία Spec αναθεωρήσεις όπως Κώδικα Αναθεωρήσεων

Οι καλύτερες πρακτικές που έμαθα στη Microsoft: Οι κριτικές spec λειτουργούν ακριβώς όπως οι κριτικές κώδικα. Αγαπούν το ' αρέσει συνεργατικό, σίγουρα δεν αντιπαράθετο Το ( σίγουρα η Microsoft Το 'boys clubΤο ΜSK4 σίγουρα συχνά έκανε τις αξιολογήσεις των ειδών να αισθάνονται σαν γλαδιωτικές μάχες αν κάποιος ήταν πικρόςΟ ΜSK5 σίγουρα ο Σίμον σίγουρα το ΜSK6 σίγουρα Ο στόχος δεν είναι σίγουρο ότι η ΜSK7 σίγουρα θα σας πάρει έξωΗ ΜSK8 σίγουρα ότι αυτό σημαίνει ότι η ' σίγουρα κάνει το spec καλύτεροΟ . σίγουρα

Όταν αναθεωρούνται τα specs:

  • Ρωτήστε ερωτήσεις - ΜSK1Τι συμβαίνει αν συμβεί το XΤο ?" δεν είναι Το ' επικρίσεις Το ΜSK4 αναφέρει ότι το ' εντοπίζει ένα κενό
  • Προτεινόμενες εναλλακτικές - ΜSK1Έχετε εξετάσει την προσέγγιση YΗ ΜSK2 ανοίγει τη συζήτηση
  • Ανακαλύψτε τις αγνοούμενες περιπτώσεις - ΜSK1Αυτό δεν σημαίνει ότι η ' καλύπτει το σενάριο ZΗ " μπορεί να βοηθήσει στην ολοκλήρωση της εικόνας
  • Προκλήσεις υποθέσεις - ΜSK1Γιατί το αντιμετωπίζουμε με αυτόν τον τρόπο ίσως η ?" μπορεί να αποκαλύψει καλύτερες προσεγγίσεις

Όταν το spec σας αναθεωρείται:

  • Οι ερωτήσεις είναι ευκαιρίες - αποκαλύπτουν τι γνωρίζει το ' αναφέρει ασαφές και τι γνωρίζετε Το ' αναφέρει λείπει
  • Οι προτάσεις βελτιώνουν το spec - πιθανόν να τα λάβετε σοβαρά, ακόμη και αν δεν σας αρέσει' θα αποδεχτεί όλα αυτά
  • Σημειώνεται ότι το ' δεν αναφέρει προσωπικό - Όπως αναθεώρηση κώδικαΗ , αναφέρει ότι η ' αναφέρεται για τη βελτίωση της εργασίας Η , δεν θα σας επιτεθεί
  • Ο αναθεωρητής μπορεί να κάνει λάθος - Εξηγήστε γιατί η προσέγγισή σας έχει νόημαΜSK1 μπορεί να μάθουν κάτι επίσης

Οι καλύτερες κριτικές spec είναι συνομιλίες. Πηγαίνετε πίσω και προς τα εμπρόςΜSK1 Μάθετε ο ένας από τον άλλον. Το spec που εμφανίζεται είναι καλύτερα από ό, τι κάθε άτομο θα μπορούσε να έχει γράψει μόνος του

Ποιος πρέπει να αναθεωρήσει

Λάβετε σχόλια από όλες τις προοπτικές που έχουν σημασία:

Ανασκόπηση προγραμματιστών -Θα λειτουργήσει αυτό πραγματικάΜSK1 Υπάρχουν τεχνικοί περιορισμοί που έχουμε γνωρίσει' εξετάζεται ΜSK3 Υπάρχει αρκετή λεπτομέρεια για την υλοποίηση ? Ποιες ερωτήσεις θα είχατε αν χτίζετε αυτό

Αναθεώρηση προϊόντων -Αυτό λύνει το σωστό πρόβλημαΜSK1Είναι σύμφωνο με τη στρατηγική προϊόντοςM SK2Τι'έχει έλλειψηMSKA4Η ΜΣΚ5αυτά τα κριτήρια αναφέρουν στην πραγματικότητα την αξία για τους χρήστεςΜСК7

Σχεδιασμός αναθεώρηση - Η εμπειρία του χρήστη έχει νόημαΜSK1 Έχουμε εξετάσει την προσβασιμότητα? Τι συμβαίνει με το κινητόM SK3 Λύτρευαμε τον χρήστηΗ ' αναφέρει πρόβλημα ή απλά χτίζουμε χαρακτηριστικά

QA αναθεώρηση - Μπορούμε να το δοκιμάσουμε αυτόΜSK1 Τα κριτήρια αποδοχής είναι αρκετά ξεκάθαρα ΜSK2 Τι συμβαίνει με τις περιπτώσεις ακρογωνιαίων ? Τι μπορεί να πάει λάθος

You don't χρειάζεται επίσημη σήμανσηΜSK1off από όλους.Χρειάζεστε την εισαγωγή τους για να κάνετε το spec καλύτεροM SK3Να το σκεφτείτε όπως MSKA4Request for commentsMKA5No ΜΣΚ6 Request for approval

Κοινές ερωτήσεις αναθεώρησης

Οι καλοί αναθεωρητές ρωτούν ερωτήσεις που βελτιώνουν το spec:

  • "Τι συμβαίνει αν ο χρήστης κάνει XΜSK1 Η ( αναφέρει περιπτώσεις)
  • "Πώς αυτό αλληλεπιδρά με την υφιστάμενη λειτουργία YΜSK1
  • "Τι μπορεί να κάνει το ' για την πτώση μας αν η εξάρτηση Z δεν είναι σίγουροΤο ' είναι έτοιμο για το ?" Το ( κινδυνεύει για το ΜSK5
  • "Μπορούμε να απλοποιήσουμε αυτό κάνοντας το W αντί για το ?"
  • "Πώς θα γνωρίζουμε αν αυτό επιτυγχάνεται ΜSK1 Μετρήσεις επιτυχίας ( ΜSK3
  • "Τι δεν κάνουμε ΜSK1 ΜSK2σκόπιο

Κανένα από αυτά δεν είναι gotchas.ΈχουνΜSK1 διατηρεί αληθινές ερωτήσεις που βοηθούν τη σάρκα να βγάλει το spec.

Εισαγωγή Feedback

Εσείς κερδίσατε' θα αποδεχτεί κάθε πρόταση. θα αποδέχεστε ότι το ' θα είναι καλό, αλλά για κάθε κομμάτι ανατροφοδότησης θα αποδίδεται στο :

  1. Σκεφτείτε ειλικρινά - DonΜSK1 θα το απορρίψει επειδή ΜSK2θα δεχτείΜSK3 θα καταλάβει ΜСК4
  2. Αν το αποδεχτείς - Ενημέρωση του specΜSK1 ευχαριστώ τον αναθεωρητή
  3. Αν δεν σας αρέσει, θα το αποδεχτείτε - Εξηγήστε γιατί το , μπορεί να του αρέσει το ΜSK2 αναφέρει ότι λείπει το πλαίσιο
  4. Εάν το ' αναφέρει εκτός κλίμακας - Προσθήκη του στο ΜSK1Από το πεδίο εφαρμογής ΜSK2 ή "Προηγούμενες βελτιώσεις Μέρος εφαρμογής

Το spec θα πρέπει να βελτιωθεί με κάθε γύρο αναθεώρησης. Εάν δεν ενδιαφέρεται'ΜSK2 εσείς ενδιαφέρεστε' μην ακούτε ή οι αναθεωρητές σας ενδιαφέρουν' ασχολούνται.

Αποκτήστε αναθεωρήσεις από όλες αυτές τις προοπτικές πριν ξεκινήσετε την εφαρμογή. Βρείτε προβλήματα στα λεπτά κόστους specΜSK1 βρείτε τα μέσα σε εβδομάδες κόστους παραγωγής

Ένα συγκεκριμένο παράδειγμα για την υπηρεσία μετάφρασης Markdown

Για να γίνει αυτό όλο λιγότερο αφηρημένο, εδώΜSK1 τι ένα spec θα μπορούσε να μοιάσει για την αυτοματοποιημένη χαρακτηριστική μετάφρασης μάρκας που χτίστηκα για αυτό το blog ΜSK2 Αυτό αποδεικνύει τις αρχές που αγαπάμε' συζητήθηκαν

προβληματική δήλωση

Blog posts written in English only exclude non-Αγγλικά ομιλούμενοι αναγνώστεςΜSK1Η χειροκίνητη μετάφραση κάθε ανάρτησης σε πολλαπλές γλώσσες είναι χρόνος-καταναλώνει και καθυστερεί τη δημοσίευση ΜSK3 Χρειαζόμαστε μια αυτοματοποιημένη λύση που μεταφράζει σημειωμένα μηνύματα blog σε πολλές γλωσσές-στόχους χωρίς να απαιτείται εγχειρήσια παρέμβαση για κάθε ανάρτηση

Λύση

Εφαρμόστε μια υπηρεσία υπόβαθρου που μεταφράζει αυτόματα τα αρχεία καταγραφής σε ρυθμιζόμενες γλώσσες-στόχους χρησιμοποιώντας την υπηρεσία μηχανικής μετάφρασης EasyNMT.Η υπηρεσία θα εξυπηρετήσει:

  • Παρακολούθηση των αρχείων markdown για αλλαγές
  • Εξαγωγή μεταφραστικού κειμένου, διατηρώντας ταυτόχρονα τη δομή και τα μπλοκ κωδικού
  • Απαιτήσεις μετάφρασης Batch για αποτελεσματικότητα
  • Δημιουργήστε μεταφρασμένα αρχεία μάρκας με κατάλληλα γλωσσικά suffix

Κριτήρια επιτυχίας (Τι ΜSK1Διαβάστε περισσότερα"Φαίνεται σαν το ΜSK3

Αυτά τα κριτήρια μας λένε ακριβώς πότε μπορούμε να σταματήσουμε την εργασία σε αυτό το χαρακτηριστικό

  • Νέες δημοσιεύσεις στο blog μεταφράζονται αυτόματα σε όλες τις ρυθμιζόμενες γλώσσες (ΕπιτέλουςΜSK1 Ισπανικά, Γαλλικά ΜSK3 Γερματικά ΜΚ4 Ιταλικά ΜΣΚ5 Πορτογαλικά , Κινέζικα ΜСК7 Αραβική Μσκ8 Ινδικό Μск9 Ιαπωνικό Μスク10 Κορεάτικα ΜσΚ11 Ολλανδικά
  • Τα μεταφρασμένα αρχεία διατηρούν την ίδια δομή μάρκινγκ με τα πρωτότυπα
  • Κωδικά μπλοκ, εικόνες URL, και διαμόρφωση παραμένουν αμετάβλητα
  • Η μετάφραση ολοκληρώνεται μέσα σε 15 λεπτά για μια τυπική ανάρτηση στο blog ΜSK1 λέξεις
  • Το σύστημα ανακαλύπτει μόνο τα αρχεία που έχουν αλλάξει ( επαληθεύεται μέσω σύγκρισης hash
  • Η υπηρεσία ξεκινά με επιτυχία ακόμα και αν το API μετάφρασης δεν είναι προσωρινά διαθέσιμο
  • Λάθη κατά τη διάρκεια της μετάφρασης είναι εγγεγραμμένα, αλλά το ' αναφέρει ότι η εφαρμογή έχει καταστραφεί

Σημειώστε ότι αυτά είναι συγκεκριμένα και δοκιμάσιμα.Μπορούμε να επαληθεύουμε το καθένα.Όταν όλοι συναντηθούνM SK2θα γνωρίζουμε'θα κάνουμεMK4Δεν γνωρίζω'θα συνεχίσουμε προσθέτοντας χαρακτηριστικά όπως ΜSK6εξαγωγή ποιότητας βαθμολόγησηMSKA7 ή MKA8εγχειρητική μετάφραση επεξεργασίαMSKI9 εκτός εάν επεκτείνουμε ρητά την έκτασηMSKE10

Στο πεδίο

  • Υπηρεσία υπόβαθρου για την επεξεργασία αρχείων markdown
  • Ενεργοποίηση με το EasyNMT Translation API
  • Hash- αναφερόμενη ανίχνευση αλλαγών για να αποφευχθεί η περιττή επανεξέταση
  • Η επεξεργασία συσκευών για να χειριστεί το EasyNMT' διατηρεί όριο λέξης
  • Ρυθμίστε την ισορροπία φόρτωσης μέσω πολλών παραδείξεων EasyNMT
  • Διατήρηση του συντάγματος μάρκετινγκ, μπλοκ κώδικαΜSK1 και εικόνες κατά τη διάρκεια της μετάφρασης

Πέρα από το πεδίο

  • Διασύνδεση χρήστη για χειροκίνητη επεξεργασία μετάφρασης (future βελτίωση)
  • Μεταφραστική μνήμη ή διαχείριση φωνητικού (may προσθέτει αν προκύψουν προβλήματα ποιότηταςΜSK1
  • Real-time μετάφραση Η επεξεργασία (background είναι αποδεκτήΜSK2
  • Μετάφραση σχολίων κωδικού μέσα σε μπλοκ κώδικα ( εν προκειμένω αποκλείεται ΜSK1
  • Αυτόματη αξιολόγηση της ποιότητας των μεταφράσεων ( εβδομαδιαία αναθεώρηση που απαιτείται αρχικά

Τεχνικοί περιορισμοί

  • Το EasyNMT έχει ~500 όριο λέξεων ανά αίτηση ΜSK1Δεν ισχύει για ΠΕΡΙΣΣΟΤΕΡΙΚΗ ΕΠΙΧΕΙΡΗΣΗ που μπορεί να πάρει τρελό βιβλία) ΜSK1 πρέπει να συλλέξει ανάλογα
  • Η υπηρεσία μετάφρασης μπορεί να είναι αργή (~15 δευτερόλεπτο εκκίνησης ανά παρτίδαΜSK1 ΜSK2mostlylucid ΜСК3nmt αναζωογονείται 3seconds
  • Πολλαπλές παραδείξεις EasyNMT που απαιτούνται για εύλογη απόδοση (nope πλειοψηφίαlucidM SK1nmt ΜSK2
  • Το σύστημα αρχείων I/O δεν πρέπει να μπλοκάρει την κύρια εφαρμογή

Ανοιχτά ερωτήματα στο Spec Time

  • Θα πρέπει να κρυπτογραφήσουμε τις μεταφράσεις για να αποφύγουμε την επανεξέταση του - μετάφρασης αμετάβλητων αρχείων από το ? Επίλυση: Ναι, χρησιμοποιώντας τη σύγκριση hash αρχείων
  • ~~Πώς αντιμετωπίζουμε τις αποτυχίες εξυπηρέτησης EasyNMTΜSK1 Επίλυση : Λογισμικό σφάλματος και λήψη αρχείου ΜSK1 θα αποσυρθεί στην επόμενη επανεκκίνηση της υπηρεσίας ΜSK2 ένα διακόπτη κύκλου ( μπορεί να είναι ένα spike
  • Ποια προβλήματα ποιότητας θα μπορούσαμε να δούμε με το τεχνικό περιεχόμενο? Απόφαση: Ναυτιλία και αξιολόγησηΜSK1 χειροκίνητη αναθεώρηση ερευνών ζητήματα

Τι μαθαίνουμε κατά τη διάρκεια της εφαρμογής

Πολλά πράγματα εμφανίστηκαν κατά τη διάρκεια της ανάπτυξης που αναβαθμίζει το spec:

Μπάτσος μεγέθους Tuning: Ξεκινάει με ΜSK1 ανακοινώσεις μπάτσες ΜSK2 αλλά βρήκε 10 γραμμές πιο αξιόπιστη για να παραμείνει κάτω από το EasyNMT Η ' αναφέρει όριο λέξεων ενώ διατηρεί το πλαίσιο

Φωτογραφική ανίχνευση: Αρχικά αναφέρθηκε ότι τα ονόματα αρχείων εικόνας , αναφέρθηκαν σε σήμανση αποστέλλονται στην υπηρεσία μετάφρασης ΜSK2 αναφέρεται σε παραβίαση φράσεων ΜSK3 αναφέρει Προσθήκη ανίχνευσης επέκτασης αρχείου για να ξεπεράσει τις διαδρομές εικόνας

Διαθεσιμότητα υπηρεσιών:EasyNMT μπορεί να είναι θερμική στην εκκίνησηΜSK1Προσθήκη επιθεώρησης υγείας που ζητά την /model_name τελικό σημείο πριν από την προσπάθεια μετάφρασης.

Hash αποθήκευση: Αρχικά προγραμματισμένη αποθήκευση βάσης δεδομένων για τα αρχεία hashes, αλλά το σύστημα αρχείωνΜSK2 .hash Τα αρχεία αποδείχθηκαν απλούστερα και αποφεύγονται εξάρτηση βάσης δεδομένων για αυτή την υπηρεσία. επιχειρήσεις

Αυτά τα μαθήματα επιστρέφουν στην τεκμηρίωση και ενημερώνονται για παρόμοιες ιδιότητες αργότερα.

Γιατί λειτουργεί αυτό το Spec

Αυτό το spec ακολουθούσε τις αρχές που συζητήθηκαν:

  • Προβλήματα -first: Ξεκινάει με το πραγματικό πρόβλημα Η μετάφραση των εγγράφων του ( είναι αργή Το ) δεν είναι η λύση Το (χρησιμοποιεί EasyNMTΟ )
  • σαφής κλίμακα:Καταλήφθηκε ξεκάθαρα τι κάναμε Η μνήμη μετάφρασης (Η επεξεργασία UIΗ ΜSK4
  • Το σωστό επίπεδο λεπτομέρειων: Καθορίστηκε τι χρειάζεται να συμβεί Η ( διατηρεί τη δομή απομάκρυνσης Το ) χωρίς να συνταγογραφήσει ακριβή εφαρμογή
  • Ζωντανό έγγραφο: αναφέρει ότι οι ανοικτές ερωτήσεις επιλύθηκαν και οι αποφάσεις τεκμηριώνονται με την πρόοδο της εφαρμογής
  • Συνεργασία: Αναρτήθηκε κατά τη διάρκεια των προβλημάτων εφαρμογής ΜSK1 σχετίζεται με την επεξεργασία του αρχικού ονόματος εικόνας ειδικά ΜSK2 συζητήθηκαν και λύθηκαν ειδικά , έπειτα τεκμηριωμένα

Το αποτέλεσμα έδειξε ότι η : ανέφερε ένα χαρακτηριστικό που αναφέρει ότι το ' κυκλοφορεί στην παραγωγή για μήνες και ότι η ΜSK2 ανέφερε ότι μεταφράζει αυτόματα κάθε ανάρτηση στο blog με ελάχιστη παρέμβαση.

Συχνές ερωτήσεις για τα Agile Specs

Με βάση αυτό που περιμένουμε' περιέχει καλύπτονται, επιχειρήσεις εδώ είναι ερωτήσεις που προκύπτουν συχνάΜSK2 επιχειρήσεις

"Θα χρειάζομαι πραγματικά ένα spec για μια μικρή λειτουργίαΜSK1

Εξαρτάται από "small."Αν ΜSK2σε πραγματικά τρισδιάστατο ΜSK3σε αλλαγή κειμένου κουμπιού ΜΚ4σε καθορισμό τύπου ΜΣΚ5σε μηΜΣΚ6Αλλά αν χρειαστεί να μασκ7

  • Αξιολογείτε πόσο καιρό θα διαρκέσει το '
  • Συμφωνία από τους ενδιαφερόμενους
  • Βεβαιωθείτε ότι το QA ξέρει τι να δοκιμάσει
  • Ενημερωθείτε τι δημιούργησες για μελλοντική αναφορά

Στη συνέχεια ναι, ακόμη και ένα γρήγορο spec βοηθά. Δεν σημαίνει ότι η ' χρειάζεται να είναι επίσημηΜSK3 Λίγα σημεία σφαίρας σε μια κάλυψη εισιτηρίου ΠρόβλημαΗ , ΛύσηΗ ΜSK5 και τα κριτήρια Done είναι συχνά αρκετά

Η δοκιμή : αν μπορείτε να ΜSK1t εξηγεί τι ΜSK2done " μοιάζει σε δύο φράσεις ΜСК4 θα χρειαστείτε ένα spec ΜΚ5

"Πώς χειρίζομαι τους ενδιαφερόμενους φορείς που θέλουν τα πάντα στο πεδίο εφαρμογήςΜSK1

Σημείωση στην ενότητα Εξωτερική έκταση.Εξηγήστε ότι:

  1. Προσθήκη περισσότερων αυξήσεων χρονοδιάγραμμα - Θέλουν να έχουν χαρακτηριστικό Α σε ΜSK1 εβδομάδες ή χαρακτηριστικά AM SK2 B, CMSKA4 και D σε 🎁3 μήνεςMK6
  2. Μπορούμε να το κάνουμε στη συνέχεια - ΜSK1Αυτό σημαίνει ότι το ' παρέχει μια μεγάλη ιδέα Το . Ας ελπίσουμε ότι το ΜSK4 παρέχει την κεντρική εργασία πρώτα Το , στη συνέχεια αντιμετωπίζει ότι ως ξεχωριστό spec παρέχεται η ."
  3. Προτεραιότητες του χρόνου-box - ΜSK1Έχουμε ΜSK2 εβδομάδες . Ποια από αυτά είναι πιο σημαντική

Εάν επιμένουν ότι τα πάντα είναι εξίσου κρίσιμα, οι επιχειρήσεις , προτείνουν να επιλέξουν ποια άλλη εργασία θα καθυστερήσει αντί για τις εταιρείες . που συνήθως διευκρινίζει τις προτεραιότητες γρήγορα.

"Τι συμβαίνει αν το spec αλλάζει τόσο πολύ που αναφέρει ότι η ' αναφέρει αδιαγνωρίσιμη από την αρχή.

Το γεγονός ότι το ' διατηρεί καλό στο , διατηρείται όσο το ΜSK2 διατηρήσει

  • Οι αλλαγές είναι τεκμηριωμένες ( ενημερώνει το specΜSK1 Don ΜSK2 αλλάζει μόνο τον κώδικα )
  • Οι αλλαγές κοινοποιούνται Οι επιχειρηματίες του ( γνωρίζουν τι άλλαξε και γιατί το )
  • Έχετε μάθει κάτι ( οι αλλαγές αντικατοπτρίζουν την εκμάθησηΜSK1 δεν χάος

Εάν το spec είναι αναγνωρίσιμο επειδή έχετε εντελώς παρεξηγήσει το πρόβλημα αρχικά, ότι' ένα σημάδι για να κάνετε περισσότερη ανακάλυψη πριν ξεκινήσετε την επόμενη φοράΜSK2 Αλλά η ιθερά και η μάθηση αναμένεταιM SK3

Το spec' αναφέρει ιστορία έκδοσης θα πρέπει να λέει την ιστορία του τι έχετε μάθει για το . αναφέρει

Σε Startups αυτό ονομάζεται 'Pivot' όπου ξεκινάτε την κατασκευή ενός παιχνιδιού και τελειώνετε με τη δημιουργία ενός εκπληκτικού συστήματος μηνυμάτων αντί για το ..You haveM SK3 άκουσε για το κινητό παιχνίδι GlitchMK4 πιθανότατα έχετε ακούσει για το bit μηνύματαΜSK5

Don't get too locked inΜSK1 Εάν υπάρχουνΗ 'ται ευκαιρίες περιστρέφοντας TAKE THEMΗ ΜSK3

"Θέλω να γράψω ειδήσεις για διορθώσεις σφάλματοςΜSK1

Για κρίσιμα bugs: δενΜSK1 απλά να τα διορθώσετε.

Για σύνθετα bugs που επηρεάζουν πολλαπλά συστήματα ή απαιτούν αρχιτεκτονικές αλλαγές: ναι . Θεραπεύστε το σαν ένα χαρακτηριστικόΜSK2 Τι' διακόπτεται ΜSK4προβλήματαM SK5 πώς θα σας αρέσει'θα διορθωθεί MK7Απόλυση), πως θα σας Αρέσει

Για τα πάντα μεταξύ: ίσως να χρησιμοποιήσετε την απόφασή σαςΜSK1 Εάν η διόρθωση δεν είναι ΜSK2 μπορεί να έχει προφανείς ή πιθανόν να έχουν παρενέργειες , ίσως μια γρήγορη εξειδίκευση βοηθά

Αυτό ισχύει ιδιαίτερα για τα σφάλματα ασφαλείας.Πρέπει να ξέρετε ΠΡΑΓΜΑΤΙΚΑ τι ενδιαφέρεστε' αναφέρει τη διόρθωση και πώς ενδιαφέρεται' αναμένεται να το επαληθεύσει ΜSK3 αναμένω να μοιράζεται τις διόδους WIDELY.

"Πώς θα έπρεπε να είναι τυπικό το spec?"

Ως επίσημο όπως η ομάδα σας χρειάζεται. Μερικές ομάδες είναι καλά με λεπτομερείς εισιτήρια JIRA. Άλλοι θέλουν τα κατάλληλα έγγραφα στον έλεγχο έκδοσηςM SK2

Η τυπικότητα είναι λιγότερο σημαντική από το περιεχόμενο:

  • σαφής δήλωση προβλημάτων
  • Προτεινόμενη λύση
  • Ορισμός του DON
  • Τα σαφή όρια

Μπορείτε να γράψετε ότι στο Markdown, Confluence, WordM SK2 ή σκαρφαλωμένο σε ένα napkinMK3 Η μορφή δεν κάνει' σημασίαMST5 η σκέψη κάνειMST6

Αυτό είναι το συχνά αδιαφημισμένο κλειδί για την ευέλικτη ανάπτυξη; και γιατί μισώ τα Agile Frameworks M SK1 και SCRUM ). Το WHOLE POINT είναι ότι όπως ένα agile spec η διαδικασία σας πρέπει να είναι προσαρμοστική πολύ. Εάν γράψετε λίγο δενΜSK4 εργάζεται για μια ομάδα αλλά πολλάMSKA5 κάνει αυτόMKA6 Αν κανένα docs λειτουργεί για μια μικρή ομάδα αλλά πλήρες docs εργάζονται για μία μεγάληMK7 κάνουν αυτό Εάν 5 ημερήσιους κύκλους εργάζονται για μία ομάδα, αλλά ΜSK1 εβδομάδες σπριντ για μια άλλη ΜSK2 κάνουν ότι Η ιδέα του WHOLE είναι να κάνει το καλύτερο προϊόν; η ομάδα σας είναι η μηχανή MAKING ότι το προϊόνΜSK1 Κάντε τη μηχανή λειτουργεί όσο πιο ομαλά γίνεται.

Ως διαχειριστής κοιτάξτε τι τα αποτελέσματα σας είναι; αν το τραπέζι χρειάζεται ένα κάψιμο γραφείο τότε πώς μπορείτε να χρησιμοποιήσετε τα τρέχοντα δεδομένα για την κατασκευή ενός. Αν πρέπει να χρησιμοποιείτε τις αξιόπιστες ΜSK2 σημεία αναφοράς ΜSK3 THAT παίρνει τα δεδομένα που χρειάζεστε

Στο τέλος, η ομάδα σας διαθέτει χαρακτηριστικά και τι ενδιαφερόμενα μέρη χρειάζονται για να αποκτήσουν. Αν μπορείτε να μειώσετε τον αντίκτυπο στην ομάδα τότε ότι το ' διατηρεί το μέρος σας για να απολαύσει.

"Τι αν μου αρέσει το ' θα είναι ο μοναδικός προγραμματιστής στο έργο

Θα χρειαστείτε ακόμα specs, ίσως και περισσότερα για αυτόΜSK1 Σε έξι μήνες όταν πρέπει να επεκτείνετε αυτή τη δυνατότητα, θα κερδίσετεM SK3 θυμάστε γιατί κάνατε ορισμένες αποφάσεις ΜSK4 Το spec είναι το παρελθόν σας μιλάμε με τον εαυτό σας στο μέλλον

Επιπλέον, θα πρέπει ακόμα να επιτύχετε:

  • Εκτιμήστε την εργασία για όσους αγαπούν το ' σας πληρώνει
  • Προσδιορίστε τι σημαίνει "done ΜSK1, έτσι ώστε να μπορείτε να ολοκληρώσετε
  • Εγγράψτε τι δημιουργήσατε για άλλους που θα μπορούσαν να συμμετάσχουν αργότερα

Γράφοντας προδιαγραφές για τον εαυτό σας είναι σαν να γράφετε δοκιμές μονάδας: ίσως αισθάνεται πιο αργά τώρα, αλλά εξοικονομεί χρόνο αργότερα ( μου αρέσει, ίσως αγαπώ' στο δικό μου ΜSK4 σε , ΣΧΕΔΙΩ ΣΗΜΕΡΑ ΜSK6 γράψτε το κάτω έτσι γίνεταιM SK7 ακόμα κι αν αυτό κάνει' μόνο μια λίστα των προβλημάτων github

"Πώς μπορώ να αντιμετωπίσω την κλίμακα κρέατος που αποτυγχάνεται ως ΜSK1 αναγκαίες απαιτήσεις διευκρινίσεις'?"

Καλέστε το .Όταν κάποιος λέει ΜSK1Και ΜSK2 ξέχασα να αναφέρω ότι θα πρέπει επίσης να κάνει XΗ ," ότι Η ' δεν διευκρινίζειΗ ΜSK5 ότι η ' νέο πεδίοη ΜSK7

Απάντηση: ΜSK1Αυτό σημαίνει ότι το ' ανταποκρίνεται σε μια καλή απαίτηση ειδικά στο ,, αλλά αυτό σημαίνει ότι η ' δεν ανταποκρίθηκε σε ό, τι συμφωνήσαμε στην έκδοση ειδικότερα στο . Ας ελπίσουμε ότι το ' αναφέρει να το προσθέσει στο τμήμα Out of Scope για τώρα και να συζητήσει αν πρέπει να συμπεριληφθεί ή να αποθηκευτεί για εκδοχή

Αν αυτό είναι πραγματικά μια απαίτηση (όχι ένα ωραίοΜSK1ο ΜSK2ο ),ο τότεΗ ΜSK4ο

  1. Ενημερώστε το spec για να το συμπεριλάβετε
  2. Ενημέρωση των εκτιμήσεων
  3. Αποκτήστε συμφωνία σχετικά με το νέο χρονοδιάγραμμα ή τι να κόψετε για να ταιριάζει στην αρχική χρονομιά

Ποτέ μην απορροφήσετε σιωπηλά το εύρος κρέατος. Θα καταστρέψει τις εκτιμήσεις και την αξιοπιστία.

"Μπορώ να ξεκινήσω την κωδικοποίηση πριν ολοκληρωθεί το spec

Ναι, αν σας αρέσει' πρωτότυπο για να απαντήσετε σε ανοιχτές ερωτήσειςΜSK2 Όχι ΜSK3 εάν σας αρεθεί' κτίριο για την παραγωγή

Το πρωτότυπο για να μάθεις είναι καλό: ΜSK1Έχουμε τρεις προσεγγίσεις. Αφήστε μου να ξεκινήσω κάθε ένα για να δω ποιο λειτουργεί καλύτεραM SK3 Αυτό ενημερώνει το specMK4

Η οικοδόμηση κώδικα παραγωγής πριν από το spec είναι έτοιμο σημαίνει ότι μπορείς' μπορείς να υποθέσεις στις απαιτήσεις. μπορείςΜSK2 μπορείς πιθανώς να χτίσεις το λάθος πράγμα. μπορείς

Εξαίρεση: αν σας αρέσει' ο ιδιοκτήτης του προϊόντος και ο προγραμματιστής ΜSK2solo projectM SK3 μπορείτε να spec και κωδικοποιήσετε ταυτόχρονα. Αλλά εξακολουθείτε να τεκμηριώστε τις αποφάσεις σας καθώς θα πάτεMK5

Το ' καθώς το spec είναι έτοιμο' είναι ένας μεγάλος τρόπος για να πάρετε τα devs φορτωμένα μέχρι να ξεκινήσετεΜSK2 Εκτίμηση τεχνολογικών προσεγγίσεωνΗ ΜSK3 γράφει κοινή πλατφόρμα κλπΗ .

"Τι αν η ομάδα μου δεν σας αρέσει' θα διαβάσετε ειδήσεις

Εξερευνήστε γιατί το :

  • Πολύ μακριά από την ΑΕΚ Κάντε τους συντομότερους, πιο σαρωτές
  • Πολύ τυπικά? Χρησιμοποιήστε μια πιο ελαφριά μορφή
  • Ανεξάρτητο ? Βεβαιωθείτε ότι πραγματικά χρειάζονται τις λεπτομέρειες που σας αρέσει' διατηρεί παρέχοντας
  • Κακές συνήθειες ? Ξεκινήστε να απαιτείτε επανεξέταση προτού ξεκινήσει η ανάπτυξη

Αν οι άνθρωποι ξεφύγουν από τις αναθεωρήσεις spec και στη συνέχεια χτίσουν το λάθος πράγμα, κάνει τον πόνο ορατό. ΜSK2Αυτό δεν ήτανM SK3 στο specMSKA4 έτσι θα πρέπει να αναδιαρθρώσουμεMKA6 είναι ένα μάθημα μαθαίνουμε

Επίσης, το : μπορεί να κάνει τα specs εύκολο να βρεθούν στο . ίσως αν το ' μπορεί να είναι κρυμμένο σε κάποιο σκοτεινό wiki ίσως το ΜSK3 πιθανώς κανείς δεν θα τα διαβάσει ειδικά το . ίσως

"Πόσο χρόνο πρέπει να ξοδέψω σε ένα specΜSK1

Κανόνες του βάθους: ΜSK1 χρόνου ανάπτυξης ΜSK2

Για μια 2-εβδομάδα χαρακτηριστικόΜSK1 Μσκ2 ημέρες στο specΜσΚ3 Για μια 1- εβδομαδιαία χαρακτηριστικήΜSK1 σχεδόν μισή ημέρα στο spec. Για ένα 2-day χαρακτηριστικόM SK1 μια ώρα ή δύο στο spec.

Ωστόσο, δεν είναι βέβαιο ότι το ' αναμένεται να είναι θρησκευτικό γι 'αυτό. αναμένω Κάποια χαρακτηριστικά χρειάζονται περισσότεραΜSK2 αναμένετε σκέψη. αναμένει Άλλοι είναι προφανείς και το spec παίρνει M SK4 αναμένουν λεπτά

Εάν σας αρέσει' διατηρεί να ξοδεύει περισσότερο χρόνο στο spec παρά στην υλοποίηση, ίσως σας αρεθεί' αναρωτιέται να το σκεφτόμαστε. ΘυμηθείτεΜSK4 specs είναι εργαλεία για να σας βοηθήσουν να εργαστείτεM SK5 όχι έργα τέχνης

"Γιατί οι εκτιμήσεις είναι πάντα λάθοςΜSK1

Επειδή η εκτίμηση του λογισμικού είναι θεμελιωδώς δύσκολη.ΕδώΜSK1 αναφέρει την δυσάρεστη αλήθεια: εκτιμάται ότι λειτουργεί μόνο αν σας αρέσει' αναμένεται να γίνει ΠΡΟΣΟΧΗ εκείνη την εργασία πριν από το , ανακοινώθηκε σε αυτό το περιβάλλον, η , ανακοινώνεται με αυτά τα εργαλεία και οι απαιτήσεις του , ανακοινωθεί με μη μεταβαλλόμενες απαιτήσεις της . ανακοινώνει

Αυτό που σχεδόν ποτέ δεν συμβαίνει

Κάθε φορά που εκτιμάτε το , θα σας αρέσει' θα είστε σίγουροι για την αντιμετώπιση του :

  • Απίστευτα άγνωστα - Προβλήματα που δεν σας αρέσουν't know exist yet
  • Γνωστοί άγνωστοι Προβλήματα που γνωρίζετε ότι υπάρχουν αλλά δεν έχετε ιδέα πώς να τα λύσετε
  • Αλλαγή απαιτήσεων - Το spec εξελίσσεται καθώς χτίζετε ΜSK1ο CEO έχει μια τρελή ιδέα στο μπάνιοΗ .. συμβαίνειΗ ΜSK3Έχω κάποτε λάβει ένα τηλεφώνημα από τον πελάτη μου HUGELY DRUNK στο μπανιέρα με μια ανόητη ιδέα
  • Περιβαλλοντικές διαφορές - Αυτή η βιβλιοθήκη εργάστηκε στο τελευταίο σας έργοΜSK1 αλλά αυτό το έχει διαφορετικές εξαρτήσεις ΜSK2 Σας αρέσει' τρέχει όλα σε IIS αλλά αυτό χρειάζεται να τρέξει στο Linux & Kestrel
  • Εργαλεία Προβλήματα - Το σύστημα κατασκευήςΜSK1 ο σωλήνας εκμετάλλευσηςΜ SK2 ή το περιβάλλον δοκιμών συμπεριφέρεται διαφορετικά
  • Ενσωμάτωση εκπλήξεις - Το API που σας αρέσει' αναγνωρίζει την κλήση δεν κάνει το ' να λειτουργεί αρκετά όπως τεκμηριώθηκε
  • Ανθρώπινοι παράγοντες - Σας αρέσει' αναφέρει διακοπέςΜSK2 ειδικά άρρωστος ΜSK3 αναφέρουν ή αντιμετωπίζουν προβλήματα παραγωγής
  • Χρηματοδότηση Μερικές φορές μια μικρότερη έκδοση απαιτείται νωρίτερα, επειδή *Διαφορετικά αναφέρουμε ότι η ' αναφέρει από τα χρήματα αναφέρθηκε στην ^ αναφέρουν ότι οι ' αναφέρουν COMMON σε startups αναφέρθηκαν στη . Η ( αναφέρθηκα στο ' αναμένεται να έχει ένα άρθρο σχετικά με την ' αναφέρεται στις Startup dev αναφέρονται στις ' αναφορές και πώς διαφέρει από τις ' αναφερόμενες στις μη φυσιολογικές αναφορές

Αυτός είναι ο λόγος για τον οποίο η :

  • Οι βαθμολογίες νίκησαν τα σημεία - ΜSK1 ημέρεςΗ ΜSK2 αναγνωρίζει αβεβαιότητα
  • Βοήθεια Spikes - Χρησιμοποιήστε μια ημέρα έρευνας πριν από την εκτίμηση της πλήρους εργασίαςΜSK1 αυτή η τεχνολογία είναι πιο δύσκολη ή ευκολότερη απ’ ό, τι εκτιμούσα, όπου μπορεί να εξοικονομήσει χρόνο κλπ
  • Χρόνος-boxing εργασίες - ΜSK1Θα ξοδέψουμε το ΜSK2 εβδομάδες και θα δούμε τι παίρνουμεΗ ΜSK4 θέτει τις προσδοκίες
  • Τα ιστορικά δεδομένα - Παρατηρήστε πόσο καιρό παρόμοιες εργασίες πήραν πραγματικά
  • Το Padding είναι ειλικρινές - Εάν σκέφτεστε ΜSK1 ημέρες ΜSK2 λένε 5. Θα είστε σωστά πιο συχνά ΜΚ5 Η ΜΣΚ6 Σκωτία ΜСК7 προσέγγιση ΜΚΕ8
Όσο πιο καινούργιο είναι το έργο, τόσο χειρότερες οι εκτιμήσεις σας. Δημιουργία του ίδιου CRUD φόρμας που αγαπάτε' κατασκευάστηκε ΜSK3 χρόνοιMK4 Θα είστε κοντάM SK6 Ενεργοποίηση με μια νέα υπηρεσία χρησιμοποιώντας ένα άγνωστο πρωτόκολλο ΜSK7 Η εκτίμηση σας είναι μια υπόσχεση ενσωματωμένη στην ελπίδα .

Αυτός είναι ο λόγος για τον οποίο οι δείκτες χρειάζονται σαφή "doneΜSK1 κριτήρια ΜSK2 Μπορείτε να κάνετε εκτιμήσεις ' με ακρίβεια , αλλά μπορείτε να καθορίσετε πότε να σταματήσετε ΜСК5 Όσο το ΜSK6 πιο πολύτιμο ΜΚ7

"Τι γίνεται με τις προδιαγραφές για εργασίες έρευνας ή εξερεύνησηςΜSK1

Αυτές οι ανάγκες είναι διαφορετικές "συνειδητοποίησε" κριτήριαΜSK2Συμπεριλαμβανομένης της λειτουργίας του "συναρμολόγηση Xσχετικά με το ,"σπεριλαμβάνονται με το ΜSK5σχειριστεί με το "σχουνριστούν με την 'σχετε απαντηθεί ερώτηση Yσχ8

Παράδειγμα spec για την εξερεύνηση:

  • Πρόβλημα: Δεν γνωρίζουμε ότι η προσέγγιση Α ή B είναι καλύτερη για τον κινητήρα σύστασης
  • Λύση: Χρηματοδότηση ΜSK1 εβδομάδα πρωτότυπη και τις δύο προσεγγίσεις
  • Δομμένα κριτήρια: Έχουμε εργασιακά πρωτότυπα κάθε επιχείρησης, αναφέρει μετρήσεις απόδοσης τόσο για τις επιχειρήσεις, όσο και μια σύσταση για την οποία να ακολουθήσει
  • Πέρα από το πεδίο: Εφαρμογή Παραγωγής Η ( ανακοινώνει μετά την απόφαση που αποφασίζουμε για την )

Χρόνος-boxing είναι κρίσιμη για την εξερεύνησηΜSK1 Χωρίς αυτό, ερευνητικά καθήκοντα δεν τελειώνουν ποτέ

"Πώς γράφω προδιαγραφές για χαρακτηριστικά δεν μου αρέσει' θα κατανοήσω πλήρως, αλλά θα έρθει?"

Ξεκινήστε με αυτό που γνωρίζετε:

  • Προβληματική δήλωση (Θα πρέπει να γνωρίζετε αυτόΜSK1
  • Προτεινόμενη προσέγγιση (your best guess)
  • Ανοιχτές ερωτήσεις (όλα όσα δεν γνωρίζετε' γνωρίζει)
  • Κριτήρια ( ανακοινώθηκε αν σκληρήΜSK1 ανέφερε

Σημαντικές ενότητες όπως "TBD." Να είστε ειλικρινείς σχετικά με την αβεβαιότηταM SK2

Στη συνέχεια, χρησιμοποιήστε τη διαδικασία επανεξέτασης spec για να συμπληρώσετε τα κενά. Οι συνομιλίες κατά τη διάρκεια της αναθεώρησης συχνά διευκρινίζουν τι είχες γνωρίσει' καταλαβαίνει.

Θυμηθείτε ότι το : μπορεί να είναι ατέλειωτο, αλλά το ΜSK1 μπορεί να έχει τις πιο ειλικρινείς χτυπήσεις του - μπορεί να ολοκληρωθούν, αλλά η - μπορεί να αποκτήσει την - μπορεί να αποκατασταθεί.

"Μπορεί το GitHub να αντιμετωπίσει ζητήματα /Τίτλοι JIRA θα είναι το specΜSK2

Απολύτως . Το spec δεν ΜSK1 θα πρέπει να είναι ένα ξεχωριστό έγγραφο ΜSK2 Ένα καλά - γραμμένο GitHub θέμα ή JIRA εισιτήριο μπορεί να χρησιμεύσει ως το spec τέλεια

Αυτό που έχει σημασία είναι το περιεχόμενο, όχι το δοχείοΜSK1 Ένα καλό ζήτημα-Η -spec θα πρέπει να έχειM SK4

  • σαφής δήλωση προβλημάτων - Τι επιλύουμε και γιατί ΜSK1
  • Προτεινόμενη λύση - Πώς θα το προσεγγίσουμεΜSK1
  • Δομμένα κριτήρια - Ειδικά ΜSK1 δοκιμασμένα κριτήρια αποδοχής
  • Περιορισμοί πεδίου - Τι γνωρίζει η ' μέσα και έξω από το πεδίο εφαρμογής Η γνωρίζει τις ετικέτες όπως η " γνωρίζει την - γνωρίζει τη - γνωρίζει τον " γνωρίζει για τα στοιχεία που γνωρίζετε Η ' γνωρίζει σαφώς ότι δεν γνωρίζει
  • Ανοιχτές ερωτήσεις - Σημειώστε αυτά με ΜSK1ερευνήματα Η ετικέτα " ή παρόμοια

Τα πλεονεκτήματα της χρήσης προβλημάτων:

  • Όλα σε ένα μέρος - ΚώδικαΜSK1 specΜσκ2 συζήτησηΜσΚ3 και παρακολούθηση εργασιών μαζί
  • Εύκολη σύνδεση - Σχετικά με θέματα αναφοράςΜSK1 PRs ΜSK2 επιτεύγματα
  • Κατασκευασμένο- διατηρήστε την έκδοση - Ιστορία επεξεργασίας προβλήματος δείχνει πώς εξελίχθηκαν οι απαιτήσεις
  • Γνωστός ροός εργασίας - Η ομάδα ξέρει ήδη πώς να την χρησιμοποιήσει

Συμβουλές για τη χρήση προβλημάτων όπως specs:

  • Χρησιμοποιήστε την περιγραφή του προβλήματος για το spec, δεν είναι κρυμμένο σε σχόλια ΜSK1οι άνθρωποι διαβάζουν τη περιγραφή)
  • Ενημερώστε την περιγραφή καθώς εξελίσσεται το spec (add ΜSK1Επεξεργαστεί:" τμήματα για να εμφανιστούν αλλαγέςM SK3
  • Χρησιμοποιήστε ετικέτες για να υποδεικνύετε το κράτος: ΜSK1ΝΑΘΕΡΕΙ ΜSK2ΝαΘΕΡΑ ΜSK3ΝΟΜSK4ΝοΜSK5ΝΩΡΙ ΜSK6ΝΩΣ ΜSK7Νωρί ΜSK8ΝΗΘΕΡΟ ΜSK9 κλπ
  • Πίν σημαντικές συζητήσεις spec, έτσι ώστε να μην πετύχουν' θα χάσει σε 100 αναφέρει σχόλια
  • Σύνδεσμος προς τα έγγραφα υποστήριξης (διαγράμματαM SK1mockups) αν χρειαστεί

Η δοκιμή αναμένεται ότι: ίσως κάποιος θα μπορούσε να διαβάσει το ζήτημα και να ξέρει τι να χτίσει , τι ΜSK2 σημαίνει ΜSK4 και τι ' έξω από την έκταση ? Εάν ναι MC7 MK8 ένα καλό spec ανεξάρτητα από τη μορφή MC9

"Τι γίνεται με τις ειδικότητες στις ρυθμιζόμενες βιομηχανίεςΜSK1

Εάν ενδιαφέρεστε' αναλαμβάνει στην υγειονομική περίθαλψη, αναλαμβάνουν χρηματοδότηση, αναλαμβανόμενη αεροδιαστημικό χώροΜSK3 αναλαμβάνοντας ή άλλους ρυθμιζόμενους τομείςM SK4 αναλαμβανομένων μπορεί να χρειαστείτε περισσότερες τυπικές προδιαγραφές για τη συμμόρφωση

  • Ξεκινήστε με το πρόβλημα
  • Προσδιορίστε ξεκάθαρα
  • Αναπτύξτε όπως μαθαίνετε
  • Κρατήστε το specs τρέχον

Αλλά θα σας αρέσει' αναμένεται επίσης να χρειαστεί να απολαύσετε:

  • Ακολουθήστε τη βιομηχανία σας' συμμορφώνεται με τα πρότυπα τεκμηρίωσης
  • Περιλαμβάνει τις απαιτούμενες ενότητες ( ανάλυση επιχειρηματικής ασφάλειας ΜSK1 αναφέρει τη συμμόρφωση με τους κανονισμούς ΜSK2 αναφέρει τις γραμμές ελέγχου ) αναφέρει
  • Αποκτήστε επίσημη υπογραφή-offs όπου απαιτείται
  • Διατηρήστε μια λεπτομερέστερη ιστορία εκδόσεων
  • Κρατήστε τις προδιαγραφές μετά την ολοκλήρωση του έργου ( για ελέγχους)

Ακόμη και σε ρυθμιζόμενα περιβάλλοντα, ευέλικτη επιθεώρηση εργασίεςΜSK1 Έχετε μόνο περισσότερες ελπίδες για να πηδήξετε μέσα από. Το spec είναι ακόμα ένα εργαλείοM SK3 αυτόMSKA4 μόνο ένα εργασία που χρειάζεται να ικανοποιήσει τους κανονιστές καθώς και οι προγραμματιστέςMSKI5

Στο συμπέρασμα

Γράφοντας καλές προδιαγραφές χαρακτηριστικών σε ένα ευέλικτο περιβάλλον είναι μια δεξιότητα που βελτιώνεται με την πρακτική. Ο στόχος δεν είναιΜSK1t να γράψει τέλειες προδιαγραφή μπροστά ΜSK2they don't exist ΜСК4 it ΜΚ5t to write specs that help your team get started and evolve as you learn ΜΣΚ6

Οι βασικές αρχές του :

  • Specs είναι εργαλεία, δεν συμβάλλουν - Προσθέστε λεπτομέρειες όπου το χρειάζεστεΤο , εξελίσσεται καθώς μαθαίνετε
  • Ξεκινήστε με το πρόβλημα, δεν είναι η λύση - Η εφαρμογή ροής από την κατανόηση του προβλήματος
  • Συνεργασία, donΜSK1t δικτατορία - Όλοι συμβάλλουν στο να κάνει το spec καλύτερο
  • Ορισμός "συνειδητοποίησε" σαφώς - Πρόληψη μεταστάσεων χαρακτηριστικών με συγκεκριμέναΜSK1 δοκιμάσιμα κριτήρια
  • Πέρα από το πεδίο - Αυτό που σας αρέσει' διαβεβαιώνει ότι ΔΕΝ κάνετε είναι τόσο σημαντικό όσο αυτό που είστε
  • Αναμονή στην εξέλιξη - Οι λειτουργίες αλλάζουν καθώς τις κατασκευάζετεΜSK1 καταγράφει ότι μαθαίνεις
  • Κρατήστε το specs τρέχον - Έχουν γίνει το θεμέλιο για τις δοκιμέςΜSK1 docs, και μελλοντική ανάπτυξη

Το πιο δύσκολο κομμάτι είναι ότι η ' θα γράψει το αρχικό spec. θα ξέρει ότι η ΜSK2 θα γνωρίζει πότε να σταματήσει να εργάζεται σε ένα χαρακτηριστικόΗ . θα γνωρίσει Χωρίς σαφήνεια η " θα γνωρίζουμε τα κριτήρια της " θα γνωρίζουν τα χαρακτηριστικά του , θα μεγαλώνουν για πάντα και ποτέ δεν θα στείλουν το . θα γνωρίζεται

Αυτός είναι ο λόγος για τον οποίο η ευέλικτη εκτίμηση είναι τόσο δύσκολη. Σας αρέσει' διαβεβαιώνει όχι μόνο την εκτίμηση του χρόνου εφαρμογήςΜSK2 Σάς αρέσουν' διαβεβαίωσε το χρόνο μάθησης ΜSK4 Πόσο καιρό θα χρειαστεί να ανακαλύψετε τι πραγματικά λύνει το πρόβλημα ΜΚ5 Κανείς δεν γνωρίζει ΜΣΚ6 διότι έχετε ενημερωθεί' Ανακαλύφθηκε ακόμα .

Το καλύτερο που μπορείτε να κάνετε: ίσως είναι σαφές σχετικά με το τι "δoneΜSK2 σημαίνειM SK3 χρόνοςMK4box αβεβαιότηταMST5 και ενημερώστε το spec καθώς μαθαίνετεΜΣΚ6 Θεραπεύστε το όπως κώδικαΜσΚ7 έκδοση αυτόΜσκ8 αναπαραγωγός αυτό ΜΣΚ9 βελτιώνει αυτό

Ένα καλό spec εξουσιοδοτεί τους προγραμματιστές να λύσουν τα προβλήματα με έξυπνο τρόπο, γνωρίζοντας ακριβώς πότε μπορούν να σταματήσουν. ΑυτόΜSK1 ένα ξεκίνημα συνομιλίας ΜSK2 όχι ένα ραβδί .

Και αν σας αρέσει το ' αναγνωρίζει έναν προγραμματιστή να διαβάζει ένα spec που δεν έχει κανένα νόημα ή δεν έχει καμία σαφή " αναγνώρισε τα κριτήρια του " αναγνώριση των κριτηρίων της : αναγνώρισαν την . Αναγνώρισα ότι η ' αναγνώρίζεται ότι δεν είναι δύσκολο Η ; αναγνώρίστηκε ότι ο ' αναγνωρίζεται ότι είναι επαγγελματίας Το . αναγνωρίζονται πως Είναι καλύτερο να ταξινομήσετε τώρα από ό, τι να δημιουργήσετε μια χαρακτηριστική που συνεχίζει να αναπτύσσεται μέχρι να διαρκέσει ολόκληρη την εφαρμογή.

logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.