Prendo spunto da un articolo a mio parere molto interessante, postato su InfoQ "Ideal Architecture is not always about Ideal Technology or Techniques".
In pratica viene reso noto, che spesso l' Architetto del Software, durante la fase di analisi deve considerare, non solo la tecnologia, ma anche le esigenze e la realtà. Ok quindi come viene spiegato, potrebbe succedere che:
L' architetto si trova a dover gestire un Team di Sviluppatori VB6 per un progetto web (che sfiga!!) e che la tempistica di consegna è breve.
Quale deve essere la scelta migliore? Usare Ruby che pero' gli sviluppatori non conoscono ma che si adatta benissimo al tipo di progetto (quindi scelta basata sulla tecnologia) o non usarlo perchè potrebbe creare problemi al Team (scelta basata sulla realtà aziendale)?
Beh io direi che la scelta è soggettiva e non oggettiva e vi spiego anche perchè:
- Se costringo il mio Team a imparare Ruby, è vero non riusciro' a consegnare in tempo il prodotto ma, al prossimo progetto, avro' un Team molto piu' flessibile non trovate?
- Se mi baso esclusivamente sulle conoscenze del Team, non rischio di realizzare un prodotto obsoleto, perchè il Team non è aggiornato?
Io farei e faccio anche queste considerazioni. Forse il mio status è troppo Tecnologia-Oriented, e poco Realtà-Oriented, ma sul lungo termine ho sempre trovato guadagno perchè la tecnologia che uso e propongo è sempre quella (.NET) e quindi nel tempo riesco ad affrontare le richieste con una sempre maggior conoscenza della tecnologia stessa.
(IMHO)