Come evitare l'abbandono quando si definisce uno schema mentre altri cercano di programmarlo contro di esso

3

Sono incaricato di definire uno schema XML per alcuni dati; il piano è di avere vari sistemi (tutti sotto il nostro controllo) che caricano file XML che corrispondono a questo schema con un server centrale per l'elaborazione. Non ho molta conoscenza del design di questi altri sistemi, quindi sto lavorando in collaborazione con quegli esperti di sistema per rendere questo schema XML ragionevole per consumare entrambi (dalla nostra parte) e produrre (dalla loro parte).

Lo schema non è del tutto chiaro e sto definendo i dati che vogliamo raccogliere contemporaneamente alla definizione dello schema. Ci sono un milione di modi per farlo, quindi c'è un preciso "fai qualcosa, pensaci, parla di così e così, refactoring, ripeti" il processo in atto.

Tutto ciò detto, abbiamo una situazione sfortunata in cui io e alcuni altri stiamo definendo le cose e alcuni altri sviluppatori la stanno implementando. Mi piacerebbe scrivere del codice ma non ho trovato il tempo. Questo porta al ciclo frustrante in cui il design cambia nella torre d'avorio e quindi i ragazzi che scrivono il codice devono andare e cambiarlo ancora e ancora. Evitando i dettagli per vari motivi, gli sviluppatori che scrivono l'implementazione non sono in grado di definire efficacemente i requisiti dello schema e i dati che dobbiamo raccogliere.

Dovrei essere io a scrivere e giocare con questa roba mentre capisco come dovrebbe essere fatto? Questo sarebbe l'ideale per me, ma siamo sotto pressione per fare le cose ed è più veloce avere alcune persone che ci lavorano piuttosto che solo me.

Abbiamo troppi cuochi in cucina con i provider di file XML che influenzano lo schema? La facilità di creazione di file XML dovrebbe essere una considerazione dello schema, giusto?

C'è un modo migliore per risolvere questo problema, o ti viene in mente un male necessario quando stai provando a far volare l'aereo mentre lo costruisci?

Qual è il processo di sviluppo corretto da applicare qui che ridurrà al minimo lo spreco di tempo?

    
posta Eric 23.04.2014 - 16:31
fonte

2 risposte

1

Non sono sicuro che sia un modo per ridurre definitivamente il churn e quanto sarebbe applicabile alla tua situazione attuale, ma queste sono alcune cose che proverei a fare -

Prodotto minimo vitale

Non sono sicuro che questo sia del tutto pertinente alla tua situazione attuale dal momento che sembra che tu sia già nel mezzo delle cose, ma lo inserirò comunque poiché fornisce un contesto ad alcuni degli altri punti.

Vorrei spingere per identificare il minimo indispensabile di dati necessari e provare prima a costruire la più piccola integrazione end-to-end possibile. Una volta fatto, diventa molto più facile gestire ulteriori cambiamenti poiché molte delle domande iniziali sull'approccio e sul rischio sono state affrontate.

Ciclo di comunicazione stretto

Dato che hai detto che non sei nella posizione di lavorare sulla codifica delle modifiche ai sistemi o sulla costruzione di un prototipo, la prossima cosa migliore è lavorare a stretto contatto con le persone che devono farlo.

Durante la creazione delle specifiche dello schema, proverei a mantenere il ciclo di comunicazione il più stretto e il più piccolo possibile. Identifica una piccola squadra in grado di gestire il progetto end-to-end e lavorare a stretto contatto con loro (preferibilmente nella stessa stanza).

Se disponi di più team per sistemi diversi, identificherei determinati membri di ogni team e lavorerai con loro. Se i team sono troppo piccoli per questo, proverei a ottenere uno specifico blocco di tempo per concentrarsi sull'integrazione dello schema e costruirlo in sprint focalizzati.

Crea per modifica / estensione semplice

Poiché sai che questo è uno schema in rapida evoluzione e talvolta ambiguo, è importante progettare lo schema e il codice per generarlo in modo che possano essere facilmente modificati.

Se ciò è fatto bene, dopo che il prodotto minimo iniziale iniziale è stato realizzato, sarebbe molto più facile per gli sviluppatori estendere il sistema e ridurre il tempo di abbandono.

risposta data 28.04.2014 - 05:47
fonte
0

Aggiungi un elemento di versione o un attributo vicino alla radice del tuo xml. Ogni volta che pubblichi un nuovo schema, incrementa questa versione. I produttori impostano la versione e utilizzano lo schema corrispondente. I consumatori leggono la versione e applicano la triturazione appropriata. Funziona meglio se la posizione del tag della versione non cambia tra le versioni.

    
risposta data 28.04.2014 - 14:03
fonte

Leggi altre domande sui tag