Domanda

Durante il tentativo di applicare i principi agili al nostro processo di sviluppo, in particolare i principi di mischia e XP-come le storie degli utenti, abbiamo affrontato un problema circa l'architettura.

Forse siamo ancora troppo legati allo sviluppo dell'architettura-centrica, ma stiamo cercando di mantenere un forte sviluppo basato su componenti, mescolato con i principi di modellazione agile. Il nostro obiettivo è di avere un piccolo disegno sulla parte anteriore, incline alle evoluzioni durante lo sviluppo.

Quello che sto cercando è qualcosa che potrebbe farmi metto nelle mie storie arretrato sulla mia architettura ei componenti all'interno di essa: storie di sviluppo, non solo storie di utilizzo. storia del sistema potrebbe essere un diverso tipo di storia dell'utente, che dice qualcosa che non è strettamente legato al valore di business, ma che è invece legata alla architettura e di qualità preoccupazioni di un sistema.

Modifica Ho trovato questo di ricerca dell'Università di Aalborg su " storie di sviluppo " .

Hai qualche esperienza, idea o opposizione?

Grazie in anticipo! (Questa è la mia prima domanda!: D)

È stato utile?

Soluzione

IMO un arretrato dovrebbe non includere storie sviluppatori. Non c'è modo che ogni proprietario del prodotto può sensibilmente priorità a questi insieme a funzionalità di business. E cosa succede se il Product Owner ritiene uno di loro importanza e così tira fuori l'arretrato? Se la squadra insiste quindi sul mantenimento della storia, ci si trova in una situazione in cui la proprietà del portafoglio ordini diventa poco chiara.

Comunque, io assolutamente convinta che la squadra ha bisogno di costruire l'architettura nelle prime fasi del progetto. Un problema sul mio progetto è che ci siamo concentrati troppo pesantemente sulla funzionalità nei primi sprint.

Pensiamo a "debito architettonico" (simile al debito tecnica) come il tempo che deve essere speso la costruzione di infrastrutture e architettura. A differenza di debito tecnico (che parte da zero e si accumula come la squadra produce funzionalità senza un'adeguata refactoring), una squadra avvia con il debito architettonico e deve lavorare per ridurlo. Il tempo trascorso riducendo debito architettonico significa che meno tempo è trascorso producendo funzionalità, cioè una velocità squadra inferiore e ridotto la produzione sprint. In questo modo il debito architettonico è simile a quello del debito tecnica. Se i requisiti sono emerse che non si adattavano l'attuale architettura, quindi il livello del debito architettonica aumenterebbe.

Tenete a mente, che la squadra deve decidere (ed essere in grado di giustificare il Product Owner) come stanno andando a trascorrere il loro tempo. E in modo che possano dividere i loro sforzi tra funzionalità, il debito e il debito tecnica architettonica come meglio credono.

lavoro Architettura dovrebbe essere ancora guidata dalla funzionalità però. In altre parole, la squadra dovrebbe costruire infrastrutture per sostenere e consentire una storia particolare utente. Non solo perché pensano che sarà utile in futuro. Il principio YAGNI vale per quel tipo di approccio.

Altri suggerimenti

La mia risposta qui applica.

C'è un molto impegnativo equilibrio tra il fare il lavoro di architettura e più caratteristica specifica di lavoro. Tecnicamente entrambi sono approcci e di lavoro valido, ma il più a lungo si ritardare una certa quantità di prodotto utilizzabile (risultati sprint) maggiore è il rischio che si corre che non si sta costruendo il prodotto giusto (esigenze degli utenti, requisiti di prestazioni, ect.). Già, come si può, arrivare a un punto in cui è possibile eseguire i test a livello di sistema per dimostrare la vostra prodotto funziona e si può dimostrare il valore e la direzione del prodotto con le parti interessate.

E 'semplice come mettere un Assicurarsi che il componente di iscrizione può essere testato scollegato da tutte le altre componenti story 'utente', il vostro portafoglio dovrebbe avere sistema / sviluppo-storie, purché è stato rimesso in sincronia con il desiderio del proprietario del prodotto di tale attuazione.

Questo è il modo in cui di solito mettere i requisiti non funzionali in un portafoglio ordini, come "Il modello di dominio deve essere eseguito su un datacenter diverso sotto il bilanciamento del carico", ecc.

Un obiettivo che trovo utile per prendere su storie degli sviluppatori è quello di pensare che "l'utente" per ogni storia è. Solo perché non sta scrivendo una caratteristica che sarà visto da persone al di fuori della vostra azienda, non significa che non ci sia un utente per quel pezzo di lavoro. Si può essere scrivendo codice per una squadra in fondo al corridoio. In alcuni casi, l'utente è te stesso. Questo è spesso il caso per le storie degli sviluppatori. Pensare "Come sviluppatore, ho un'architettura scalabile in modo che possa facilmente aggiungere nuove funzionalità." Chiamando il particolare utente, dà il proprietario del prodotto una certa comprensione in che vedranno il valore della storia. E sottolineando il "perché" è anche utile per trasmettere ciò che beneficiare la storia spera di raggiungere. Come altri hanno già detto, la gestione del portafoglio non scendere ad una negoziazione tra il proprietario del prodotto e la squadra. E come sempre, è necessario capire che cosa funziona meglio per la tua squadra, indipendentemente dal dogma processo. Ogni squadra ha una situazione diversa, e le idee che funzionano bene per una squadra non sempre si traduce in un altro.

Nel nostro team lo chiamiamo "IT-carte", che è le carte della forma: ".. Come sviluppatore ho wan't di refactoring il xyz componenti Per ridurre i costi di manutenzione e aumentare la flessibilità"

I membri del team sono liberi di scegliere qualsiasi IT-card che ritengono importante, invece di schioccare una "feature-card" dal arretrato priorità.

Trovo che questo approccio al lavoro ragionevolmente bene a tenere debito tecnica ad un livello accettabile e consentire a un ritmo sostenuto di innovazione.

L'ho trovato un po 'carente come mezzo di ri-architecting il sistema però. E 'difficile giustificare a lunghe deviazioni dal flusso producendo funzione.

Mentre sto scrivendo questo sto pensando che si poteva avvicinare Architettura per tematizzazione delle storie. Identificare gli obiettivi architettonici con epopee che si scompongono in un tema su cui concentrarsi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top