Що трапилося з малюнком «Хірургічного колективу» з «Міфічного місяця людини»?


164

Роки тому, коли я читав «Міфічний чоловік-місяць», я знайшов багато речей, які я вже знав з інших джерел. Однак там були і нові речі, незважаючи на те, що книга була з 1975 року. Однією з них було:

Хірургічний колектив

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

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

Чому так?

  • Тоді хірургічна команда була навіть незвичною?
  • Або це було випробувано і не вдалося?
    • Якщо так, то як це не вдалося?
    • Якщо ні, то чому б ми не побачили цю схему, реалізовану в сучасних програмних проектах?

12
Я б сказав, що це може принести лише відповіді, засновані на думці. Я вважаю, що жоден «інженер-програміст» не хоче сприймати роль «підтримки». Вони хочуть, щоб їх вважали рівними для всіх інших у команді. Це може бути пов'язано з тим, що більшість розробників програмного забезпечення є надзвичайно молодими. У більшості команд немає нікого, хто міг би претендувати на вислугу років і вважатися "хірургом" команди.
Ейфорія

43
Потенційна проблема, яку я бачу, коли ви навмисно намагаєтесь організувати команду таким чином, - це правильно визначити, ким повинен бути хірург.
Барт ван Іґен Шенау

9
@Euphoric Не забувайте деяких менеджерів, які обманюють себе думкою, що вони вже мають свого програміста супер-убер-гуру-зірки-хірурга, тож навіщо для цього найчастіше брати всіх селян, які підтримують це? На жаль, я бачив свою частку мг, які не виявляли доказів розуміння розробки програмного забезпечення та його притаманних проблем, під час "керування" командами програмного забезпечення або багато іншого за їхніми барвистими таблицями excel, на жаль (зазвичай, хоча і не завжди, люди, близькі до виходу на пенсію ).
code_dredd

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

6
@alephzero: Це кілька смішних претензій. Де саме ви займалися операцією? Тут кількість лайна, яку ви називаєте "найкращою практикою", займає основну частину часу хірурга, і це дає нульову користь. Супер розумні люди [іронічно] намагаються все сильніше вдосконалити те, чого вони не розуміють, додаючи до цього чиновницькі лайно майже щотижня. Однак причини невдач, які ви згадуєте, однак не вирішені, навпаки. Майже всі збої пов’язані з недоліком сну, недостатньою освітою та завищеною оцінкою. Часто всі троє разом.
Деймон

Відповіді:


103

"Міфічний чоловік-місяць" вийшов у той рік, коли я розпочав навчання в коледжі, і, використовуючи нинішню просторічність, ОБОВ'ЯЗКОВО! :-) Те, що вам потрібно зрозуміти, - це різниця в тому, як програмне забезпечення було розроблено ТОГО проти ЗАРАЗ. Назад в день (тм) майже все кодування було зроблено спочатку на папері, потім було натиснуто на клавіші (ви здогадалися) на перфокарти, потім було прочитано, складено, зв’язано, виконано, отримано результати, і процес повторився. Час процесора було дорогимі обмежений ресурс, і ви не хотіли його витрачати. Дітто і так само дисковий простір, час накопичувача тощо тощо. Витратити ідеально хороший час процесора на компіляції, що призвело до (шоку і жаху!) ​​Помилок було ... ну, марною тратою ідеально хорошого часу на процесор. І це було в 1975 р. У той час, коли Фред Брукс розробляв свої ідеї, а час CPU від середини до кінця 1960-х був ще більшедорога, пам'ять / диск / все, що було навіть БІЛЬШЕ обмежене, тощо, і т.д. подання робочих місць, очікування (іноді години) результатів. Людина розробника Rockstar Dude повинна була писати КОД. Його легіон гуртів / діловодів / молодших розробників повинен був робити мирські речі.

