Sì, ma con molta cura!
Vorrei chiarirlo.
Dovresti cercare di migliorare l'abitabilità del software. Se guardi il codice / team / business / progetto / gestione e la tua prima risposta è fare la doccia, allora non è abitabile. Se la tua prima risposta è gridare sì! ... e poi lamentarti quando sei stato tolto dall'ufficio, allora devi rendere la tua casa più abitabile. È una sensazione, e lo saprai.
Detto questo, stai lavorando in una complicata sinergia . Qualunque cosa tu faccia, probabilmente andrà storto e probabilmente peggiorerà le cose almeno a breve termine, perché un semplice cambiamento ha delle increspature. Quindi prima di tutto diventa umile, non intendo diventare una spinta o accettare che le cose debbano andare male, intendo venire a patti con il fatto che le tue buone intenzioni ti accenderanno brutalmente.
Il problema
Con le migliori intenzioni potresti pensare che debba avvenire un cambiamento radicale e non sono in disaccordo sul fatto che queste situazioni esistano, ma prenditi un momento per pensarci. Il sistema attuale funziona, tu e il tuo team producete codice, forse è lento, forse è doloroso, ma funziona e tutti voi avete esperienza su come farlo. Sai più o meno cosa aspettarti, insomma sei un professionista praticato in questo sistema.
Dopo il cambiamento radicale, però nessuno, tranne forse l'implementatore, sa cosa aspettarsi. In breve, ognuno è stato riportato a un livello di neofita in questa parte del sistema. Questo non è buono. I neofiti devono imparare le nuove regole che richiedono tempo. A quel tempo i neofiti stanno commettendo errori perché non sono praticati. Questi errori diventano parte del sistema, con cui ora devi convivere e non è neanche così vicino.
Una via da seguire
Ci sono momenti in cui tagliare, bruciare e ricostruire è di gran lunga il meglio che puoi fare. È particolarmente attraente se nessuno è praticato nel vecchio sistema, perché l'unica cosa che si perde è la conoscenza codificata. Se questa conoscenza è completamente incomprensibile, allora è già persa e ricominciare è l'unica scelta. Al contrario, se il metodo di codificazione o il modo in cui è stato usato è problematico ma funzionante, tale conoscenza è ancora accessibile e forse vale la pena conservarla, forse non lo è - Basta non prendere la decisione alla leggera.
L'altra scelta è quella di lavorare con il sistema in modo che tutti abbiano un quadro di riferimento, ma cambiare piccole parti del sistema in modo che tutti i membri del team siano a conoscenza, o se non sono a conoscenza del cambiamento, è facile notare e facile da imparare. Questa è la base per le pratiche chiamate Kaizen . Una presentazione più orientata agli sviluppatori è presentata nella presentazione Shaving the Golden Yak, consiglio vivamente di guardarlo e di pensarci su.
Quindi trova una piccola cosa che può essere cambiata che migliorerà la tua vita e, si spera, quella di pochi altri. Risolvi o migliora la situazione. Questo ti darà pratica ed esperienza su come mettere in pratica i cambiamenti. Assicurati di ricevere un feedback: avresti potuto discuterne meglio, se fosse stato effettivamente utile, ha sconvolto un'altra parte del sistema? Sviluppa la tua sensibilità per ciò che può essere fatto e come farlo.
Ora sono successe tre cose:
- hai migliorato il sistema,
- hai acquisito esperienza su come cambiare il sistema
- il team ti ha visto cambiare con successo il sistema.
Ora scegli un'altra cosa da migliorare, man mano che la tua esperienza cresce e mentre elimini i problemi di sospensione, inizierai a confrontarti con i problemi più difficili nel sistema, ma almeno ora quando dici che dobbiamo cambiare X:
- Sai come la modifica influirà sul sistema
- Sai quali problemi genererà (quali regole devono essere riapprese)
- Conosci alcuni modi immediati per risolvere o migliorare i problemi che la modifica introdurrà
- le persone intorno a te sono consapevoli di essere a conoscenza del sistema e in grado di cambiarlo con successo