Questa domanda è stata ispirata da questa . Mentre quell'altra domanda è stata considerata localizzata, credo che il problema di fondo sia qualcosa di estremamente comune nel nostro settore. So che ci sono alcuni sviluppatori, che leggeranno questo e penseranno che sto inventando queste cose e quindi potrebbero rispondere a come tutti si preoccupano del loro lavoro e vogliono imparare, ma solo guardando altri post di Programmers SE ( caso al punto ), So che non è universalmente vero.
Quindi supponiamo di avere qualcuno nel tuo team (o forse la maggioranza) che ha la procedura operativa standard per copiare / incollare e che crede che tutto possa essere risolto se solo aggiungi abbastanza chiamate di funzione e variabili. Questa persona non ha mai sentito parlare di TDD, DRY o SOLID e al di fuori delle 40 ore di lavoro quando sono impegnate a lavorare, non hanno mai letto una sola metodologia / pratiche / libro di progettazione.
In passato io (e altri) ho chiesto come insegnare a OOD . Ma ora sto pensando che non è la domanda giusta. La vera domanda è come ti avvicini a una persona / squadra simile e rendili curiosi di sapere come fare meglio le cose? Come li ispiri ad imparare? Senza questo, sembra che tutti gli insegnamenti, le riunioni, le lezioni e le discussioni siano inutili se sono perfettamente felici di tornare alla propria scrivania e fare ciò che hanno sempre fatto.
Lavoro con un gruppo di persone così. In realtà sono individui piuttosto brillanti, ma odio quando sento "Ho finito di scrivere codice, ho solo bisogno di refactoring e dividere in più classi per rendere felice DXM". Non effettuano il refactoring per un codice più pulito, leggibile e gestibile, ma solo perché altrimenti verranno sgridati. So che sono in grado di apprendere, sembra che ci sia una generale mancanza di motivazione.
Quando fornisco lavoro, generalmente ha molti meno bug e il lavoro che possiedo non è mai diventato mostruosità di 5.000 righe di una classe. Altri farebbero commenti come "il tuo codice è molto più pulito e leggibile delle nostre cose", quindi vedono la differenza. Ma allo stesso tempo, credo che credano di essere pagati per 40 ore indipendentemente da ciò che fanno, quindi in realtà non si preoccupano se trascorrono 3 giorni interi in QA alla ricerca di un bug che non avrebbe dovuto essere introdotto in il primo posto. O che impiegano una settimana per modificare una classe perché ci sono così tante dipendenze che finiscono per toccare. Tuttavia, "forse quella classe avrebbe dovuto essere scritta diversamente" non sembra mai apparire.
Si può fare qualcosa in queste situazioni? Qualcuno è riuscito? O è meglio isolare tale mentalità da parti non critiche del progetto e ridurre al minimo il danno?
NOTA: quando dico "mancanza di motivazione". Non credo sia mancanza di motivazione a lavorare o fare un buon lavoro perché hanno semplicemente smesso di prendersi cura. Gran parte del nostro team è in realtà il contrario. Hanno sicuramente a cuore il prodotto. Abbiamo ragazzi che lavoreranno notti e fine settimana. La parte che sto cercando di superare è con abitudini e abilità migliorate, in realtà non dovrebbero lavorare tanto. Immagino che "40 ore" abbiano fatto sembrare questo post un po 'troppo negativo.