Проблема полягала в тому, що протягом двох років виходу книги Брукса основні ідеї, що стояли за Хірургічним колективом, розпадалися:

  1. CRT-термінали та дискові файли почали замінювати клавіші та колоди карт. Час роботи на комп’ютері стало менш дорогим, кілька комп'ютерів стали доступними, а час виконання роботи різко скоротився. Коли я потрапив до коледжу (університет Майамі, Оксфорд, штат Огайо, клас 79 років, спасибі за запитання) добреОбертання роботи склало близько години. Протягом тижня фіналу - чотири години, а може, іноді і шість. (Ми змагалися за час процесора з купою комерційних компаній та університетів - і комерційні користувачі отримали першочергове значення). Протягом мого старшого року, коли в Майамі вийшли зі свого "спільного комп'ютера", влаштували власний IBM 370/145 в кампусі, і у мене був гарний міні-міні HP, на якому я працював, і він працював як станція RJE, і ми могли перетворити мейнфрейм. робочі місця протягом п'яти хвилин або менше. Тепер варто запустити свій код у HP, надіслати його від HP до мейнфрейму, згорнути великі пальці / викурити сигарету та отримати висновок задовго до того, як ви зможете закінчити перевірку свого коду.

  2. Основна передумова хірургічного колективу - ідея, що ви (або "менеджмент", Боже, допоможіть нам усім) можете ідентифікувати чувак The Rockstar Surgical Developer Dude. Насправді я сумніваюся, що це можливо. Там є Rockstar розробників, кожен знає , що це - дослідження показали відмінності в продуктивності між кращими і гіршими розробниками цілих 2000% - але , визначивши , що людина без них писати код в протягом тривалого періоду часушвидше за все неможливо. Єдиний спосіб дізнатися, чи є хтось розробником Rockstar, це змусити їх насправді розробити код - але якщо вони НЕ чувак Rockstar хірургічного розробника, вони будуть робити захоплюючі речі, такі як письмовий стіл - перевірка його коду, клацання клавіш на картки та ін. клацаючи ящики з перфорованими картками до відділу вступу на роботу, потім стоячи навколо, чекаючи результатів, щоб вони змогли повернути їх до містера Rockstar Surgical Developer Dude, замість того, щоб навчитися кодувати єдиний спосіб, який справді працює - написавши код, налагоджуючи код, і т. д. Back In The Day (тм) не було жодних конкурсів програмування, не було переповнення стека, у вас не було ПК, на якому ви могли б переходити писати код, коли вам здалося, не було алгоритмів книг для ідіотів - єдиний спосіб навчитися програмуванню - це піти в школу і поступити на щось, де вам доведеться трохи програмувати. Але програмуванняяк насправді, це не сприймалося серйозно, і вважалося, що це щось, чого люди не хочуть робити . На моєму першому курсі коледжу (SAN151 - Вступ до системного аналізу, доктор Том Шабер - дякую, Том :-) нам інструктор сказав, що "... ми просто повинні зіткнутися з тим, що нам доведеться витратити пару років як програмісти, перш ніж ми могли стати системними аналітиками ". «Два роки?», Подумав я. "Я ТІЛЬКИ ЗДОРОВ'Я ЗРОБИТИ ЦЕ ДВІ РОКИ?!?". Мене серйозно роздуло. На щастя, він помилявся, і я з тих пір кодував майже все. :-)

  3. Хірургічний колектив припускає, що програмісти є відносно рідкісним ресурсом. Насправді це пройшло ще кілька років, але з появою ПК на початку 80-х програмування стало чимось, до чого може втягнутися будь-який вундер. Ціна комп'ютерів почала падати, ціна інструментів розвитку почала падати, і все було град Турбо Паскаль - за сьогоднішніми мірками це було не так багато, але в той час це був повний Pascal IDE приблизно на 40 баксів, що було абсолютно горіхом! Тепер будь-хто може вступити в програмування - якщо ви могли дозволити собі комп’ютер, і коли IBM вирішила поставити PCjr (так, мій перший ПК був однією з найбільших помилок IBM :-) у продажу за 500 доларів, щоб позбутися цих індичок, готівки -спішні вундеркинди скрізь пропускали свої орендні платежі на місяць ("Ага, е, я знаю, але я, е ... зламав мою вувулу, і мені довелося перенести операцію і .. .уа ... так, на наступному тижні, жодних проблем, спасибі, чоловіче ...), і висмоктав їх за цінами продажу. Тоді витратили більше, ніж ми заплатили за комп’ютер на додатки, щоб зробити його корисним. ("Так, чоловіче, наступного тижня, точно, напевно ..." :-).

Мене дуже сумно - це те, що навіть сьогодні, якщо ви запитаєте людей, чи читали вони коли-небудь "Міфічний чоловік-місяць" чи розуміють його основний урок ("Якщо додавати ресурси до пізнього проекту, це стане пізніше"), вони дають вам пусту погляд - а потім приступайте до тих самих помилок, які були допущені Усі ці роки перед розробкою ОС / 360. Все старе знову нове ...: -}


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

