Quali sono le caratteristiche di un "Centro di eccellenza" del software (CoE)?

13

Recentemente è arrivato un nuovo direttore del mio dipartimento che ha espresso il desiderio di diventare un "centro di eccellenza". Mi aspettavo che dal momento che è il mio primo capo che ha in realtà un background di programmazione che ci sarebbe una descrizione di questo. Tuttavia, è stato lasciato a quello.

Come ho riflettuto su questo negli ultimi giorni, sto arrivando a vuoto su ciò che un CoE in realtà significa oltre il semplice "essere efficace" nel fornire il prodotto. Ecco i principali elementi con cui sto combattendo:

  1. Questo è solo un termine che viene scartato dai tipi di gestione?

  2. Quali qualità rendono eccellente un gruppo di sviluppatori e tester di software?

  3. Come misurare l'eccellenza in questo contesto?

posta Randy 03.06.2011 - 16:48
fonte

6 risposte

7

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.

    
risposta data 03.06.2011 - 17:14
fonte
6

Questo è il problema con parole di donnola ; suonano come se volessero dire qualcosa ... ma in realtà non lo fanno.

Dal contesto, sembra che la tua azienda produca un prodotto e che il tuo direttore voglia solo che il tuo dipartimento sia il più efficiente ed efficace possibile. IME, significa che intendono eseguire uno o tutti i passaggi seguenti:

  • Assumi nuove persone con "requisiti rigorosi" sull'assunzione (solitamente gradi più alti o certificazioni o riconoscimenti di settore)
  • "Taglia il grasso" - elimina il peolpe che pensano non stia producendo
  • Inietti denaro nel reparto per strumenti / processi / persone / formazione

Quindi, per rispondere direttamente alle tue domande:

  • Si
  • Non ho una risposta solida per questo. Esistono molte metriche che possono essere utilizzate per quantificare la suggestione.
  • In questo contesto, in genere se pubblichi o meno date di rilascio.
risposta data 03.06.2011 - 17:10
fonte
3

Nei miei oltre 30 anni di esperienza, una frase del genere di solito significa che vogliamo che produciate di più con meno persone.

    
risposta data 03.06.2011 - 18:57
fonte
2

In risposta al tuo punto numero 1:
La risposta è sicuramente , è un termine simile ai giocatori esperti di Bullshit Bingo . Ciò non significa che il termine non abbia senso, però.

Passiamo al numero 2:
Tratto da Wikipedia : Centro di eccellenza: un corpus di conoscenze ed esperienze formalmente nominate e accettate informalmente area tematica . Lasciamo perdere le nomine formalmente e accettate informalmente e concentriamoci sul corpo della conoscenza e dell'esperienza. Vedrei la conoscenza come sfondo teorico, come esperienza finale come qualcosa che viene dall'applicazione pratica. Per raggiungere l'eccellenza, hai bisogno di entrambi. A parte quelle (abbastanza ovvie) qualità, penso che un terzo sia essenziale per raggiungere l'eccellenza: la capacità di interrogare te stesso, di riflettere su ciò che stai facendo e di cercare modi per migliorare. Conoscenza si impara da studente, ma è necessario lavorare costantemente su di esso, tenere il passo con gli ultimi sviluppi ecc. L'esperienza che raccogli sia esperienza, quella è quasi inevitabile. La parte più difficile da un punto di vista gestionale è creare una cultura della riflessione e dell'auto miglioramento (buona fortuna al tuo capo con quello; -)

Come per la domanda numero 3:
Penso che non puoi. Sto parlando di qualcosa di più del semplice portare i progetti al successo qui (che è già difficile da misurare, tra l'altro a causa della tendenza a dichiarare un successo anche il progetto più scadente perché sembra più bello nella presentazione di PowerPoint). La vera eccellenza viene dall'attitudine di tutti i membri di un team a dare il meglio, a migliorare se stessi, i loro strumenti, i loro processi, ecc. La soluzione migliore è trovare un modo per misurare l'efficacia di alcuni processi di miglioramento continuo predefiniti

    
risposta data 03.06.2011 - 17:11
fonte
1

La prima persona che viene in mente quando penso a "Software Center of Excellence" è Uncle Bob Martin

Uncle Martin è da lungo tempo un sostenitore dell'eccellenza nello sviluppo di software nella forma conosciuta come Artigianato del software . Come descritto da wikipedia

Software craftsmanship is an approach to software development that emphasizes the coding skills of the software developers themselves. It is a response by software developers to the perceived ills of the mainstream software industry, including the prioritization of financial concerns over developer accountability.

Ascoltalo sul seguente podcast mentre spiega cos'è l'arte del software:

Controlla anche il Manifesto per l'artigianato del software , che mette in evidenza l'importanza del software ben fatto, aggiungendo valore, la comunità di professionisti, e partnership produttive

EDIT: Poiché un centro di eccellenza software richiede programmatori ottimamente addestrati, potresti anche voler esaminare le seguenti risorse:

risposta data 04.08.2012 - 03:23
fonte
0

Mi sembra che lui stia solo dicendo che vuole avere una cultura della qualità piuttosto che della quantità, quindi di nuovo potrebbe semplicemente parlare del suo @ss. Come programmatori, penso che abbiamo la tendenza a pensare troppo a ciò che la gente dice. Almeno so che lo faccio. Per quanto riguarda il modo in cui ha detto, il suo solo parlare aziendale, ma non pensarci sopra. Come altri hanno già detto, chiediglielo.

    
risposta data 04.06.2011 - 05:10
fonte

Leggi altre domande sui tag