Duplicitní požadavky: sloučení bez ztráty hlasu
5 min čtení
Tři zákaznice žádají o stejnou schopnost ve třech různých týdnech, formulovanou třemi různými způsoby, a proces triáže postavený k zachycení duplicit dělá svou práci: seskupí je, počítá je jako jeden požadavek se třemi hlasy, a backlog zůstane čistý. To je snadná část. Které štítky stojí za to pokrývá seskupování podle základní schopnosti dřív, než se třídí podle formulace, jako mechanickou opravu pro duplicity; co nepokrývá, je co se stane se slovy samotnými, jakmile se tři požadavky stanou jedním řádkem, a ta ztráta je obvykle větší než problém počítání duplicit, který vyřešila.
Co se skutečně ztratí, když jsou duplicity sloučeny?
Konkrétní formulace, kterou použila každá žadatelka, což je často informativnější než počet hlasů, do kterého se scvrkne. Jedna zákaznice může žádat o “způsob, jak exportovat filtrované výsledky”, jiná o “export CSV, který respektuje mé uložené filtry”, a třetí o “export bez skrytých sloupců”. Všechny tři jsou stejný základní požadavek, správně seskupený, ale každá formulace nese mírně odlišný důraz na to, co je pro tu osobu důležité, a sloučení, které zachová jen formulaci prvního podání, úplně zahodí ty další dvě. Počet přežije; textura, která by pomohla někomu postavit správnou verzi funkce, ne.
Proč záleží na textuře, když počet hlasů už říká, že poptávka existuje?
Protože poptávka a design jsou různé otázky, a jen konkrétní formulace odpovídá na tu druhou. Deset hlasů na “export” řekne týmu, že se vyplatí funkci postavit; neřekne nic o tom, jestli “export” znamená CSV, PDF, naplánovaný email nebo endpoint API, a sloučení, které zahodí devět z deseti původních podání ve prospěch formulace toho prvního, může tiše zúžit specifikaci na cokoli, o co náhodou žádala první žadatelka, i když ostatních devět chtělo něco jemně odlišného. Co by měl požadavek na funkci vlastně zaznamenávat pokrývá přesně tuhle mezeru ze strany příjmu; slučování duplicit je místo, kde se znovu vynoří po příjmu, přesně v bodě, kde tým nejvíc potřebuje rozsah toho, o co se skutečně žádalo.
Jak vypadá proces slučování, který zachová formulaci místo jejího zahození?
Přidávání místo nahrazování. Kanonická položka zachová jeden titulek pro pohled na backlog, ale původní formulace každého sloučeného podání zůstane k ní připojená, buď jako seznam citací, nebo jako propojené zdrojové tikety, takže kdokoli položku později reviduje, může vidět skutečný rozsah toho, o co lidé žádali, místo shrnutí od jednoho člena týmu. Tohle stojí skoro nic postavit, pole na tiketu místo nového systému, a je to rozdíl mezi sloučením, které komprimuje informaci, a takovým, které komprimuje jen její zobrazení.
Funkce: Filtrovaný export CSV
Hlasy: 12
Sloučené požadavky:
- "způsob, jak exportovat filtrované výsledky" (acct_4421)
- "export CSV, který respektuje mé uložené filtry" (acct_8832)
- "export bez skrytých sloupců" (acct_1097)
...
Zaslouží si každá duplicita sloučení, nebo existují falešné shody?
Některé jsou falešné shody, a zacházet s “zní podobně” jako s “je to stejný požadavek” je vlastní způsob selhání. “Nechte mě exportovat má data” a “nechte mě exportovat jen filtrovaný pohled” mohou být seskupeny shodou klíčového slova na “export”, i když ve skutečnosti popisují dva různé rozsahy téže obecné schopnosti; jejich sloučení buď nafoukne počet hlasů pro špatnou věc, nebo, hůř, doručí užší verzi, protože náhodou dorazila první. Lidský průchod seskupováním, i rychlý, tohle zachytí dřív, než se to nahromadí; samotná automatická shoda podobnosti bude přeslučovat podle slovní zásoby a nedostatečně slučovat podle záměru.
Kdy má kontrola duplicit skutečně proběhnout, při podání, nebo později?
Obojí, z různých důvodů. Kontrola při podání zachytí zjevný případ, nový požadavek, který opakuje něco už otevřeného, dřív, než se stane vlastní nesledovanou položkou; vyhledání podobnosti proti otevřeným požadavkům v momentě odeslání zvládne většinu z nich bez jakéhokoli člověka. Druhý průchod později, v pomalejším rytmu, zachytí to, co kontrola při podání minula: dva požadavky, které v tu chvíli použily dost odlišnou formulaci, aby proklouzly kolem shody klíčového slova nebo embeddingu, ale které se ukážou, jakmile tým viděl tucet variant, popisovat stejnou podkladovou schopnost. Vynechání druhého průchodu nechává skoro-duplicity rozptýlené pod oddělenými názvy donekonečna, každou s vlastním malým počtem hlasů, který se nikdy nesečte na číslo, jež by ji dostalo do vývoje.
Měla by žadatelka vědět, že její podání bylo sloučeno do existující položky?
Ano, a to je stejná disciplína jako uzavření smyčky zpětné vazby od zákazníka aplikovaná o krok dřív než obvykle: žadatelka, která něco podala a už nikdy nic neuslyší, dojde k závěru, že její požadavek nikam nevedl, i když byl správně sloučen do položky s dalšími jedenácti hlasy, která nakonec vyšla. Krátké potvrzení, “spojili jsme tohle s existujícím požadavkem, který udělali i jiní”, stojí jednu zprávu a zabrání zákaznici znovu podat stejný požadavek každých pár měsíců, protože nemá žádný přehled o tom, jestli byl vůbec skutečně sledovaný.
Mění slučování, komu se přičte zásluha, když funkce vyjde?
Mělo by zahrnout všechny, ne jen toho, kdo podal první. Uzavření smyčky zpětné
vazby pokrývá informování žadatelek, když jejich přání vyjde;
pro sloučenou položku to znamená každý účet připojený ke sloučení, ne jen ten, jehož formulace se
stala kanonickým titulkem, protože z pohledu každé žadatelky ona o tohle žádala a to vyšlo, bez
ohledu na to, čí formulaci proces triáže náhodou zachoval. V Changeloop to znamená, že pull request
uvádí každé propojené issue (Fixes #142, fixes #187); issue, které neuvádí, nedostane žádný
komentář.
FAQ
Kolik formulace se vyplatí zachovat na sloučený požadavek, citaci nebo úplný odkaz na tiket? Krátká citace obvykle stačí pro běžný případ, protože jejím účelem je nechat recenzentku vidět rozsah formulací na první pohled; zachovejte i úplný odkaz na tiket, když originál měl významný další kontext, jako snímek obrazovky nebo podrobný popis workflow, který by jednořádková citace zploštila.
Dělá zachování formulace každé duplicity backlog těžší proskenovat? Ne, pokud je ve výchozím stavu sbalená. Kanonický titulek je to, co vidí recenzentka rychle skenující; sloučená formulace je jedno kliknutí nebo jedno rozbalení daleko, přítomná pro toho, kdo dělá hlubší výzkum, ale bez zahlcování pohledu pro toho, kdo jen počítá hlasy.
Co když dva požadavky vypadají identicky, ale ukáže se, že chtějí po postavení různé věci? Rozdělte je znovu, jakmile se to stane jasným, a zacházejte s původním sloučením jako s rozumným rozhodnutím uděláným s tehdy dostupnou informací, ne jako s chybou, jejíž opakování je třeba se vyhnout. Systém seskupování, který nikdy nic nerozpojí, nakonec bude mít pár špatných sloučení napevno zapečených.
Existuje práh hlasů, po kterém by sloučený požadavek měl dostat lidskou revizi základní formulace? Ne pevné číslo, ale jakýkoli požadavek blížící se rozhodnutí o stavbě si to zaslouží bez ohledu na počet hlasů, protože to je bod, kde rozdíl mezi “export” a “export jako CSV s uloženými filtry” přestává být nuancí a začíná být specifikací.
Technická tvrzení v tomto článku nikdo nezávisle neověřil. Pokud tu něco nesedí, dej nám vědět a opravíme to.