1
Що в світі означає "ЗАРАЗ"? Чудова відповідь, до речі.
Уейн Конрад

5
@WayneConrad простомовний для величезного .
zzzzBov

1
Будучи вже системним програмістом IBM в цей період, було звичайною справою мати дуже щільно певні ролі в команді, за фахом певної частини ОС. Очікується, що людина в кожній з цих ролей буде знати або дізнаватися все, що там потрібно знати, і виконувати функції допоміжного персоналу будь-якого з інших експертів. Ми по суті склали хірургічну групу на одного співробітника, кожен зі своєю спеціальністю.
Джо Макмахон

1
У відповідь на ваш коментар про те, що повторюються одні й ті ж помилки, у статті Вікіпедії до книги є цитата автора, яка вам може сподобатися: Тенденція менеджерів повторювати такі помилки при розробці проекту призвела до того, що Брукс зупинився на тому, що його книга називається "Біблія інженерії програмного забезпечення", тому що "всі її цитують, деякі її читають, а кілька людей проходять повз неї".
Райан

87

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

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

Крос-функціональні команди також є найважливішим елементом Agile, але також поширеним поза межами Agile.

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

Аналогічно, роль системного адміністратора (не частина хірургічної команди Міллса, а частина типової міжфункціональної команди останніх років) застаріла такими поняттями, як DevOps (поглинаючи роль Sysadmin в ролі інженера-програмного забезпечення) , Платформа як послуга, Інфраструктура як послуга та Утилітні обчислення (виконуючи роль Sysadmin "чужою проблемою") або Інфраструктура як код (перетворення системного адміністрування в інженерію програмного забезпечення).

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

Нарешті, є деякі припущення, викладені в цій концепції, які застаріли. Наприклад, навіть якщо це не вказано прямо, команда створена таким чином, що лише одна людина в колективі (хірург) насправді має комп'ютер. Це, звичайно, тому, що на той момент, коли була написана стаття, навіть думка про те, що вся команда матиме один комп’ютер для себе, не кажучи вже про одну людину в команді, була розтяжкою. (Навіть у 1980 році, коли був випущений Smalltalk, однією з речей, що сприяли його відмові, було те, що система була створена таким чином, що кожен розробник і кожен користувач мав власний комп'ютер - зовсім немислимий на той час.)

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


1
Щодо другого до останнього абзацу, я думаю, що хірург повинен був працювати з ручкою та папером, і клерк був би одним членом команди, що має доступ до комп'ютера.
Барт ван Інген Шенау

15
"чи справді ви можете собі уявити, щоб платити штатному працівникові за друк вихідного коду та вручну його індексувати та подати?" Ні, але я точно можу уявити собі оплату штатного працівника за керування версіями та системами безперервного збирання, і насправді в будь-якій середній чи більшої компанії це норма. Насправді, керування вікі-файлами, системами управління документами тощо - це зовсім окрема, ще більша роль, яку зазвичай цілий час технічні автори платять за повний робочий день.
Miles Rout

9
"вся команда мала б один комп’ютер для себе ... була натяжкою" - на початку 1980-х органи могли мати міні-комп'ютер + термінальні системи, тому, хоча це був той самий комп'ютер, користувачі все одно мали б доступ до нього на рівних основу та можливість запускати власні програми (припускаючи гідну ізоляцію користувачів та безпеку).
Дай

2
Хоча комп'ютери були дорогими в 1975 році, клавіші були досить дешевими. Коли я вперше запрограмував основні рамки (не в 75, а в 77), ми випишемо код на папері, забиємо його на картки, доставимо його до калитки і періодично перевіряємо, чи не було роздруківки назад. (Час повороту може скласти 2 години для нас, а на деяких ділянках більше доби.) Службовець був би дуже корисним для всіх, крім першої з цих завдань. Я не бачив терміналів до 1979 року.
Теодор Норвелл

1
Re: Smalltalk - не тільки кожен розробник, і кожен користувач повинен мати власний комп'ютер, ці комп'ютери також повинні були бути потужними комп'ютерами з великою кількістю пам'яті та графічним інтерфейсом . Подумайте «робоча станція», а не «ПК». У оригінальних комп'ютерах IBM не було кінських сил для запуску Smalltalk. Покірний сором, на мою думку ...
Боб Джарвіс

