Sì, questo è solo un termine che viene scartato dai tipi di gestione, ma se elimini il linguaggio di gestione, quello che sta dicendo è che vuole un dipartimento che è visto come l'utilizzo e l'incarnazione delle migliori pratiche del settore in un modo che gli altri aspirano a e lo sta facendo per offrire soluzioni eccezionali a persone come.
(Quest'ultimo bit è importante - se non lo stai effettivamente consegnando non importa quanto è grande tutto il resto e il tuo manager non sarà a lungo).
La complessità si presenta in due modi principali:
1) Vuole questo perché capisce che è il modo giusto di sviluppare software e che è così che produci ottimi prodotti, o lo vuole perché vuole essere in grado di vantarsene?
2) Accetterà i costi iniziali (tempo, denaro, credibilità e rischio) che derivano dall'implementazione delle migliori pratiche? Va bene dire "andiamo agili", ma sta mettendo la sua reputazione sulla linea che migliorerà le cose e dovrà passare molto tempo a venderlo nell'organizzazione. Quasi sempre i benefici sono a lungo termine, i costi sono a breve termine e questa è la parte più difficile. Alla fine è davvero serio a riguardo?
In termini di come sarebbe, beh, dipende da cosa stai facendo, ma devi pensare in termini di quali sono i tuoi processi di sviluppo e di gestione del progetto, quali strumenti stai usando, quali kit hanno le persone e così via. Il test di Joel è sempre un buon punto di partenza e in particolare vorrei vedere un controllo di versione veramente solido processo, tracciamento dei bug davvero buono e processi di compilazione davvero buoni.
Vorrei anche vedere se le metodologie agili sono giuste per te (SCRUM in particolare), fino a che punto i test automatizzati potrebbero aiutare (senza iniziare una guerra religiosa ci sono opinioni diverse sul punto in cui la complessità dei test supera i benefici che forniscono) se possiedi gli strumenti e il kit necessari per svolgere il lavoro. Generalmente suggerisco di volere che gli strumenti siano all'avanguardia ma non all'avanguardia. Vale la pena sottolineare che non si tratta di avere giocattoli, si tratta di dare a tutti i membri del team gli strumenti per essere il più produttivi possibile per la maggior parte della giornata lavorativa possibile. L'esempio più ovvio sono i PC cattivi: è davvero fantastico pagare gli sviluppatori per guardare un cursore mentre il loro progetto richiede 5 minuti per essere costruito quando lo costruiscono una mezza dozzina di volte al giorno?
Alcune altre cose che probabilmente saranno visibili in un centro di eccellenza: suggerirei che un centro di eccellenza software abbia probabilmente un buon programma di formazione - forse non corsi formali ma certamente budget di libri, tempo di studio, mentoring e simili.
E suggerirei che probabilmente sta anche facendo una piccola quantità (almeno) di R & D. Con ciò non intendo cose completamente blue sky, ma dando spazio agli sviluppatori per provare nuove cose e valutare nuovi strumenti e linguaggi senza la continua pressione di consegna al cliente. È così che vai avanti e stai bene l'anno prossimo, l'anno dopo e così via.
Come puoi misurarlo? Ah, la vecchia domanda. In definitiva, misurare lo sviluppo del software è difficile, se non impossibile, e misurare l'eccellenza nello sviluppo del software è altrettanto difficile.
L'unica cosa che posso davvero suggerire che penso sarebbe utile che è ampiamente adottata da molte aziende è la soddisfazione del cliente e del personale. È una misurazione indiretta, ma credo che se non si è eccellenti, è improbabile che si ottengano davvero grandi livelli di soddisfazione del cliente e livelli davvero elevati di soddisfazione dello staff.