Definisci il cliente.
È un'altra società? Un altro individuo?
È un'altra squadra nella tua azienda?
È un campione di prodotto all'interno della tua azienda?
Sei tu?
Tutti i precedenti sono possibili e abbastanza ragionevoli a seconda delle circostanze. Non vuoi dare una sola visione del tunnel su cosa vuol dire essere Agile, per cui un NO definitivo non sarebbe corretto. SÌ d'altra parte richiede un piccolo pensiero laterale.
Pensa alla parola Agile per un momento. Il gruppo di persone molto intelligenti che hanno coniato il termine non avrebbe potuto scegliere una metafora migliore per il concetto che stavano cercando di descrivere. Quando dici Agilità , cosa ti viene in mente? Essere una flotta di piedi? Veloce per reagire forse? Veloce per adattarsi?
Ora pensa a tutte le pratiche Agile comunemente accettate e chiedi a te stesso cosa realmente portano ai metodi di sviluppo del software che sono considerati Agili .
Sono il cliente a tutti gli effetti per i miei progetti solisti. Indosso persino un vero cappello a volte, quando voglio davvero apportare un cambiamento mentale distintivo al mio ruolo di cliente . Questo non mi rende meno agile di quando sono al lavoro. Per quel che mi riguarda, il mio gatto può essere il manager . Si assicura che prenda una pausa ogni tanto, e mi ricorda di evitare di essere troppo ossessionato da un singolo compito. Forse preferisci usare la tua fantasia "Pomadoro Technique", ma preferisco il timer "Rascal" !! Il fatto è che io lavoro in un processo rigorosamente agile ogni volta che scrivo codice per me stesso. Non sono il tipo hacker-come-cowboy, che vive una vita di infiniti picchi di sviluppo e che non realizza nulla. Mi piace creare il mio software, pianificare lo sviluppo del mio lavoro e delle mie vite personali e completarlo in un modo che mi aspetterei di fare se lavorassi per un vero cliente. Quando le cose interrompono il mio programma, aggiusto e do la priorità al mio progetto di conseguenza. Uso tutte le pratiche e le tecniche Agile standard che posso applicare da solo e "consegno" codice di lavoro a me stesso (oa un amico o collega per testare) tutte le volte che posso. Se tutto questo non è agile, ti chiedo che cos'è?
Quindi la mia risposta è Sì , puoi essere uno sviluppatore di software Agile e puoi applicare una metodologia Agile e non hai necessariamente bisogno del cliente o del gestore. Puoi lavorare su un progetto tutto da solo e indossare cappelli multipli. Tuttavia, potrebbe non essere Ideale fare a meno di questi altri ruoli, poiché è molto utile collaborare con gli altri per raggiungere un obiettivo. Agiscono come una cassa di risonanza per le tue idee e ti danno i requisiti che altrimenti potresti trovare difficili da generare in modo sensato da soli. L'altro ruolo molto importante che il cliente e il manager soddisfano è quello di mantenerti concentrato sui tuoi obiettivi, senza aggiungere continuamente funzioni e perfezionare il tuo codice oltre a quello che potrebbe essere strettamente necessario.
Tuttavia, se lavori in modo disciplinato, attenendosi rigorosamente alla tua metodologia di scelta e applica pratiche Agili, e se quando ti trovi di fianco, o cambi idea (quando indossi il cappello del tuo cliente) e il tuo prodotto la progettazione o la direzione prende una svolta, se è possibile adattare il programma e regolare le priorità proprio come si immagina il cliente si aspetterebbe che tu lo faccia, allora sei agile.