20

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

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

Економічність співвідношення підтримки: інженер 8: 2 вже не має сенсу. Інженери повинні бути власною підтримкою. Сучасна людина з достатньою освітою та навичками, щоб бути ефективно приєднаною до команди розвитку, є надто дорогим, щоб не займатися своїм власним розвитком.

(Пов'язаний економічний термін - "захворювання витрат на сферу послуг".)


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

2
@RibaldEddie щодо чого? Якщо ви порівняєте робочу силу з витратами на життя, вона зменшується; година роботи може отримати більше їжі / житла, ніж могло б у 1969 році
k_g

3
@k_g добре, це залежить від місця розташування. Що стосується інфляції, то в більшості місць у США ви можете найняти розробника за менший розмір доларів, орієнтованих на інфляцію, ніж у 1969 році. і 10 к за пробіг програміста млина, який виконує основну частину роботи. У сьогоднішніх доларах, що 10k, це приблизно 65k. Сьогодні, коли більша частина бісів у вашій команді заробляє 65 тис. - це дуже хороша ціна.
RibaldEddie

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

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

13

Ці схеми мені дуже звучать як програмування Mob:

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

З http://codebetter.com/marcushammarberg/2013/08/06/mob-programming/

Основна концепція моб програмування проста: вся команда працює разом як команда разом над одним завданням. Тобто: одна команда - одна (активна) клавіатура - один екран (звичайно, проектор). Це так само, як робити програмування для повнокольорових пар.

Побачити це в дії тут: https://www.youtube.com/watch?v=dVqUcNKVbYg


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

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

Сюди прийшов сказати це; або різні форми самоорганізації команди.
Марцін

2
@BobJarvis Я не згоден. Я мав великий успіх, працюючи в командах інтровертів (і, думаю, деякі, що включали і екстравертів). Ключовим моментом є створення простору, де люди почуваються в безпеці та відкриті для внеску, і бажають на час розтягнути свої природні схильності на благо групи. Тиша Сьюзан Каїн була величезною допомогою для розуміння того, як добре працювати з різними темпераментами: ted.com/talks/susan_cain_the_power_of_introverts
Девід Карбоні

12

Ця модель команди знову згадується у програмі Rapid Development - приборкання диких програм програм Стіва МакКоннелла на сторінці 305. Там її називають командою головного програміста.

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

Інші посилання:

Бейкер, Ф. Террі. "Головний командний програміст з управління виробничим програмуванням", IBM Systems Journal, vol. 11, ні. 1, 1972, стор 56-73.

Бейкер, Ф. Террі та Харлан Д. Міллс. "Команди головного програміста". Дані, Том 19, Число 12 (грудень 1973 р.), Стор 58-61.


9

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

Останні дві команди, на яких я був, складалися з трьох-чотирьох людей, як правило, один старший (хірург), проміжний (пілот) та пара юніорів / спеціалістів. Деякі ролі в хірургічній команді, про які згадував Брукс, сьогодні виконуються майстрами Scrum та сисадмінами або постачальниками послуг хмари. Пам'ятайте, що контроль над джерелами ледь не існував у той час, не кажучи вже про щось таке потужне, як git.

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


1
так в основному, нічого з цього не сталося. +
gordy

1
@gordy так і ні. Ви помітите, що на прикладі Брука, ймовірно, менеджерам слід буде визначити, хто був у кожній ролі в команді, але в сучасній спритній концепції команда самоорганізовується. Тож ролі хірурга чи пілота випадають природним чином із того, як працює команда. Я думаю, що це ключова відмінність: самоорганізація та диктування компанії.
RibaldEddie

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

2
Висловлювання з програмного забезпечення Дао: #IV - Дао командної роботи: Хороше програмне забезпечення пишуть невеликі команди, що працюють швидко. Погане програмне забезпечення пишуть великі команди, що працюють повільно. Висновки: - Оптимальний розмір команди - 1; - Максимальне практичне значення для розміру команди - 3; - для розмірів команди> 3, (помилка) спілкування стає серйозною проблемою; - Для розміру команди> 6 завершення проекту стає серйозно порушеним. Завершення проекту в термін, ймовірно, у вікно. У таких випадках, як розумніші розробники використовуватимуть двері ... Так написано ... ( BWOOoooooonnnggggg !!! )
Боб Джарвіс

6

З HP вийшов папір, який запропонував щось подібне:

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

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

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


9
Частина, яка змушує мене посміхатися (?) - це річ "... кілька менеджерів ...". Одного менеджера більш ніж достатньо для зниження продуктивності. Кілька менеджерів можуть спонукати розробників до думок про самогубство (інтроверти) або про вбивство (екстроверти).
Боб Джарвіс

4
@BobJarvis - У мене було, в залежності від проекту, аж п’ять одночасних "менеджерів" з різними назвами. Ефект майже такий, як ви могли собі уявити.
Роб Кроуфорд

1
Очевидно, ти екстраверт. Отже ... захист від божевілля? Мексика? Або ... виправдане вбивство ..? :-)
Боб Джарвіс

