are there any inherent problems or considerations with raising a ticket off of the back of a review, instead of failing it?
Non intrinsecamente. Ad esempio, l'implementazione del cambiamento attuale potrebbe aver riportato alla luce un problema che era già presente, ma non era noto / apparente fino ad ora. Fallire il ticket sarebbe ingiusto, in quanto si fallirebbe per qualcosa non correlato all'attività effettivamente descritta.
in the review we discover a function
Tuttavia, suppongo che la funzione qui sia qualcosa che è stata aggiunta dal cambiamento corrente. In questo caso, il ticket dovrebbe essere fallito in quanto il codice non ha superato il test dell'odore.
Dove disegneresti la linea, se non dove l'hai già disegnata? Chiaramente non pensi che questo codice sia sufficientemente pulito per rimanere nella base di codice nella sua forma attuale; quindi perché dovresti quindi considerare di dare un biglietto al pass?
Fail the code review, so that the ticket doesn't close in this sprint, and we take a little hit on morale, because we cannot pass off the ticket.
Mi sembra che tu stia discutendo indirettamente che stai cercando di dare a questo ticket un pass per beneficiare del morale della squadra, piuttosto che beneficiare della qualità della base di codice.
Se questo è il caso, allora hai le tue priorità mescolate. Lo standard del codice pulito non dovrebbe essere modificato semplicemente perché rende la squadra più felice. La correttezza e la pulizia del codice non dipendono dall'umore della squadra.
The refactor is a small piece of work, and would get done in the next sprint (or even before it starts) as a tiny, half point story.
Se l'implementazione del biglietto originale ha causato l'odore del codice, allora dovrebbe essere indirizzato nel biglietto originale. Dovresti creare un nuovo ticket solo se l'odore del codice non può essere attribuito direttamente al biglietto originale (ad esempio, uno scenario "la goccia che fa traboccare il vaso").
The resources I can find and have read detail code reviews as 100% or nothing, usually, but I find that is usually not realistic.
Pass / fail è intrinsecamente uno stato binario , che è inerentemente tutto o niente.
Ciò a cui ti riferisci qui, penso, è più che interpreti le revisioni del codice in quanto richiedono un codice perfetto o altrimenti non lo è, e non è questo il caso.
Il codice non dovrebbe essere immacolato, dovrebbe semplicemente rispettare lo standard ragionevole di pulizia che il tuo team / azienda impiega. L'aderenza a questo standard è una scelta binaria: aderisce (passa) o non lo fa (fallire).
In base alla tua descrizione del problema, è chiaro che non pensi che ciò rispetti lo standard previsto del codice, e quindi non dovrebbe essere approvato per ulteriori motivi come il morale della squadra.
Otherwise the task fits the definition of done.
Se "ha fatto il lavoro" erano il miglior punto di riferimento per la qualità del codice, allora non avremmo dovuto inventare il principio del codice pulito e delle buone pratiche per cominciare - il compilatore e il collaudo delle unità sarebbero già stati i nostri automatizzati processo di revisione e non avresti bisogno di recensioni di codice o argomenti di stile.