Як вести проект розвитку без технічної експертизи


17

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

Тепер я опиняюся по той бік дзеркала. Я є провідним розробником жирного клієнта, який потрібно впровадити в C #, однак мій досвід полягає у створенні веб-додатків Java. Хоча я знаю, що можу використовувати шаблони дизайну та парадигми ОО на будь-якій мові, я втрачаю, коли мова йде про стандарти кодування, інструменти життєвого циклу проекту та процедури випуску / розповсюдження. Я не сумніваюся, що я можу підібрати основи протягом місяця-двох, але є певний досвід, який можна зібрати лише з часом.

Що мені робити, і як мені уникнути того, щоб стати керівником проекту, який я ненавидів, коли я розвивався?


12
щоб уникнути ненависті так, просто поговоріть із членами вашої команди. Говоріть регулярно, часто говоріть, говоріть 1: 1 "... Ваша винагорода за культуру здорових 1: 1 - це явна відсутність драматизму".
гнат

1
Яке ваше звання та ваша відповідальність саме за цю порцію? Ви прем'єр-міністр, старший розробник, ...?
NoChance

Вчіться у кращих ... youtube.com/watch?v=GjJCdCXFslY
jfrankcarr

1
Але серйозно, я писав цю серію статей деякий час тому, що вам можуть бути корисні: vbnotebookfor.net/2007/07/25/…
jfrankcarr

Відповіді:


19

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

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

Це стосується того, що ви ніколи не торкалися .NET раніше або ви найбільш досвідчений розробник в команді. Ваше завдання зараз - керувати, а не приймати технічні рішення.

Управління може, залежно від рівня кваліфікації ваших розробників, означає їх консультування, коли вони цього вимагають. "Ви заглянули в Spring.NET?" (зауважте, відсутність там інструкції) - ідеально добре сказати. Крім того, "Google навколо, подивіться, що робить інший світ, ми не вперше зіткнулися з цією проблемою".

У деяких аспектах, як досвідчений розробник Java, ви можете опинитися в кращому становищі, ніж більшість з них. Більшість фреймворків і технологій Java мають аналогічний еквівалент у .NET. Таким чином, вам не потрібно говорити "Ось найкраще використовувати", ви можете сказати: "Я використовував це в Java, ви знаєте .NET еквівалент?"

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


2
Правильно. Головне - бути готовим дозволити вашим технічним «зіркам» приймати рішення, які відрізняються від тих, які ви б прийняли. Якщо ви можете це зробити, то всі (крім, звичайно, вищого керівництва) будуть щасливими та продуктивними.
Даніель Р Хікс

"Отже, вам не потрібно говорити" Ось найкраще використовувати ", ви можете сказати:" Я використовував це в Java, ви знаєте .NET еквівалент? " У більшості випадків, якщо існує еквівалентний інструмент, він буде встановлений з префіксом "N", тому їх можна знайти самі.
Dan Neely

Майте на увазі, він позначає себе "провідним розробником", а не "керівником проекту". На мій досвід, це дві дуже різні речі.
Wonko the Sane

@WonkotheSane: Це правда, що ОП посилається на керівника проекту, керівника команди та розробника лідерів так, ніби вони все одно, і це заплутано. Але я взяв свою підказку з контексту, в якому вони використовуються.
пдр

@pdr - погодився, майже. Частина про "Я можу використовувати схеми дизайну та парадигми ОО" змушує мене трохи замислитися.
Wonko the Sane

6

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

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

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


4

Ви не вибрали свої навички кодування C #, і якщо ви з самого початку не будете писати код, не має значення, знаєте ви C # чи ні. Вам потрібно почати думати на більш високому рівні:

  • Які навички кожна людина з вашої команди приносить до столу?
  • Які компоненти мають вирішальне значення для успіху проекту?
  • Що ви повинні створити на додаток до фактичного коду? (Тести? Документація?)
  • Як ви збираєте вимоги, якщо цього ще не зробили?
  • Як ви та ваша команда підходитимете до проектування?
  • Ви знаєте , що маючи стандарт кодування є важливим, але ви можете розраховувати на вашу команду , щоб точно з'ясувати , який стандарт вони хочуть слідувати.
  • Як можна рано виявити проблеми?

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

