Dal Manifesto Agile:
We follow these principles:
Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
Ho un requisito per cui stiamo facendo join incrociati di database con più team partner in molte diverse origini dati. Alcuni sono tradizionali RDMBS, alcuni sono colonnari e uno è più di un'API che un database per motivi di sicurezza (quindi non posso eseguire arbitrariamente SELECT ... JOIN
contro di esso).
La nostra soluzione consiste nell'impostare processi ETL contro le varie fonti e cercare di ottenere istantanee pertinenti dati in un unico posto e utilizzare queste tabelle locali per eseguire i cross db join e infine generare report.
Il problema è che se ho bisogno di usare qualche nuova colonna come chiave di join (viene introdotta una nuova fonte di dati), o se viene posta una nuova domanda di lavoro, e non ho tirato quei dati, allora ho bisogno per modificare gli schemi e quindi rieseguire di nuovo tutti gli estratti, e in alcuni casi modificare i calcoli aziendali nelle trasformazioni , che possono richiedere ore e richiede un sacco di overhead operativo.
Continuo a sperare che i requisiti non continuino a cambiare, ma onestamente questa speranza non è Agile - dovrei essere in grado di rispondere a domande di business aggiuntive al volo. Un'altra parte di Agile è che i PM dovrebbero cercare di pianificare questo tipo di modifiche il prima possibile - è questo il punto in cui il mio processo sta crollando? In alternativa, come posso strutturare i flussi di dati e i processi correlati in modo altrettanto agile di altri tipi di codice?