Hai già buone idee
Le idee che descrivi nella tua domanda suonano eccellenti. È una grande sorpresa che non trovi successo. È il 2012 e la rivoluzione orientata agli oggetti è passata da tempo dallo stato dell'arte allo stato dell'arte. Sembra che a meno che tu non abbia un turn over molto basso e un ingaggio molto ridotto, faresti fatica a non ottenere diverse dozzine o addirittura un centinaio di buoni programmatori orientati agli oggetti solidi.
Agile o orientato agli oggetti?
Hai citato alcune tecnologie Agile come TDD e alcuni concetti più recenti, quindi non essere troppo duro con le persone per non abbracciare qualcosa che è ancora attivamente combattuto da alcuni team di gestione. Alcuni sostengono di abbracciare Agile, ma quando ne parlano, significa che cosa significano. L'organizzazione non è caratterizzata da team che prendono decisioni e si adattano, ma invece da un forte controllo gerarchico in stile contratto.
Ma torniamo agli oggetti orientati. Non menzioni l'analisi o la progettazione orientata agli oggetti e non sono del tutto sicuro di quale linguaggio di programmazione stia cedendo il passo a quale linguaggio di programmazione orientato agli oggetti. So che UML sta avendo problemi di popolarità tra molti programmatori orientati agli oggetti. Dopo aver studiato a fondo OOAD, credo che potrebbe essere come imparare la cultura e la storia di un paese di cui vuoi imparare la lingua naturale. Ad esempio, se volessi imparare il greco, potrei imparare l'alfabeto, il vocabolario e la grammatica, ma se ignorassi la ricca storia e cultura, mi perderei molto. In ogni caso, se impari tutto su un linguaggio di programmazione orientato agli oggetti, ma nulla su OOAD, penso che sia stata persa un'importante opportunità.
Problemi da superare?
Bridge troppo lontano? Se chiedi alle persone di imparare una piccola cosa a settimana, in un anno, tra le persone che partecipano, ci saranno molti cambiamenti. Se chiedi loro di cambiare tutto ciò che sanno, sarà accolto da alcuni, difficile per molti e impossibile per altri. Alcune modifiche come il controllo del codice sorgente sono localizzate. Passi dal non farlo prima, avevi un allenamento che non stava sottolineando i limiti della memoria, qualcuno ti ha attraversato per la prima volta, e poi il quotidiano era abbastanza facile.
Altre modifiche sono pervasive. Ad esempio, il dumping C e il passaggio a Java richiedono una formazione, un'impostazione e grandi cambiamenti significativi nel giorno per adottare un nuovo IDE, un nuovo compilatore, una nuova lingua, una nuova API, un nuovo modello di distribuzione, ecc. Questo è il tipo di ciò che accade più spesso in combinazione con un programma pilota o una ristrutturazione aziendale.
Guidare una rivoluzione? Se le persone che attualmente svolgono il lavoro hanno una storia di ricompense e l'azienda non sembra in pericolo di fallimento, qual è la loro motivazione per il cambiamento? Se sembri un estraneo che vuole indicare la direzione e lasciarli responsabili dei risultati che non possono prevedere, può sembrare un rischio, nessuna ricompensa.
Posizione Potere o Idea Leadership? Molte organizzazioni operano in base al potere di posizione. Se manchi di supporto visibile da manager, direttori di sezione, direttori e vicepresidenti, sei semplicemente un leader dell'idea. Alcune persone sono nella pericolosa posizione di avere un'idea e non essere in grado di intrattenerne una seconda. Se riesci a mostrarli invece di dirglielo, ciò farà molto per calmare gli scettici e per interessare gli alleati di talento.
Base di supporto troppo piccola? Fai un triage tra quelle 250 persone e ordinale in tre categorie: pronto ad abbracciare, disposto ad imparare e riluttante ad imparare. Hai buone ragioni per essere frustrato con alcune persone che non hanno interesse a fare un cambiamento. Potresti anche spingere una corda. Questo è uno sforzo sprecato. Se hai un'idea di chi sostiene il cambiamento, puoi scoprire cosa li interessa.
A differenza di un triage medico in cui la scelta etica e pratica è quella di aiutare il gruppo di mezzo che può farlo con l'aiuto, puoi investire la tua energia e il tuo tempo in base al tuo giudizio e alle tue preferenze. Per il tuo successo, perché non coltivare il gruppo che è pronto ad abbracciare nuove idee? Potrebbero essere pochi i primi, ma come una palla di neve, la tua visibilità e credibilità come avvocato cresceranno. Presto le persone ti chiederanno quando sarà il prossimo allenamento.
In esso a lungo termine? Fino a quando coltivi un campione per portare cose dopo di te, dovresti aspettarti di investire tempo nella costruzione di relazioni. Potrebbe essere necessario rimanere con le squadre che alleni per più di un mese. Fino a quando il team non possiede proprietà migliorate per se stesso, sei solo un poliziotto di tecnologia o metodologia. Il mentoring è un processo che può richiedere anni. Ci sono molte cose che i tuoi sviluppatori non vogliono fare e che ritieni importanti (penso che tu abbia menzionato specificamente i test unitari). Potrebbe volerci un po 'di tempo per costruire una visione condivisa del valore che questo comporta. Lo so per esperienza perché una volta ho sostenuto uno strumento di copertura del codice presso un'azienda Fortune 500 che aveva una grande reputazione per la qualità, ma manager e colleghi allo stesso modo erano cauti nel impegnarsi.
Esperto o di base? Molto più veloce del tutoraggio sarebbe favorire il supporto di base che proviene da ciascun membro del team. A partire da un team di dieci specialisti di software, se avessi la mia scelta di avere una persona che lavorasse sul processo per tutto il tempo o dieci persone che lavorassero sul processo il dieci percento delle volte, sceglierei la seconda. Il processo di base consente ai sostenitori di sentire l'impatto dell'approccio e di personalizzare l'approccio per risolvere al meglio i problemi della squadra proprietaria del lavoro.
Vedi la Freedom Line? Parte dell'introduzione delle "Best Practices" è di indurre le persone a rinunciare alla libertà di fare le cose in modo comune. Rinunciare alla discrezione del programmatore sarà più appetibile se cerchi opportunità per lasciare molte scelte agli sviluppatori. Ciò che scelgono è delineato da ciò che è richiesto da una partizione che possiamo chiamare la linea di libertà. Potrebbero essere necessarie divisioni simili, ben giustificate, relative a pratiche organizzative, regionali / specifiche del sito, del team e personali.