У будь-якому випадку, навчіться бути ефективним, працюючи в C # якомога швидше. Просто пам’ятайте, що ваша роль полягає в тому, щоб проглянути повний синтаксис і деталі рамки і переглянути більшу картину.


2

Візьміть руки на підхід. Почніть із захоплення собі простого букваря C # та напишіть якийсь код. Спробуйте кілька основних речей, які б ви могли знати із зав'язаними очима іншою мовою.

Прочитайте про стиль програмування та конвенцію. У будь-якому випадку ви повинні знайти це частково у вашому ґрунтовці, але ви також можете використовувати такі продукти, як StyleCop та Resharper, щоб застосовувати правила стилю, які вам не знайомі. Це ефективно навчить вас дуже швидко робити речі загальноприйнятим способом, щоб уникнути проблем зі складанням вашого програмного забезпечення.

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

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


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

@MikeBrown Це справедливо лише в тому випадку, якщо посада є керівною. Усі посади керівників команди, які я займав, вимагали значного часу кодування, крім управління проектом, планування та інших обов'язків, яких ви очікуєте на цій посаді. Якби ОП заявила, що він повинен бути менеджером , то моя відповідь була б зовсім іншою.
S.Robins

Ти маєш рацію. Я припускав, що менеджер вважає, що це технологія, на яку він не мав досвіду. Зробіть редагування, і я скасую свою заявку :)
Майкл Браун

@MikeBrown Я не впевнений, що ти потребуєш редагувати. Я відповів на запитання ОП, виходячи з його власного твердження, що він повинен стати керівником проекту ... однак я трохи продовжую відповідь. :)
S.Robins

О, це не те, що я відчував, що вам потрібно редагувати ... просто, що ТАК не дозволив мені змінити свій голос без редагування :(
Майкл Браун

1

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


1

Це здається, що тут є кілька проблем.

Технологія, яка використовується в проекті, який ви ведете, і процес, що регулює розвиток цього проекту.

Ви керівник команди чи головний розробник? Провідний розробник також робить зовсім небагато дизайнерських та конструкторських робіт. Тож єдиний спосіб цього - просто збитись та вивчити нові технології .

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

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

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

Удачі!


0

Можливість з'являється раз у раз. Зроби це .. Я б сказав, спробуйте засвоїти ази C #. Отримайте підручник з Інтернету, спробуйте попрацювати над ним. спочатку було б важко вивчити нову концепцію, пізніше, коли перше завдання виконано, ви будете мати певну впевненість у цьому.

Подумайте позитивно, Спробуйте прийняти важке завдання, Налагодьте власний код і впевнений, що ви його освоїте.

Не втрачайте своїх можливостей.


0

Я думаю, якщо у вас є хороша група розробників .Net, в колективі є багато знань, до яких, можливо, потрібно скористатися, щоб розпочати роботу. Є багато подібності між Java та .Net, що те, що ви вже знаєте, може насправді застосовувати більше менш безпосередньо. Важливо знати, що важливо, щоб отримати право на цей проект та пов'язані з цим ризики. Спілкуйтеся зі своєю командою якомога частіше. Практика розробки програмного забезпечення розвивається протягом усього проекту, тому може бути важко мати «найкращу практику» на самому початку проекту.

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


-1

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

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

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

Завантажте їх робочий код. Читати.

З’ясуйте, які інструменти вони використовують. Використовуйте їх.

З’ясуйте, як створити та випустити проект з відкритим кодом. Побудуйте його та відпустіть.

Проект з відкритим кодом (із кількістю учасників) буде ілюструвати кращі практики.

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

Правда.

Навчіться у спільноті з відкритим кодом.


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

@ChristianP: Незважаючи на те, що існують проекти з відкритим вихідним кодом, які не є дуже зірними, легко знайти великі, які є досить хорошими. І знайти будь-який проект з відкритим кодом як приклад краще, ніж взагалі ніякого прикладу.
S.Lott

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