Підказки щодо керування новою командою з новим кодом [закрито]


9

Як ти ведеш себе в новій команді, де ти є старшим самим розробником, а більшість інших в команді молодші за тебе на кілька років. Завдання перед командою - це те, що раніше ніхто, крім вас, не робив у своїй кар’єрі.

Керівництво наполягає на підвищенні продуктивності всієї команди, і як старший розробник ви відповідаєте.

Будь-які поради щодо виходу козирів у такій ситуації? Зрозуміло, що всій команді потрібен час, щоб навчитися, і не будемо забувати нове. Однак терміни також випереджають ...


Має бути в pm.stackexchange.com
JBRWilkinson

5
@JBRWilkinson Я не згоден. Йдеться про те, щоб бути лідером технологій молодших розробників зі строгим терміном. Я погодився б, якщо мова йде про те, як керувати проектом молодших розробників, однак бути технічним керівником - це інше, ніж бути прем'єр-міністром.
maple_shaft

Відповіді:


13

Не дозволяйте, щоб жорсткий термін або новизна проекту заважали хорошій інженерній практиці. Налаштуйте сховище програмного забезпечення, погодьтесь із стилем кодування, придумайте тестовий набір і т. Д. Новизна завдання не повинна бути такою великою, якщо у вас є якісні люди, які бажають наполегливо попрацюйте та вивчіть завдання, що їх попереду.

Або кажучи інакше: вас поклали на посаду, оскільки керівництво вважає, що ваш досвід та досвід дали вам інструменти, необхідні для створення якісного програмного забезпечення. Не раптом забувайте свої навички лише тому, що зараз це завдання здається страшним.


Переконайтесь, що кожен у колективі має можливість оцінити всі завдання, які їм будуть призначені, щоб вони мали деякий внесок у терміни. Оскільки ваша команда все ще вивчає мотузки, не припускайте нікого більше п'яти годин на день, коли ви перетворюєте оцінки на минулий час. І якщо терміни не можуть бути дотримані, переконайтеся, що керівництво про це дізнається якнайшвидше.
Давуд ібн Карім

1
@David - Як ви відпрацювали 5 годин (насправді це не погана цифра, але як ми це знаємо)? Тільки визнайте, що оцінювати такий проект - це кепська стрілянина та управління.
mattnz

3
Я вважаю, що більшість людей продуктивні приблизно від 6 до 6,5 годин на день. Кілька з них справляються більше, ніж це, але я думаю, що це хороший середній показник. Але оскільки команда нова, принаймні одну годину на день буде витрачатися на навчання. І я вірю в оцінку - хоча далеко не всі в цьому добре, це має бути краще, ніж просто заскочити і програмувати, не знаючи, скільки часу займе завдання.
Давуд ібн Карім

Це допомагає придбати, якщо ви змусите членів команди розробити свої оцінки перед тим, як побачити запланований час, і вони значно не перевищують план. Якщо їх оцінити перед тим, як побачити інші оцінки, це також уникне зміщення оцінки.
BillThor

@BillThor: Безумовно, ви примусите хлопця до роботи, щоб оцінити його, і використовуєте його цифри як вихідну точку. Я щойно оцінив роботу і мені сказали "Ми хоч це було б 1/3 цього". Чому вони навіть турбували мене, питаючи, чи знають, скільки часу це займе?
mattnz

7

Спочатку спочатку почніть використовувати систему управління вихідним кодом з самого першого рядка коду. Звичайте перевіряти код на початку та часто.

По-друге, визначитися зі стратегією тестування . Звичайно, це має означати одиничні тести, але ви також повинні розглянути, як автоматизувати приймальні тести.

По-третє, встановіть сервер безперервної інтеграції, щоб ваш код будувався регулярно і регулярно перевірявся.

Коли ви це зробите, ви, як команда, встановіть кілька простих стандартів кодування . Ви хочете, щоб ваш код легко читався всіма. Насправді не важливо, якими є стандарти. Відступ з вкладками, відступ з пробілами, фігурний дужок на тій же лінії, що завгодно. Не має значення, якими вони є, лише те, що всі послідовно їх застосовують.

Оскільки команда переважно молодших розробників, плануйте часто перевіряти код, щоб переконатися, що вони не додають занадто багато технічної заборгованості вашій системі.

Нарешті, подумайте про використання SCRUM . Якщо ви це зробите, найміть тренера або перейдіть на якесь тренування. Оскільки ви все робите щось, чого ніколи раніше не робили, встановити реалістичні строки просто неможливо. За допомогою SCRUM ваше керівництво матиме можливість бачити, чим ви займаєтесь щодня, щоб вони могли бачити, який прогрес (чи ні) досягнуто. І оскільки, очевидно, вам були надані ваші терміни, SCRUM принаймні гарантує, що якщо ви не зможете дотриматись терміну, принаймні ви будете роздавати завершені історії поступово, що, мабуть, краще, ніж закінчуватися з гігантом система, яка взагалі не працює.


