Su che tipo di applicazione stai lavorando? Dato che hai già avuto uno sviluppatore database / T-SQL nel tuo team in precedenza, presumo che sia ragionevolmente incentrato sul database, ma la risposta a come il database è effettivamente utilizzato dalla tua applicazione ha un impatto sul fatto che uno sviluppatore di database separato sia necessario o utile.
La mia reazione iniziale è stata "vuoi uno sviluppatore T-SQL con esperienza di sviluppo del database sul tuo team", ma se il database è poco più di un archivio dati (poca o nessuna logica nel livello del database), forse potresti farne a meno Stessa cosa se la progettazione del database è semplice (significa che per estrarre qualcosa di utile non è necessario un milionesimo milione di join tra decine di tavoli), o se le prestazioni e la scalabilità non sono delle ottime preoccupazioni nel tuo caso.
Un ovvio inconveniente di uno sviluppatore di database separato è il costo a breve termine di un altro sviluppatore che non contribuirà direttamente alle parti visibili del software dell'utente.
Supponendo che l'applicazione su cui stai lavorando sia ragionevolmente incentrata sul database , una volta che il periodo iniziale di accelerazione è stato curato, con uno sviluppatore che può concentrarsi sugli aspetti del database dell'applicazione può aiutare un bel po '. Si ottiene qualcuno che conosce i dettagli della programmazione basata su set, può concentrarsi su quale quantità di normalizzazione dei dati in memoria è utile nel caso specifico, e si spera che possa aiutare a creare o migliorare la progettazione del database per fornire buone prestazioni ora e in futuro.
Avere uno sviluppatore di applicazioni anche lo sviluppo di database non significa che avere sia una cosa negativa, ma c'è un evidente rischio che lo sviluppatore in questione si concentri maggiormente sulle esigenze dal lato delle applicazioni piuttosto che su ciò che rende una buona e scalabile struttura del database e quindi capire come esporlo al livello dell'applicazione in un modo che fornisca all'applicazione i dati di cui ha bisogno. Questo può portare a risultati a breve termine e dolore a lungo termine quando il progetto sottostante risulta non essere scalabile. Ovviamente non deve accadere in questo modo, ma è un rischio che vale la pena essere consapevoli di.
Per quanto riguarda i costi di comunicazione (e in particolare quello che causa ritardi), non deve accadere in questo modo. Se gli altri sviluppatori del team conoscono un po 'di T-SQL (non è che difficile cogliere le nozioni di base come fare selezioni, aggiornamenti, join, ecc.), Allora possono certamente fare < em> prototyping nel livello del database solo per ottenere i dati di cui hanno bisogno. Prima che il codice vada in produzione (qualunque cosa questo significhi nel tuo ambiente), lo sviluppatore del database può firmarlo dicendo che è un progetto abbastanza buono, o prendere i parametri di input, il risultato desiderato e il design del set di risultati di output, e capire un modo migliore per eseguire le query effettive.