Тому я мав п'ять начальників на одній компанії. Поки я там був, будь-яку проблему, чи то мою, чи чужу, я почув би це з 5 різних точок зору. Зазвичай я його аналізував до того часу, коли з'явився номер 2, і це було просто прикро чути про це більше разів.
Роберт Барон

Первісна ідея полягала не в тому, щоб "мати п'ять різних менеджерів, які намагаються втручатися", а надати, наприклад, "людину з користю для людини" та "людину з розвитку кар'єри" тощо. Я думаю, що декілька менеджерів працювали б, якби ви виставляли рахунок кожного відділу менеджера на основі як часто вони зверталися до інженера. Зробила б веселу відео-гру!
Чарльз Мерріам

2

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

  • Хірург: програміст
  • Копілот : парні програмісти , співробітники, інтернет-спільноти, такі як StackExchange або IRC
  • Адміністратор: роль, яку зазвичай займає менеджер програмного забезпечення
  • Редактор: IDE, що інтегрують генератори документації, такі як Javadoc або Doxygen; документація з наборів для розробки програмного забезпечення
  • Секретар: клієнт електронної пошти, інструменти для управління проектами, такі як трекер видачі та запити на виклик, компанії-чати та списки розсилки
  • Службовець програми: IDE, що зберігає інформацію про дизайн проекту, з доданою здатністю до коду рефактора; документація та приклади з наборів для розробки програмного забезпечення
  • Toolmith: вся спільнота з відкритим кодом
  • Тестер: негайно тестові набори та бібліотеки для тестування. Але звичайно необхідний окремий процес забезпечення якості для виробничого коду.
  • Мовний юрист: онлайн-документація, StackExchange

1

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

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

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


0

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

На мій досвід, філософія devOps про те, що кожна людина повинна бути здатна вирішувати будь-яке завдання, - це повернення до моделі розпушування свиней (не кажучи про те, що це погано, просто різне).


2
Це точно не модель DevOps.
RibaldEddie

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

1
@RibaldEddie Цікаво. Мій досвід роботи з групою DevOps в моїй компанії полягає в тому, що вони наймають лише розробників, і вони відповідають за все, починаючи з розробки продукту, тестування, документації, розгортання і т. Д. Слово "крос-функціональний" приходить на думку. Ну добре, з 2 голосами та видаленням голосу протягом 15 хвилин, я думаю, я буду триматися подалі від цього сайту.
Майк Оунсворт

1
Ага, тоді у нас є різні визначення поняття "крос-функціональний". Я використовую це для того, щоб кожен член команди міг виконувати кожне завдання - Джирас звичайно кидався між людьми, тому що вони закінчили спеціалізацію. Хтось, хто розробляє цю функцію, перевірить або задокументує наступну функцію. Це «DevOps», який я пережив.
Майк Оунсворт

1
@MikeOunsworth: це команда крос-функціоналів :-D
Jörg W Mittag

0

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

Як DevOps, я б автоматизував величезну кількість процесів і накладних витрат. Я б досліджував технології та інструменти, які б полегшили життя команді, всій команді, починаючи від розробників, ІТ-тестувальників ІТ, аж до управління. Моя роль полягала в розумінні процесу, так; але, тримаючи мої погляди на команду (власне людей), що використовує (страждає через) цей процес, я зміг перегнати його до того, щоб зробити його повністю прозорим, все одно отримуючи низку корисних даних, щоб отримати об'єктивне уявлення про це завжди невловима "велика картина".

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

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

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