Quali sono le caratteristiche di un "Center of Excellence" (CoE) software?


13

Recentemente è entrato 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 effettivamente 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 venendo a vuoto su cosa significhi effettivamente un CoE oltre al semplice "essere efficace" nella consegna del prodotto. Ecco gli elementi principali con cui sto lottando:

  1. È solo un termine che viene utilizzato dai tipi di gestione?

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

  3. Come si misura l'eccellenza in questo contesto?


7
Un "Centro di eccellenza" è un centro gommoso e delizioso di programmatori, nel mezzo di una croccante caramella gestionale. ;)
FrustratedWithFormsDesigner

8
Glielo hai chiesto? Voglio dire ... la descrizione potrebbe non esserci ancora, ma mi piacerebbe sicuramente chiesto lui quello che vuole vedere in sviluppatori e tester di chiamare il reparto di un centro di eccellenza. Altrimenti stai solo accoltellando nel buio con poche possibilità di successo e un'enorme possibilità di frustrazione.
Marjan Venema,

@Marjan, non gliel'ho chiesto dato che ha qualche livello e non ho molto tempo da affrontare (e non ne ho più avuto da allora). Assicurati che lo farò la prossima volta. Vorrei solo informarmi da fonti di terze parti affidabili :)
Randy,

Complimenti per quello. Sempre bravo a venire preparato con quello che pensi che significhi un centro di eccellenza ...
Marjan Venema,

1
Probabilmente questo post sul blog potrebbe avere alcuni spunti per te: agileelements.wordpress.com/2008/10/29/… (dal momento che proviene da un ragazzo (non io) che ne ha stabilito uno nella sua organizzazione).
Yasouser,

Risposte:


7

Sì, questo è solo un termine che viene gettato in giro dai tipi di gestione ma se togli il linguaggio di gestione ciò che sta dicendo è che vuole un dipartimento che viene visto come usando e incarnando le migliori pratiche del settore in un modo che gli altri aspirano e stanno facendo così per offrire grandi soluzioni alla gente.

(Quest'ultimo bit è importante - se non stai effettivamente consegnando, non importa quanto sia bello tutto il resto e il tuo manager non sarà in giro a lungo).

La complessità si presenta in due modi principali:

1) Lo vuole 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) associati all'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 questo è un aspetto difficile. In definitiva, è davvero serio?

In termini di come sarebbe, dipende da cosa stai facendo, ma devi pensare in termini di quali sono i tuoi processi di sviluppo e gestione del progetto, quali strumenti stai usando, quali kit hanno le persone e così via . Il test Joel è sempre un buon punto di partenza e in particolare vorrei vedere un processo di controllo della versione davvero solido, un tracciamento dei bug davvero buono e processi di compilazione davvero buoni.

Vorrei anche verificare se le metodologie agili sono giuste per te (SCRUM in particolare), in che misura i test automatizzati potrebbero aiutare (senza iniziare una guerra religiosa ci sono convinzioni diverse sul punto in cui la complessità dei test supera i benefici che hanno fornire) se hai gli strumenti e il kit necessari per svolgere il lavoro. Generalmente suggerirei che desideri che gli strumenti siano all'avanguardia ma non sanguinanti. Vale la pena sottolineare che non si tratta di avere giocattoli, ma 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 danneggiati: è davvero eccellente pagare agli sviluppatori di guardare un cursore mentre il loro progetto impiega 5 minuti per essere costruito quando lo costruiscono mezza dozzina di volte al giorno?

Alcune altre cose che probabilmente saranno visibili in un centro di eccellenza: suggerirei che un centro di software di eccellenza abbia probabilmente un programma di formazione piuttosto buono - forse non corsi formali ma certamente budget di libri, tempo di studio, tutoraggio e piace.

E suggerirei che probabilmente sta facendo anche una piccola quantità (almeno) di ricerca e sviluppo. Con ciò non intendo cose completamente a cielo azzurro, ma dare agli sviluppatori spazio per provare nuove cose e valutare nuovi strumenti e linguaggi senza la continua pressione della consegna al cliente. Ecco come andare avanti e rimanere bene l'anno prossimo, l'anno successivo e così via.

Come puoi misurarlo? Ah, la domanda secolare. Misurare in definitiva 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 di ritenere utile che sia ampiamente adottata da molte aziende è la soddisfazione del cliente e del personale. È una misurazione indiretta, ma la mia opinione sarebbe che se non sei eccellente, è improbabile che otterrai livelli davvero grandi di soddisfazione del cliente e livelli davvero grandi di soddisfazione del personale.


