Ci sono due questioni importanti nella domanda, la parte delicatamente e la scadenza che si avvicina . Queste sono questioni distinte: la prima è una questione di comunicazione e dinamiche di gruppo, la seconda è una questione di pianificazione e definizione delle priorità.
Tatticamente . Presumo che tu voglia evitare ego spazzolato e respingere negativamente le recensioni. Alcuni suggerimenti:
- Avere una comprensione condivisa su standard di codifica e principi di progettazione.
- Non criticare o rivedere mai lo sviluppatore , solo il codice . Evita la parola "tu" o "il tuo codice", parla solo del codice in esame, staccato da qualsiasi sviluppatore.
- Metti il tuo orgoglio nella qualità del codice completo , in modo tale che i commenti di revisione che aiutano a migliorare il risultato finale siano apprezzati.
- Suggerisci miglioramenti piuttosto che domanda. Avere sempre un dialogo se non sei d'accordo. Cerca di capire l'altro punto di vista quando non sei d'accordo.
- Le recensioni vanno in entrambi i modi. Vale a dire che la persona che hai esaminato riveda il tuo codice successivamente. Non hai recensioni "a senso unico".
La seconda parte è la definizione delle priorità . Hai molti suggerimenti per miglioramenti, ma poiché la scadenza si avvicina, c'è solo il tempo per applicarne alcuni.
Bene, prima vuoi evitare che ciò accada in primo luogo! Puoi farlo eseguendo revisioni continue e incrementali. Non lasciare che uno sviluppatore lavori per settimane su una funzione e quindi rivedi tutto all'ultimo momento. In secondo luogo, le revisioni del codice e il tempo di attuazione dei suggerimenti di revisione dovrebbero far parte della pianificazione e delle stime regolari per qualsiasi attività. Se non c'è abbastanza tempo per rivedere correttamente, qualcosa è andato storto nella pianificazione.
Ma supponiamo che qualcosa sia andato storto nel processo e ora ti trovi di fronte a una serie di commenti di revisione e non hai il tempo di implementarli tutti. Devi dare la priorità. Quindi vai per le modifiche che saranno più difficili e più rischiose da cambiare in seguito se lo rimandi.
La denominazione degli identificativi nel codice sorgente è incredibilmente importante per la leggibilità e la manutenibilità, ma è anche abbastanza facile e a basso rischio cambiare in futuro. Lo stesso vale per la formattazione del codice. Quindi non concentrarti su quella roba. D'altra parte, la sanità mentale delle interfacce esposte pubblicamente dovrebbe avere la massima priorità, dal momento che sono davvero difficili da cambiare in futuro. È difficile modificare i dati persistenti: se si inizia a memorizzare dati incoerenti o incompleti in un database, in futuro è davvero difficile da correggere.
Le aree coperte da unit test sono a basso rischio. Puoi sempre risolverli in seguito. Le aree che non lo sono, ma che potrebbero essere testate in unità hanno un rischio inferiore rispetto alle aree che non possono essere testate in unità.
Supponi di avere un grosso pezzo di codice senza test unitari e tutti i tipi di problemi di qualità del codice, inclusa una dipendenza hardcoded da un servizio esterno. Iniettando invece questa dipendenza, si rende testabile il blocco di codice. Ciò significa che in futuro è possibile aggiungere test e quindi lavorare per risolvere il resto dei problemi. Con la dipendenza hardcoded non è nemmeno possibile aggiungere test. Quindi scegli prima questa correzione.
Ma per favore cerca di evitare di finire in questo scenario in primo luogo!