Nella comunità del software locale e nazionale, Sistema operativo di archiviazione e Syneto hanno una reputazione di eccellenza nell'applicazione delle tecniche agili. In occasione di vari eventi della comunità, parlo spesso di come sviluppiamo il software, di come pianifichiamo le funzionalità e di come collaboriamo in generale per fornire il miglior prodotto possibile. Tuttavia, c'è una cosa che i partecipanti continuano a dirmi e che mi sorprende ogni volta.
È facile fare agilità quando si inizia un progetto da zero e si sa cosa fare.
Trovo questa osservazione, o conclusione se volete, sbagliata per due motivi.
Prima di tutto, non siamo dei prodigi. Non abbiamo letto un libro in mezz'ora e siamo diventati miracolosamente esperti di pratiche agili, dal TDD al Pair Programming, da Scrum a Lean e Kanban. Abbiamo iniziato a passare da una gestione classica del software a cascata ad una gestione agile circa 5-6 anni fa. Non è successo in una settimana o in un mese. È successo, lentamente, nel corso degli anni. Quando abbiamo iniziato, non c'era Sistema operativo di archiviazioneStavamo lavorando al progetto UTM di Syneto. Abbiamo imparato a essere agili soprattutto su quel progetto legacy. E mentre quando abbiamo iniziato avevamo già le basi Sistema operativo di archiviazioneAbbiamo dovuto imparare molto lungo il percorso.
Il secondo errore nell'affermazione precedente riguarda la facilità di fare qualcosa di nuovo e nel modo giusto fin dall'inizio. Innanzitutto, non esiste un modo universalmente giusto o sbagliato di fare software. Se fate del vostro meglio per scrivere il codice più performante, bello, funzionale e facile da capire sulla base delle vostre conoscenze attuali, allora quello è il modo giusto di farlo. Tra sei mesi o un anno scoprirete che il vostro modo di pensare è cambiato radicalmente, che ci sono modi migliori per fare le cose e che il vostro nuovo modo giusto di farle è molto diverso... nessun problema, rifattorizzate. Applicate ciò che sapete al vecchio codice che già conoscete. Applicare il TDD per rifattorizzare un modulo di cui si conosce già la funzionalità. Utilizzate la programmazione a coppie per estendere un'estensione legacy della vostra applicazione. Pianificate la prossima funzionalità su una lavagna Kanban. È sempre più facile modificare qualcosa che si conosce applicando una nuova tecnica. È molto più difficile cercare di capire una nuova tecnica (o più tecniche) e allo stesso tempo cercare di capire che cosa il business vuole che faccia la vostra applicazione e come potete implementarla. Fate solo una cosa alla volta, non di più, quando potete.
Per saperne di più su come lavoriamo Sistema operativo di archiviazione leggendo l'intero Rapporto sull'esperienza di Syneto Agile pubblicato presso il Sito web dell'Alleanza Agile.