Il mio problema con le parole d'ordine è che troppo spesso sembrano intese come un sostituto efficace del pensiero reale riguardo alla cosa che rappresentano. Cerco di non giudicare troppo duramente quando mi imbatto in parole d'ordine, però, perché a volte sono solo l'equivalente manageriale dei programmatori nerd, coinvolti in un diverso universo verbale e non realizzando che suonano sciocchi per il resto di noi anche se in realtà hanno integrità intellettuale e sono efficaci, disponibili, ecc ...
Erik Reppen,

6

Questo è il problema con le parole donnole ; sembrano voler dire qualcosa ... ma non lo fanno davvero.

Dal contesto, sembra che la tua azienda produca un prodotto e che il tuo direttore desideri solo che il tuo reparto sia il più efficiente ed efficace possibile. IME, significa che intendono eseguire una o tutte le seguenti operazioni:

  • Assumere nuove persone con "requisiti rigorosi" per l'assunzione (di solito gradi più alti o certificazioni o riconoscimento del settore)
  • "Trim the fat" - sbarazzarsi di peolpe che pensano non stiano producendo
  • Iniettare denaro nel dipartimento per strumenti / processi / persone / formazione

Quindi, per rispondere direttamente alle tue domande:

  • Non ho una risposta solida per questo. Ci sono molte metriche che possono essere utilizzate per quantificare la bellezza.
  • In questo contesto, generalmente stabilendo o meno le date di rilascio.

3

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


Risposta superba semplice.
Allievo

2

In risposta al punto numero 1:
la risposta è sicuramente , è un termine simile a quello dei giocatori esperti di Bingo di Cazzate . 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 nominato e accettato informalmente sull'argomento. Dimentichiamoci di nominati formalmente e accettati in modo informale e concentriamoci sul corpo della conoscenza e dell'esperienza. Vorrei vedere la conoscenza come sfondo teorico, l'esperienza finale come qualcosa che proviene dall'applicazione pratica. Per raggiungere l'eccellenza, hai bisogno di entrambi. A parte queste qualità (abbastanza ovvie), penso che una terza sia essenziale per raggiungere l'eccellenza: la capacità di interrogarsi, riflettere su ciò che si sta facendo e cercare modi per migliorare. Conoscenza che apprendi come studente, ma devi costantemente lavorare su di essa, tenere il passo con gli ultimi sviluppi, ecc. L'esperienza che raccogli è esperienza, che è quasi inevitabile. La parte più difficile da un punto di vista gestionale è creare una cultura di riflessione e miglioramento personale (buona fortuna al tuo capo con quella ;-)

Per quanto riguarda la tua 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ù fallito perché sembra più bello nella presentazione di PowerPoint). La vera eccellenza deriva dall'attitudine di tutti i membri di una squadra a dare il meglio, a migliorare se stessi, i loro strumenti, i loro processi, ecc. Il tuo colpo migliore è trovare un modo per misurare l'efficacia di alcuni processi di miglioramento continuo predefiniti


1

La prima persona che mi viene in mente quando penso al "Software Center of Excellence" è lo zio Bob Martin

Zio Martin è da molto tempo un sostenitore dell'eccellenza nello sviluppo di software nella forma nota come Software Artigianato . Come descritto da Wikipedia

L'artigianato software è un approccio allo sviluppo del software che enfatizza le capacità di programmazione degli sviluppatori stessi. È una risposta da parte degli sviluppatori di software ai mali percepiti dall'industria del software tradizionale, inclusa la definizione delle priorità delle preoccupazioni finanziarie in merito alla responsabilità degli sviluppatori.

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

Dai un'occhiata anche al Manifesto per l'artigianato software , che evidenzia l'importanza di un software ben realizzato, che aggiunge valore, la comunità di professionisti e partnership produttive

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


0

Mi sembra che stia solo dicendo che vuole avere una cultura della qualità piuttosto che della quantità, quindi potrebbe parlare semplicemente del suo @ss. Come programmatori penso che abbiamo la tendenza a pensare troppo a ciò che la gente dice. Almeno so di sì. Per quanto ha detto, è solo un discorso aziendale ma non pensarci troppo. Come altri hanno già detto, chiediglielo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.