Problemi di progettazione della piattaforma

3

Supponiamo che io progetta una piattaforma su una piattaforma (ad esempio Java o Win32 o .NET), che comprende vari livelli come Database, Interfaccia utente, Cloud ecc.

Ora ogni team lavorerebbe per creare il proprio prodotto, ad esempio il database migliore e meno focalizzato sulla propria relazione con gli altri team, con conseguenti vari problemi durante l'integrazione.

Ora, queste sono le mie domande al fine di ottenere una piattaforma stabile e priva di bug:

  1. Come si può garantire che, mentre si integrano tutti i livelli, ci sia meno sovraccarico e c'è anche un altro modo per automatizzare questo processo?

  2. Inoltre, se una squadra specifica utilizza le chiamate API fornite da un'altra squadra e se l'altra squadra non è ancora pronta con le chiamate API, viene fornito un DEADLOCK. Come superare tali situazioni?

  3. Dire, voglio monitorare e ricevere feedback da vari team in merito ai loro progressi. C'è qualche automazione disponibile per tali attività?

posta Rishi Mehta 25.01.2012 - 13:23
fonte

3 risposte

2

How could one ensure that while integrating all the layers, there is less overhead involved

Misurazioni delle prestazioni e profilazione.

and also is there any other way to automate this process ?

No. Un buon design è davvero un duro lavoro.

if one particular team is using the API calls provided by other team and if the other team is still not ready with the API calls, there comes a DEADLOCK . How to step over such situations ?

Purtroppo. Non puoi Il team che sta producendo le chiamate all'API deve suddividere la suite dell'API in parti e consegnare prima il pezzo importante.

Il team che sta utilizzando le chiamate API deve suddividere il lavoro in parti in base all'importanza. Devono concentrarsi prima sui pezzi importanti. Devono comunicare le loro priorità ai produttori di API.

Say, I want to monitor and get feedback from various teams regarding their progress. Is there any automation available for such activities ?

Non automatizzare questo.

In realtà parla con le persone reali ogni singolo giorno.

Fai una riunione giornaliera di Scrum all'interno di ogni squadra. Sono 15 minuti che miglioreranno notevolmente il progetto.

Avere uno Scrum-of-scrums quotidiano tra i team leader. Sono 15 minuti che miglioreranno notevolmente il progetto.

    
risposta data 25.01.2012 - 14:49
fonte
1

Sembra che il tuo team soffra di cattiva gestione e altri problemi. In un tipico progetto Agile vedrai che sotto team di specialisti tecnici (solo il Team A fa Database, solo il Team B fa servizi Web, solo il Team C fa GUI, ecc ...).

Idealmente dovrebbe esistere una squadra per scrivere software che soddisfi le esigenze degli utenti (User Story). Nessun'altra suddivisione di quella squadra è accettabile. Ogni risorsa di quel gruppo dovrebbe essere in grado di ricevere una storia utente e completarla dal Database alla GUI su tutti i livelli. Certo, alcuni sviluppatori hanno punti di forza e punti deboli, ma il team dovrebbe essere in grado di aiutarsi a vicenda laddove necessario.

La tua squadra è a pezzi e ora c'è una mancanza di coordinamento tra i team. So che ristrutturare la squadra può essere difficile o impossibile, quindi ecco alcuni suggerimenti:

  1. Risposta 1: Un buon modo per risolvere i problemi di integrazione è scrivere una suite di test di integrazione che verifichi le comunicazioni corrette tra ogni livello. Se i test di integrazione sono eseguiti correttamente, notificheranno se c'è un errore in uno dei livelli. Forse i servizi web non sono mai stati distribuiti? Forse l'ambiente di test non ha implementato le ultime modifiche al database? Ecc ...

  2. Risposta 2: Non puoi costringere l'altra squadra a completare prima di farlo. I test di integrazione ti diranno in anticipo se l'altra squadra ha completato o meno. Tuttavia, prima di questo punto, dovresti scrivere Test unitari indipendenti per il codice sul tuo livello, in modo che tu possa verificare il tuo codice e la sua funzionalità prima che il livello da cui dipendi sia completato.

  3. Risposta 3: dovresti tenere traccia del problema o altri strumenti di gestione del progetto che sono pubblicamente disponibili per ogni membro del team. Come sviluppatore, dovrei essere in grado di cercare nello strumento di gestione del progetto per vedere quali attività e problemi sono aperti, in corso o completati.

risposta data 25.01.2012 - 13:50
fonte
0

1) How could one ensure that while integrating all the layers, there is less overhead involved and also is there any other way to automate this process ?

Dovresti avere un gruppo di architetti per il sistema generale. Ma assicurati che non progettino solo un'interfaccia. Dovrebbero facilitare la discussione tra le squadre e l'interfaccia dovrebbe essere risolta solo se entrambe le parti concordano che è ragionevolmente facile lavorare con / implementare. Il design deve anche essere flessibile, in modo che se una squadra chiede modifiche, devono essere prontamente discusse con tutte le squadre interessate e accettate o respinte.

2) Also, if one particular team is using the API calls provided by other team and if the other team is still not ready with the API calls, there comes a DEADLOCK . How to step over such situations ?

Se sei d'accordo su come l'interfaccia dovrebbe funzionare in anticipo (vedi il punto precedente), allora puoi creare una versione fittizia per i test delle unità o, nel peggiore dei casi, per le specifiche.

3) Say, I want to monitor and get feedback from various teams regarding their progress. Is there any automation available for such activities ?

Come già detto S.Lott, devi parlare alla gente, ogni giorno. Avere un incontro giornaliero di scrum in ogni squadra e un incontro scrum giornaliero dei leader del team (con il leader del progetto in generale). Direi che gli architetti dovrebbero essere almeno nella riunione dei caposquadra, forse anche durante tutte le riunioni, quindi sono sempre a conoscenza dei problemi che possono influenzare le interfacce.

    
risposta data 26.01.2012 - 07:51
fonte

Leggi altre domande sui tag