Probabilmente vorrai ottenere un server di sviluppo, e preferibilmente anche un ambiente di staging. Nessuno dovrebbe mai spingere dal locale alla produzione se non per il proprio sito web personale. Il tuo processo di implementazione dovrebbe supportare solo i prodotti di staging- > dev. Probabilmente vorresti che qualcuno fosse responsabile della firma delle nuove versioni - a seconda dell'organizzazione, questo può essere un lead di progetto, un QA dedicato o un dovere che ruota ogni settimana (con un promemoria tangibile ad esempio solo la persona con il peluche che la settimana arriva a Spingere). Tuttavia, discuti prima con la tua squadra per ottenere il buy-in (vedi sotto).
I want this behavior to be punished in some way or make it unpleasant as much as possible.
Potresti avere la tua suite di test (ne hai una, giusto?) includere un controllo che determina se sei su un server di produzione e, se lo fa, invia a tutti in ufficio un'email dicendo Looks like $username is testing on prod, watch out
. Forse svergognare pubblicamente il tuo collega sarebbe spiacevole. Oppure potresti creare restrizioni tecniche come il divieto dell'IP da parte della tua squadra di guardare i prod (che puoi sollevare ma devi giustificare).
Non lo consiglio, tuttavia, sembrerebbe il problema, non la persona che sta provando su prod e potresti renderti molto impopolare con le persone della squadra a cui non interessa.
Sicuramente quello che vuoi veramente non è che questo comportamento sia punito, ma per farlo fermare ?
I forced them/us to use [...]
È bello che tu stia sostenendo i miglioramenti del flusso di lavoro, ma sembra che tu non pensi molto ai tuoi colleghi e / o che non hai il loro pieno supporto. Ciò dovrebbe comportare che i colleghi interagiscano semestralmente con il flusso di lavoro, facendo il minimo necessario per ottenere il codice sulla produzione e non seguendo realmente lo spirito del flusso di lavoro, il che significa più tempo dedicato alla pulizia. E quando passi sempre più tempo a chiarire i risultati di un'interazione inadeguata con il flusso di lavoro (perché a nessun altro importa, giusto?) Tutti gli altri metteranno in discussione il flusso di lavoro stesso.
Quindi inizia con una conversazione.
Scopri perché sta accadendo (la macchina del tuo collega non è buona per i test? Il tuo collega è incerto con le feature branch o è bloccato in una mentalità svn in cui commit e push sono uguali?), spiega perché è un problema per te che il codice non testato va su dev / staging / prod, e vedi se puoi fare qualcosa per cambiare perché succede (il tuo collega farà più probabilmente quello che vuoi se lo hai appena reso più bello da testare localmente che se ti sei appena rimproverato loro).
Se non riesci a risolverlo e si tratta davvero di una divergenza di opinioni, pianifica una discussione a livello di gruppo nella tua prossima riunione retrospettiva, guarda cosa fanno e pensano i tuoi colleghi. Fai il tuo caso, ma ascolta il consenso. Forse il tuo team dice che è giusto non testare le correzioni testuali a livello locale, e hai solo una regola che nessuna funzione di grandi dimensioni va a testare non testata. Annota nella riunione e leggi ciò che decidi collettivamente su ciò che è permesso su ciascuno degli ambienti. Imposta una data in un paio di mesi per esaminarla, magari in una retrospettiva.