364
Культурні коди: які типи програмістів є і як їх керувати
浜у 涓 蹇
Американський програміст Hank Rainwater працює в професії понад тридцять років. Коли він просувався менеджеру, він повинен підходити до колег і з'ясувати, як поліпшити свою продуктивність. В результаті він так глибоко в темі, що він написав книгу «Як скуштувати кішки». Керівництво для програмістів провідних інших програмістів. Про найбільш поширені типи кодерів і що очікувати від них.
Архітектор
Більшість керівників люблять цей тип програмістів, і дійсно, будь-яка така людина буде доведена, щоб стати цінним активом для вашої команди. Більшість архітекторів зосереджені на загальній структурі коду. Тексти пісень, а це означає: Вони думають з об'єктами, і їх найкращий друг є частиною білого паперу. Вирішуючи проблеми бізнесу, вони будують абстракції, аналізують системи, а потім приступають до кодування конкретних рішень. Не існує слів – все це дуже важливі елементи програмування, але вони недостатньо для складних завдань. Нерідко дуже розумні плани архітектора втілюються в такому загальному і незрозумілому коді, що є просто не люди, які можуть зрозуміти його і продовжити підбір. Індивідуальні особи, які здатні генерувати успішну ідею в своїй голові (і краще в Visio), а потім виконувати повну специфікацію в коді, таким чином стають єдиною учасниками процесу, є дуже рідкісними. Недолік архітекторів полягає в тому, що їх код часто служить тільки одним власником, і категорично відмовляється виконувати інші команди людей. Деякі архітектори дуже люблять ескізувати структуру коду, щоб пізніше перенести його до програмістів меншої кваліфікації. Іноді є деякі дуже дивні конструкції в коді, написаному архітекторами, наприклад, вікна з повідомленнями про переривання системи через помилки, з'являються тільки тому, що код повинен запустити як бібліотеку DLL на сервері.
Будівельник
Конструктивісти користуються процесом написання коду і його результатом. Вони не завжди турбуються з стратегічним плануванням, але той факт, що вони справляються з письмовим кодом швидко, і в більшості випадків помилки в ньому не виявляються навіть на стадії тестування альфа. Конструктивісти напишіть код на зиму, і тому їх логіку не завжди зрозуміло. Деякі конструктори відмінно підходять як з інтуїцією, так і стратегічним плануванням, тому код є природним розширенням їх мислення. Але якщо ви попросите конструктора зробити документацію, він відповідає, що код самодоповнений. Тим не менш, якщо ви кладемо трохи тиску на нього і зробите зрозуміло, що немає виходу без документації, він, ймовірно, погоджується його компілювати - і зробити це якісно.
Кількість зібрань, що конструкторські питання в день, навіть Microsoft заздрить. Відповідно, код їх зазвичай надійний. Тим не менш, як набряк (і цей процес неминучий), надійність випаровується, і конструктор починає гармонійно виглядати нові, «розміщені» рішення - тому що дуже важливо для нього бачити результат і бути впевненим, що він справився з поставленим завданням. Конструктивіст у поєднанні з архітектором має шанс стати великою командою. Якщо ви керуєте пошуком конструктора та архітектора в одній особі, розгляньте, що частка Ліону розв’язаних задач персоналу.
Мистецтво
По суті, мистецтво у співвідношенні не менше наук - це не дарма, що університети часто привезли обидві напрямки разом з однією структурою і називають її чимось схожим на «факультет ліберальних мистецтв і наук». Якщо немає художнього аспекту програмування, можливо, це принесе нам значно менш моральне задоволення. Митець, як тип програмістів, орієнтований на процес створення коду – передача комерційних вимог до програмних рішень та вміло зменшення об’єктів інтерфейсу користувача в одну елегантну структуру. Ми можемо самі зателефонувати одержувачу і узгодити зручний час. Недолік художника полягає в тому, що дуже часто він затримує кодування, намагаючись дізнатися, скільки рівних знаків можна встановити в одній лінії без порушення правильності результату оператора Boolean. З іншого боку, якщо сам програміст не культивує художника, результати своєї діяльності часто вичерпуються від реальності, втрачають свій «світло». Необхідно взяти від художника всі свої відмінні якості, а результат буде бомбою часу, яка обов'язково підірвати під пальцями користувачів. Здійснення деяких характеристик конструкторів і архітекторів, митців активно вимагають свого стилю.
Інженер
Вам сподобається інженери. Ці хлопці, як правило, купити всі види сторонніх фондів, писати десятки COM об'єктів і зібрати їх разом, тому вони відмінно працюють в версії 1,1 км Їх властивий тягу ускладнення є тільки очевидним, коли мова йде про версію 1.1. Програмування часто прирівнюється з програмною інженерією, і дійсно багато аспектів нашої професії підлягають цій методології. Але не можна давати інженерам карте бланш. У програмних продуктах, побудованих інженерними методами, немає нічого непередбачуваного — адже згідно класичного визначення, інженерія є науковими принципами, залученими до вирішення задач програмного забезпечення. Не боятися складнощів, але ті, які люблять ускладнити речі, небезпечні.
Не зроблю мене неправильно, я не збираюся кинути камінь в саду інженерів. Після того, як я працюю на комп'ютерному апараті протягом багатьох років. Але обладнання іноді при непарних питаннях програмного забезпечення, що робить його програмованим (тобто гнучким і багаторазовим). Будь-який апаратний пристрій, як правило, служить єдиною, добре визначеною метою, і це не прийнятно для програмного забезпечення.
Вчений.
Вчені - хлопчики і дівчата, які вважають себе прихильниками Babbage і Touring. Вони ніколи не кладуть інструкції GoTo у своєму коді. Релегування художньої складової програмування на фоні, вони роблять все відповідно до фундаментальних принципів комп’ютерної науки. І це зазвичай проблема. В той час як вони обробляється бездоганністю своєї роботи, Ваше основне занепокоєння як виконавчий директор, щоб розробити доброякісний продукт і доставити його терміном. Програми цього типу є дуже корисними, і коли мова йде про особливо складні завдання кодування, їх ідеї безцінні. Ви просто повинні переконатися, що педантрі не зважує практичних міркування. Інженери і вчені мають одну річ в цілому: вони люблять складати речі. Нерідко вони навіть здаються поклоніння бога складності (і навіть роблять жертви йому!).
Ліга
Ліхачі - це ті товари, які роблять все швидко. Забудьте коментари, відступи та заперечення для змінних, вони все одно керуються, щоб отримати речі, зроблені дуже швидко - і, швидше за все, до першого безперешкодного клопа, їх продукти працюють досить добре.
Іноді ця поведінка є типовою для молодих програмістів, які прагнуть вражати вас – вони безперечно вірять, що швидкість досягнення результату повністю відповідає вашим очікуванням. Додайте його: ми часто будуємо таку помилкову ідею в них, що означає, що якщо ми дбаємо по-різному, то не буде дробиць. У нас є власні боси, які проходять зустрічі, а потім повідомляють їх. Як ми досягаємо поставлених цілей. Пам'ятайте, як часто виникає питання про безцінність встановлення термінів для кодування до остаточного уточнення всіх вимог! Для цього вам потрібно використовувати. На жаль, це реальність, яка часто змушує нас робити обіцянки першими, а потім почати планування. Саме тому, ви прочитаєте книгу – вам потрібна порада про те, як вижити в динамічному, міцному та суворому світі розробки програмного забезпечення.
Як лікувати представників різних порід
В першу чергу учасники програми. Таким чином, в одній особі можуть бути більш-менш виражені всі перераховані характеристики. Деякі з них здаються виключити один одного, але насправді вони не є.
Всі люди, що суперечать, і ваші підлеглі не є винятком. Як хтось, хто керує цими чудесами природи, потрібно розуміння, мотивація і, перш за все, мудрість, яка розроблена тільки з досвідом. Думка про програмістів повинна бути заснована на тих границях їх персонажа, які блищать яскравіше, ніж інші у світлі нових починань і сліпих спалахів проектів, що підходять з ладу.
Повідомляємо, що у Вас є можливість набирати співробітників у відділ від чистого слату. Які породи краще поєднувати? Я думаю, що це найкраще, щоб вдарити баланс між архітекторами та конструкторами. Ці два породи дають найбільш популярні навички для процесу створення програмних продуктів - перший погляд стратегічно, другий добре орієнтований на деталі. З часом з’єднують митців. На жаль, швидше за все, можна вибрати групу ідеальних кандидатів. Ви повинні працювати з тим, що у вас є. Таким чином, успіх вашої взаємодії з людьми, які поєднують вищевказані характеристики, залежить від вашого розуміння, терпіння і здатності бути наставником для підлеглих – тобто на трьох універсальних якостей лідера.
Існує ще один тип особистості, який слід приділити особливу увагу. Я маю на увазі програмістів-початківців. Цей тип не погоджується з перерахованими породами, і краще описувати його відповідно до думки, що коубой формує про себе. Таким чином, коубой-програміст, як правило, дуже хороший на своєму ремесла, але це практично неможливо керувати ним. Совібі глибоко переконані, що вони можуть працювати тільки на проектах, які хочуть працювати на власних умовах, відповідно до власних планів і за допомогою виключно відповідних засобів. Такий програміст – це свого роду вовк (або, в термінології цієї книги, кота, яка проходить сама по собі). В залежності від того, що вам потрібно, і вашу готовність перенести свою ідіосинкратичну особистість, боби можуть робити або дива або ягняти. Поведінки повинні триматися в свідомості: вони не будуть частиною вашої команди в будь-яких обставинах. Варто вдатися до своїх послуг або в відчайдушних ситуаціях, або якщо розроблений проект повинен бути радикально відрізняється від всіх інших, і він буде супроводжуватися сторонніми фахівцями.
Чому програмісти об’єднують всі ці надзвичайно цікаві риси особистості? Я думаю, що це тому, що дуже природа розробника програмного забезпечення приваблює людей певного виду. У своєму класичному міфічному Man-Mouth, Frederick Brookss, що наш ремесла приносить задоволення людям з п'яти видів:
- Радість створення.
до Радість створення корисних продуктів для інших людей.
до Привабливість процесу замовлення головоломки об'єктів, що складаються з взаємозв'язаних динамічних елементів.
до Радість постійно набирає нові знання та розв’язання нестандартних завдань.
- Зацікавити роботу з продуктами, створеними виключно за допомогою застосування інтелектуальних зусиль людини, які не існують, розвивають і роблять абсолютно невиліковні речі.
Всі ці чинники, які здаються надзвичайно привабливими для людей, які ви ведете. З розумінням їх мотивацій (і ваш теж), ви можете серйозно зміцнити позицію як лідера.
Джерело: теоріяandpractice.ru