Lavoro per una grande organizzazione umanitaria, su un progetto di software che potrebbe aiutare a salvare vite umane nelle emergenze accelerando la distribuzione di cibo. Molte ONG hanno un disperato bisogno del nostro software e siamo in ritardo di settimane.
Una cosa che mi preoccupa in questo progetto è ciò che penso sia un'eccessiva attenzione agli standard di codifica. Scriviamo in python / django e utilizziamo una versione di PEP0008, con varie modifiche, ad esempio la lunghezza delle righe può arrivare a 160 caratteri e tutte le righe dovrebbero andare così a lungo se possibile, senza righe vuote tra le importazioni, regole di avvolgimento delle righe che si applicano solo a determinati tipi di classi, molti modelli che dobbiamo usare, anche se non sono il modo migliore per risolvere un problema ecc. ecc.
Uno sviluppatore di base ha trascorso una settimana riscrivendo una parte importante del sistema per soddisfare gli allora nuovi standard di codifica, eliminando diverse suite 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 un peso, quindi ha convinto il project manager che questi standard sono necessari. Gli sviluppatori più giovani fanno come gli viene detto. Sento che il project manager ha un forte sentimento di dissonanza cognitiva su tutto ciò, ma è comunque d'accordo con esso con veemenza, poiché non è sicuro di cos'altro fare.
Oggi ho avuto seri problemi perché avevo dimenticato di mettere alcuni 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 perdendo molto tempo a ossessionarli, e quando ho verbalizzato questo ha provocato rabbia. Sono visto come un piantagrane nella squadra, una squadra che è alla ricerca di capri espiatori per i suoi fallimenti. Dall'introduzione degli standard di codifica, la produttività del team è crollata in modo misurabile, tuttavia ciò non fa che rafforzare l'ossessione, ovvero lo sviluppatore principale semplicemente incolpa la nostra non aderenza agli standard per la mancanza di progressi. Crede che non possiamo leggere il codice reciproco se non aderiamo alle convenzioni.
Questo sta iniziando a diventare appiccicoso. Ora sto cercando di modificare vari script, autopep8, pep8ify e PythonTidy per cercare di abbinare le convenzioni. Eseguiamo anche pep8 contro il codice sorgente ma ci sono così tante modifiche implicite al nostro standard che è difficile seguirle tutte. Lo sviluppatore principale sceglie semplicemente i difetti che lo script pep8 non rileva e ci grida alla prossima riunione stand-up. Ogni settimana ci sono nuove aggiunte agli standard di codifica che ci obbligano a riscrivere il codice esistente, funzionante e testato. Grazie al cielo abbiamo ancora dei test (ho ripristinato alcuni commit e risolto un sacco di quelli che ha rimosso).
Nel frattempo c'è una crescente pressione per rispettare la scadenza.
Credo che un problema fondamentale sia che lo sviluppatore principale e un altro sviluppatore principale si rifiutino di fidarsi degli altri sviluppatori per fare il loro lavoro. Ma come affrontarlo? Non possiamo fare il nostro lavoro perché siamo troppo impegnati a riscrivere tutto.
Non ho mai incontrato questa dinamica in un team di ingegneri del software. Ho sbagliato a mettere in discussione la loro aderenza agli standard di codifica? Qualcun altro ha vissuto una situazione simile e come l'ha affrontata con successo? (Non sto cercando una discussione, ma solo soluzioni reali che la gente ha trovato)