Come si integrano progetti separati in un'unica soluzione?

4

Sfondo

Sono un capo tecnico di un piccolo gruppo di tre sviluppatori che lavorano in un college comunitario. A causa della natura del nostro ambiente, i nostri progetti sono in genere correlati (dal momento che l'insieme principale di dati che usiamo è relativamente piccolo), ma tutto il nostro lavoro viene svolto in soluzioni C # separate e indipendenti con front-end ASP.NET.

Sono responsabile del mantenimento del set principale di codice condiviso, la struttura del nostro college, ma ho anche una serie completa di progetti. Poiché ho scritto la maggior parte del codice framework, nessuno degli altri membri del mio team vuole modificarlo o espanderlo (per ragioni che posso spiegare in maggior dettaglio).

Problemi

Il nostro intero team (noi tre e il nostro manager) abbiamo frequentato lo Scrum training lo scorso anno e stiamo tutti cercando attivamente di coinvolgere i nostri stakeholder interni nel processo Scrum. Tuttavia, quando dobbiamo passare da un progetto a un altro (e abbiamo circa 25 progetti separati), incorriamo in una penalità di transizione piuttosto elevata.

Il codice meno recente non viene mantenuto o aggiornato con nuovi standard come facilmente perché aggiungiamo semplicemente un riferimento a una versione specifica del framework, che è poi scomparsa dal momento in cui riapriamo i progetti più vecchi. Non prendiamo realmente un nuovo codice che possiamo riutilizzare e integrare nel framework.

Sebbene il nostro manager ci aiuti a rivedere il codice più vecchio, i nostri progetti sono sempre programmati in back-back - anche ora che stiamo usando Scrum, abbiamo una pressione interna che spinge nuovi elementi al team invece di avere spazio per tirare nuovi lavora quando siamo pronti.

Solutions (?)

Io e il mio team abbiniamo il programma, il programma di squadra o eseguiamo revisioni di codice (se non possiamo accoppiare) regolarmente. Ho sottolineato che non possiedo il nostro framework condiviso e sollecito regolarmente feedback dal mio team per nuove funzionalità o bug.

Ho proposto al team di provare a trovare un nuovo modo di integrare il nostro codice insieme, che è attraverso un grande progetto basato sul web (posso sentire tutti voi ad inalare bruscamente mentre scrivo questo). Sono alla fine del mio ingegno a cercare di sviluppare lo skillset e la fiducia della mia squadra al punto che possiamo condividere il codice e ci sentiamo a nostro agio nell'aggiornare il codice degli altri; tuttavia, i progressi sono estremamente lenti, mentre la quantità di codice che stiamo mantenendo aumenta molto più rapidamente.

Quando ho suggerito questa opzione alla mia squadra, tutti erano davvero entusiasti all'idea di poter lavorare insieme e migliorare il riutilizzo del codice. Ci sentiamo tutti come se potessimo sostenerci meglio l'un l'altro in questo scenario. Tuttavia, siamo anche preoccupati di approcciare un progetto di queste dimensioni, e inoltre non sappiamo di problemi logistici come il tempo necessario per eseguire i test unitari o anche semplici build di progetto. Riconosco il mio stesso livello di ignoranza qui, ma allo stesso tempo sono davvero limitato da risorse e personale, quindi nonostante l'idea di stare per diverse settimane, non ho opzioni migliori.

    
posta jwiscarson 02.02.2016 - 18:51
fonte

2 risposte

1

Sembra che tu abbia diversi problemi, non tutti possono essere risolti solo da Scrum.

  • Riferimento alle versioni precedenti: sembra un lavoro per l'integrazione continua e per i test automatici.
  • Architettura: la struttura del progetto che stai descrivendo non è atomica. Puoi testare ciascuna parte della domanda in isolamento? In caso contrario, potresti prendere in considerazione una modifica dell'intera architettura che assomiglia a una suite di servizi rispetto a un gigantesco progetto web.
  • Overhead: qui suggerirei due approcci. 1) Implementare modelli e pratiche di codifica e architettura; e 2) Creare zone di competenza, associando una persona a un insieme di servizi. Questa persona diventa la persona giusta per domande tecniche su come spostare la funzionalità in avanti.
  • Riciclo / riutilizzo: tutti generano una grande quantità di codice, ma sembra che si stia creando un sacco di codice monouso. Un approccio generalizzato potrebbe funzionare meglio?

Hai a che fare con un particolare complesso di circostanze. Se stai sollevando problemi dalle tue retrospettive, assicurati di affrontare almeno uno dei problemi in ogni sprint. Se non hai il supporto da parte della direzione per farlo, una chat franca potrebbe essere in ordine.

Ricorda che tu e il tuo team siete gli esperti più esperti al mondo su questo codice. Tutti voi potete trovare una soluzione migliore quando lavorate insieme.

    
risposta data 11.11.2016 - 23:33
fonte
0

Il mio suggerimento è di correggere prima le tue priorità e chiedertelo.

L'azienda ne ha davvero bisogno?

Se non la bella parte di Scrum è la nozione di arretrato. Basta scaricare le tue idee lì e lasciarlo crescere. Il backlog stesso può avere più pesi (ad es. Tecnico e commerciale) per aiutarti a stabilire le priorità.

Quindi, quando hai un backlog abbastanza "sano" in cui hai una serie di requisiti aziendali, vedi quali di quelli tecnici possono essere adatti.

Assicurati di dare al tuo team la giusta capacità. (ad esempio, non assegnare 8 ore al giorno per i tuoi sviluppatori) e inserire un bucket noto sconosciuto per capire che cosa deve accadere.

Che cosa succede se l'azienda non vuole pagare per questo?

E perché dovrebbero? Non migliora la loro linea di fondo ... o lo fa? Quando inserisci la stima dello sforzo, puoi semplicemente dire con questa correzione tecnica che il costo del punto della storia scenderà da 13 a 3, aiutandoci così a ridurre il nostro lavoro andando avanti a scapito di avere meno funzioni in uno sprint precedente.

Puoi anche aggiungere che aggiungendo questa correzione tecnica possiamo ridurre ulteriormente le dimensioni bucket sconosciuti conosciuti .

    
risposta data 29.04.2017 - 16:30
fonte

Leggi altre domande sui tag