2
+1 для контролю версій та перегляду коду на початку та часто.
jmq

2
Я вважаю, що контроль над джерелами настільки необхідний процес, що його слід здійснювати незалежно від складу команди, незалежно від будь-чого.
maple_shaft

6

На додаток до відповіді від @chrisaycock ... Не варто недооцінювати час, який вам потрібно буде виділити на наставництво / навчання тощо. В якості ведучого вам потрібно буде навчитися відпускати деталі та довіряти своїй команді. Ваша робота полягає в тому, щоб стати активізатором, зняттям дорожнього блоку та запускати перешкоди, коли керівництво твориться туди. У "нормальній" команді, приблизно в 7 або 8, ведучий більше не програмує. У вашій ситуації це падає до 3 або 4 (можливо, навіть менше), ви не ресурс програмування для проекту.


+1 про виділення часу на наставництво та навчання. Ефективна технологічна роль робить молодших розробників продуктивними.
maple_shaft

"Ви не ресурс програмування для проекту". Цікаво, чи відчуває його керівництво так само, хе. Сподіваюсь, ви не перетворитесь на роль "героя" програміста проекту.
jmq

У мене склалося враження, що ОП просто найстарший розробник і не має спеціального звання чи обов'язків (тобто він не є "технічним керівником" чи "архітектором"). У цьому випадку він, безумовно, є ресурсом розвитку, і, мабуть, очікується, що буде найбільш продуктивним.
TMN

@TMN: Я відображав реальність того, що відбувається в команді з одним кваліфікованим / досвідченим хлопцем, а всі інші значно менш кваліфіковані. Без сумніву, досвідчений хлопець, якщо він кодує, буде найпродуктивнішим, і, як очікується, кодує. КОМАНДА буде найпродуктивнішою, якщо цього не зробити. У непросвіченій організації менеджери оцінюють окремі виступи, тому топ-хлопець виглядає погано, роблячи найкраще, - виконуючи КОМАНДУ, і отримує за це невелику винагороду. Краще повісити юніорів сухими і зробити себе чудовим.
mattnz

1

Зосередьтеся на спілкуванні у двох сферах.

Зробити це непросто, і це одна з причин, що ця робота важка. Якщо дотримання терміну означає функції скорочення, тоді перейдіть це. Єдине, чого ви намагаєтесь уникнути у всьому цьому, це швидкий код, щоб скласти термін. Це початок кінця кодової бази, яка не триватиме добре, і початок технічної заборгованості, яка задихається.

2) Міжкомандна комунікація. Налаштуйте офіційні практики, як рекомендує Брайан та інші. Переконайтесь, що ви регулярно зустрічаєтесь як команда, наприклад, раз на тиждень на додаток до щоденних скандалів. Слухайте повагу та довіру, слухаючи , ваш найважливіший інструмент. Не забудьте зосередитись на наданні допомоги. Уникайте негативної критики будь-якою ціною. У разі необхідності використовуйте позитивну критику та заохочення, наприклад, "що це здорово, коли тільки ви, можливо, хочете подумати, що це" X "- це не те, що нам потрібно, вам потрібно зробити X замість цього"


0

Що я зробив, це визначити здібних і розділити та перемогти. Я беру верхній 2 або 3 і роблю їх капітанами. Інші потім рівномірно розбиваються на команди, що слідують за капітанами, до їх власних маленьких команд.

Я даю капітанам шматки або модулі для виконання програми.

Капітани дають новачкам менші завдання з програмування або дослідження, пояснюючи себе, що вони роблять, щоб наставництво відбувалося під час занять.

Я намагаюся облаштувати кімнату, щоб усі перебували в одному відкритому просторі, але кожна команда має своє коло комп’ютерів. Мені подобається бути на відстані до всіх, щоб все швидко рухалося.

Це добре працює для приблизно 10-20 програмістів поки. Менші групи просто краще бути в одній групі, і я ще не працював з чимось більшим.


У Divide & Conquer є свої підводні камені. Я бачив, як це закінчилося, коли кожен підрозділ переосмислює колесо (погано) для подібних проблем, з якими стикається вся команда.
NWS

Так, якщо ви перебуваєте в окремих будинках, особливо тому я намагаюся утримувати всіх на відкритому просторі і регулярно ходити. Що я роблю, це будувати основні підписи API та встановлювати команди для їх створення, щоб вони все підключалися.
Джейсон Себрінг
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.