У вас вже є хороші ідеї
Ідеї, які ви окреслили у своєму питанні, звучать чудово. Це великий сюрприз, що ви не знаходите успіху. Настає 2012 рік, і об'єктно-орієнтована революція вже давно перейшла від найсучаснішої до сучасної практики. Схоже, якщо у вас дуже низький оберт і дуже мало найму, вам не складе труднощів не отримати декілька десятків чи навіть сотень хороших об'єктно орієнтованих програмістів.
Спритний або об'єктно-орієнтований?
Ви згадуєте деякі Agile технології, такі як TDD та деякі новіші концепції, тому не будьте занадто суворими щодо людей, щоб не сприйняти те, з чим все-таки активно борються деякі управлінські команди. Деякі претендують на те, що вони сприймають Agile, але коли вони говорять про це, це означає, що вони говорять, що це означає. Організація не характеризується командами, які приймають рішення та адаптуються, а натомість сильним ієрархічним контролем у стилі контракту.
Але повернемося до об’єктно-орієнтованого. Ви не згадуєте об'єктно-орієнтований аналіз чи дизайн, і я не зовсім впевнений, яка мова програмування поступається місцем об'єктно-орієнтованій мові програмування. Я знаю, що UML має проблеми з популярністю серед багатьох об'єктно-орієнтованих програмістів. Пройшовши ретельну підготовку в OOAD, я вважаю, що це може бути схожим на вивчення культури та історії країни, природну мову якої ви хочете вивчити. Наприклад, якби я хотів вивчити грецьку мову, я міг би вивчити алфавіт, словниковий запас та граматику, але якби я ігнорував багату історію та культуру, я б дуже сумував. У будь-якому випадку, якщо ви дізнаєтесь все про об'єктно-орієнтовану мову програмування, але нічого про OOAD, я вважаю, що була втрачена важлива можливість.
Проблеми подолання?
Міст занадто далеко? Якщо ви попросите людей вивчити одну дрібницю на тиждень, через рік, серед людей, які беруть участь, відбудеться багато змін. Якщо ви попросите їх змінити все, що вони знають, мало хто буде вітатися, важким для багатьох, а іншим неможливим. Деякі зміни, такі як управління джерелом, локалізовані. Ви переходили від того, щоб не робити цього раніше, у вас були тренування, які не підкреслювали межі пам’яті, хтось пройшов вас через це перший раз, і тоді щоденний день був досить легким.
Інші зміни є поширеними. Наприклад, скидання C та перехід на Java вимагає значних навчань, налаштувань та великих змін у щоденному режимі для прийняття нового IDE, нового компілятора, нової мови, нового API, нової моделі розгортання тощо. Цей вид що найчастіше відбувається в поєднанні з пілотною програмою або корпоративною реструктуризацією.
Провідна революція? Якщо люди, які зараз виконують роботу, мають історію нагородження, а компанія, схоже, не загрожує невдачею, яка їх мотивація до змін? Якщо вам здається стороннім, хто хоче вказати напрямок і залишити їх відповідальними за результати, які вони не можуть передбачити, це може здатися всім ризиком, без винагороди.
Позиція влади чи ідея лідерства? Багато організацій діють на основі позиційної влади. Якщо вам не вистачає видимої підтримки керівників, керівників секцій, директорів та віце-президентів, ви просто керівник ідеї. Деякі люди знаходяться в небезпечному становищі мати одну ідею і не мати можливості розважати другу. Якщо ви зможете показати їх замість того, щоб сказати, це пройде довгий шлях до тихих скептиків та зацікавлення талановитих союзників.
База підтримки занадто мала? Зробіть тріад серед цих 250 людей та розберіть їх у три категорії: готові до участі, охочі вчитися та небажання вчитися. У вас є вагомі причини засмучуватися з деякими людьми, які не мають інтересу до змін. Ви також можете натиснути на мотузку. Це витрачені даремно зусилля. Якщо ви відчуваєте, хто підтримує зміни, ви можете дізнатися, що їх цікавить.
На відміну від медичної тріади, де етичним та практичним вибором є допомога середній групі, яка може зробити це за допомогою, ви можете вкласти свою енергію та час, виходячи з ваших суджень та уподобань. Для вашого успіху чому б не виростити групу, яка готова прийняти нові ідеї? Спочатку їх може бути мало, але як сніжний ком, ваша видимість та авторитет як захисника зростатимуть. Незабаром люди запитають вас, коли буде наступне навчання.
У ньому Довгостроковий? Поки ви не виробите чемпіона, який повинен вести справи за собою, слід розраховувати інвестувати відносини, будуючи час. Можливо, вам доведеться залишатися з командами, яких ви тренуєте, більше одного місяця. Поки команда не володіє вдосконаленими методами для себе, ви є лише поліцейським із технології чи методології. Наставництво - це процес, який може зайняти роки. Ваші розробники не хочуть робити те, що ви вважаєте важливим (я думаю, ви спеціально згадали про тестування модулів). Може знадобитися деякий час, щоб створити спільне бачення цінності, яку це приносить. Я знаю це на досвіді, тому що я колись виступав за інструмент висвітлення коду у компанії Fortune 500, яка мала велику репутацію якості, але менеджери та колеги так само з обережністю ставилися до цього.
Експерт чи трави? Набагато швидше, ніж наставництво було б сприяти низовій підтримці, що надходить від кожного члена команди. Починаючи з команди з десяти спеціалістів із програмного забезпечення, якби у мене був вибір, щоб одна людина працювала над процесом весь час або десять людей працювали над процесом десять відсотків часу, я би вибрав другий. Процес широкого коріння дозволяє захисникам відчувати вплив підходу, а підхід повинен бути розроблений для найкращого вирішення проблем команди, якій належить робота.
Ви бачите лінію Свободи? Частина запровадження "Кращих практик" - це змусити людей відмовитись від свободи робити спільні речі. Визначення на розсуд програміста буде більш приємним, якщо ви шукаєте можливості залишити багато варіантів для розробників. Те, що вони обирають, відмежоване від того, що передбачено розділом, який ми можемо назвати лінією свободи. Можливо, будуть потрібні подібні, добре обґрунтовані підрозділи щодо організаційних, регіональних / конкретних сайтів, командних та особистих практик.