Lavoro per una grande organizzazione umanitaria, su un software per la costruzione di progetti che potrebbe aiutare a salvare vite umane in situazioni di emergenza accelerando la distribuzione del cibo. Molte ONG hanno disperatamente bisogno del nostro software e siamo in ritardo di settimane.
Una cosa che mi preoccupa in questo progetto è quello che penso sia un'eccessiva attenzione agli standard di codifica. Scriviamo in python / django e usiamo una versione di PEP0008, con varie modifiche, ad es. le lunghezze delle righe possono arrivare fino a 160 caratteri e tutte le linee dovrebbero andare tanto lunghe se possibile, nessuna riga vuota tra le importazioni, regole di ritorno a capo che si applicano solo a determinati tipi di classi, molti modelli che dobbiamo usare, anche se non lo sono il modo migliore per risolvere un problema ecc. ecc.
Un core dev ha trascorso una settimana a riscrivere una parte importante del sistema per soddisfare i nuovi standard di codifica, eliminando diverse serie di test nel processo, poiché la riscrittura significava che erano "non validi". Abbiamo trascorso due settimane a riscrivere tutte le funzionalità perse e a correggere i bug. È lo sviluppatore principale e la sua parola ha peso, quindi ha convinto il project manager che questi standard sono necessari. Gli sviluppatori junior fanno come gli viene detto. Sento che il project manager ha un strong sentimento di dissonanza cognitiva su tutto questo, ma ciononostante è d'accordo con esso con veemenza mentre si sente insicuro su che altro fare.
Oggi mi sono messo nei guai seri perché avevo dimenticato di inserire degli spazi dopo le virgole in un argomento di parole chiave. Sono stato letteralmente urlato da altri due sviluppatori e dal project manager durante una chiamata su Skype. Personalmente penso che gli standard di codifica siano importanti, ma penso anche che stiamo sprecando molto tempo ossessionandoli con loro, e quando l'ho verbalizzato ha provocato rabbia. Sono visto come un piantagrane nella squadra, una squadra che cerca capri espiatori per i suoi fallimenti. Dall'introduzione degli standard di codifica, la produttività del team è notevolmente diminuita, tuttavia questo rinforza solo l'ossessione, cioè lo sviluppatore principale blocca semplicemente la nostra mancata aderenza agli standard per la mancanza di progressi. Crede che non possiamo leggere il codice degli altri se non rispettiamo le convenzioni.
Questo sta iniziando a diventare appiccicoso. Ora sto cercando di modificare vari script, autopep8, pep8ify e PythonTidy per cercare di far corrispondere le convenzioni. Gestiamo anche pep8 contro il codice sorgente, ma ci sono così tante modifiche implicite al nostro standard che è difficile tenerne traccia. Il lead dev semplifica i difetti che lo script pep8 non raccoglie e ci urla nel prossimo stand-up meeting. Ogni settimana ci sono nuove aggiunte agli standard di codifica che ci costringono a riscrivere il codice esistente, funzionante e testato. Grazie al cielo abbiamo ancora dei test, (ho ripristinato alcuni commit e ho sistemato un gruppo di quelli che ha rimosso).
Nel frattempo aumenta la pressione per rispettare la scadenza.
Credo che una questione fondamentale sia che lo sviluppatore principale e un altro core deviano di non fidarsi degli altri sviluppatori per svolgere il proprio lavoro. Ma come affrontarlo? Non possiamo fare il nostro lavoro perché siamo troppo occupati a riscrivere tutto.
Non ho mai incontrato questa dinamica in un team di ingegneri del software. Ho sbagliato a mettere in discussione la loro adesione agli standard di codifica? Qualcun altro ha vissuto una situazione simile e come hanno affrontato con successo? (Non sto cercando una discussione solo le soluzioni reali che le persone hanno trovato)