Ho usato Dreyfus Modeling con molto successo in una serie di diverse abilità relative ai programmatori. Dreyfus Modeling guarda a cinque livelli di competenza:
- novizio
- principiante esperto
- competente (tendo ad usare "professionista")
- professionista esperto
- esperto
I due a cui prestare maggiore attenzione sono i livelli di novizio e di praticante. I novizi imparano seguendo le procedure passo dopo passo. I professionisti competenti sono sicuri di provare le cose da soli. È come guidare, in quanto si inizia in modo consapevole, seguendo le istruzioni. Alla fine ottieni la tua licenza. È ancora molto probabile che tu abbia un incidente, ma probabilmente non ucciderai nessuno. I professionisti esperti tendono a perdere tutto lo sforzo cosciente richiesto e gli esperti hanno una buona conoscenza della teoria coinvolta, magari insegnando o facendo qualcosa di straordinario con esso.
Di solito assegno i numeri da 1 a 5 a questi, per ottenere un risultato numerico. È molto utile utilizzare per misurare i risultati di istruttori e allenatori.
Puoi utilizzare questo modello per ogni aspetto della programmazione: TDD, integrazione continua, linguaggio, progettazione OO, ecc. Basta capire come le persone iniziano a provare un'abilità e cosa fanno in modo diverso quando hanno successo. Potrebbe essere necessario andare a cercare persone di successo per avere un'idea.
Una parola di cautela, però. Questo può essere usato solo come misura personale. Se provi a usarlo per dire, quante persone dovrebbero essere pagate, causerà l'inferno (ma credo che qualsiasi metrica lo farà comunque). Trovo che sia più utile utilizzare una tabella di marcia, insieme al coaching per aiutare le persone a capire dove desiderano imparare di più e quali risorse sono a loro disposizione per farlo.
Non credo sia possibile ottenere misurazioni accurate, a causa della capacità di far funzionare il sistema per farti sembrare migliore di te. Credo che se mantieni questa roba personale e privata e ti concentri sui punti di forza piuttosto che sulle debolezze, un team può migliorare rapidamente e in modo drammatico, ovunque sia partito.