Dal 2019 ho adottato la metodologia Agile per sviluppare software con la piattaforma Claris FileMaker. Perché è importante identificare un metodo nello sviluppo di software? Potrebbe sembrare sufficiente puntare ad un software che funzioni al costo concordato. In realtà è proprio questo il punto. Non è scontato arrivare al risultato se non c’è un metodo chiaro, anche se le intenzioni iniziali sono ottime e gli accordi limpidi.
In questa pagina presento brevemente la metodologia Agile che utilizzo per lo sviluppo FileMaker. Ecco gli argomenti dell’articolo:
- Mettersi d’accordo sulle parole;
- Difendere il cliente;
- Creare dei flussi di lavoro gestibili;
- Sviluppo software come attività artigianale;
- La metodologia Agile e FileMaker.
Metodologia Agile: mettersi d’accordo sulle parole
Il Manifesto Agile nacque negli Stati Uniti da gruppi di sviluppatori che sperimentarono gli scarsi, se non pessimi, risultati ottenuti con la tecnica waterfall. Tutto ciò naturalmente creava molta frustrazione ai clienti ma anche agli sviluppatori. Non entro nel merito della tecnica waterfall se non per ricordare che è meno efficace della metodologia Agile. Puoi approfondire questo punto nell’articolo “Perché certi progetti software falliscono?”.
Forse il primo punto da tenere a mente nella relazione tra clienti e sviluppatori è mettersi d’accordo sulle parole. Se un software gestisce – ad esempio – elenchi di clienti, occorrerà definire per bene all’inizio cosa siano i “clienti”: solo le società che hanno già acquistato prodotti e servizi in passato oppure anche quelle che potrebbero acquistare in futuro? Analogamente, con la parola fornitori si intenderanno solo i fornitori correnti o anche quelli passati? E così via. Ogni incertezza nella definizione di un concetto creerà a cascata incomprensioni nell’analisi e nello sviluppo di quella precisa componente del software. Con evidenti sprechi di tempo e denaro.
Difendere il cliente
Difendere il cliente significa chiarire fin dall’inizio cosa è possibile fare e cosa non è possibile. Nei progetti software c’è un principio fondamentale che è quello della iron cross (croce di ferro). Simboleggia le quattro caratteristiche di un software: buono, veloce, economico, finito. Non è possibile averle tutte e quattro contemporaneamente.
Se il cliente vuole un software finito, economico e in poco tempo esso non potrà essere buono: avrà degli inevitabili difetti. Se lo si vuole buono, finito e velocemente, costerà parecchio, e così via.
La metodologia Agile aiuta a identificare il giusto compromesso, in accordo con il cliente, per arrivare ad un risultato, sapendo però che non si può avere tutto, subito e pagandolo poco.
Come si arriva al giusto compromesso? Avviando, con la metodologia Agile, una sequenza di flussi di lavoro gestibili e da concludere in breve tempo.
Creare dei flussi di lavoro gestibili con la metodologia Agile
Un software può essere creato su commissione, cioè appositamente per il cliente secondo specifiche personalizzate, ad esempio se non si trova sul mercato qualcosa di già pronto. Oppure può essere concesso in licenza d’uso: in questo secondo caso, il software risponde a esigenze generali di clienti diversi, che trovano più conveniente acquistare un software pronto e funzionante e richiedere eventualmente delle personalizzazioni, ovvero delle modifiche. È il caso di un software come Bizmaker® CRM.
In entrambi i casi (software su commissione o su licenza, con o senza personalizzazioni) analizzo insieme al cliente le funzioni richieste, ovvero i compiti che il software dovrà svolgere. Insieme al cliente definiamo le priorità, ovvero le funzioni che vanno sviluppate per prime. Prima di procedere allo sviluppo di una funzione concordiamo anche i test che dovranno essere superati per validare quella funzione.
Ecco le fasi di un ciclo di rilascio di una funzione software:
- procedo allo sviluppo della funzione concordata;
- la rilascio al cliente;
- il cliente effettua i test concordati;
- infine la funzione viene rilasciata e messa in produzione.
Questo ciclo dura idealmente pochi giorni, al massimo due settimane. Si passa così alla funzione successiva. In qualsiasi momento il cliente decidesse di interrompere o modificare le specifiche, avrà comunque un software funzionante con le funzioni rilasciate fino a quel momento.
Lo sviluppo software è un’attività artigianale
Lo sviluppo software c’entra molto con il linguaggio che è lo strumento con cui il cliente esprime le proprie esigenze e le comunica allo sviluppatore. Ci sono diversi linguaggi:
- il linguaggio naturale, con cui descriviamo la realtà quotidiana;
- il linguaggio tecnico di un particolare settore economico;
- il linguaggio tecnico dell’analisi e sviluppo software;
- infine, anche FileMaker ha un proprio linguaggio specifico.
Lo sviluppatore è consapevole di tutti questi linguaggi. Lo sviluppatore è un artigiano del software e interpreta – per il cliente – i diversi linguaggi per descriverlo.
Di sicuro lo sviluppatore non è un mago: non potrà infatti leggere nel pensiero del cliente o rilasciare funzioni su specifiche che non ha ricevuto. Tanto per fare un esempio, usando la metodologia Agile, non si potrà dire “lo davo per scontato”.
La metodologia Agile punta quindi ad esplicitare tutto l’implicito ma senza la necessità di definire ogni dettaglio subito. In questo senso può sembrare, anzi lo è, un procedimento più lento. Ma è un procedimento più sicuro perché non è possibile rilasciare una funzione se prima non è stata validata quella precedente.
Conclusione: la metodologia Agile consente di affrontare e gestire la complessità, suddividendola in piccoli flussi di lavoro gestibili, descritti con parole dal significato chiaro e concordato tra cliente e sviluppatore.
La metodologia Agile e FileMaker
La piattaforma Claris FileMaker è la tecnologia ideale, secondo la mia ventennale esperienza di sviluppatore, per poter avviare progetti software seguendo la metodologia Agile: pensiamo alla possibilità di realizzare delle applicazioni partendo dai modelli pronti, da applicazioni presentate nel Marketplace e di condividerle poi tramite FileMaker Server o FileMaker Cloud.
Se vuoi approfondire le opportunità della metodologia Agile per la tua organizzazione contattami.
Foto: Steven Pisano.