Як переконати розробників почати використовувати перемикачі функції прапорця?


20

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

Який хороший спосіб переконати (і примусити) розробників почати використовувати перемикачі прапорців функції?

Більш детальна інформація про перемикання функцій прапора пояснюється у Питання: Як користуватися перемикачами прапорця функції , Питання: Що таке перемикання прапорців функції та дуже широко в статті Піта Ходжсона на цю тему в блозі Мартіна Фаулера .


Вузька версія для питання devops.stackexchange.com/questions/4/… .
Євгеній

1
Ой, я лише зараз бачу новий коментар (та оновлення). Після того, як я щойно розмістив нове запитання про них. Може бути, ви хочете опублікувати відповідь на моє нове запитання (де у вас є більше місця, щоб насправді пояснити ці речі)? Якщо це так, переконайтеся, що це не відповідь лише на посилання (я вірю, що ви знаєте, що це означає на сайтах SE, правда?).
Pierre.Vriens

Відповіді:


18

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

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

  • Знайдіть структуру перемикання функції. Керівництво / бізнес можуть бути більш прихильними до спроб чогось, що підтримується загальною системою
  • Почніть з малого. На пробній основі представіть тумблерну систему для функції, яка продемонструє її корисність.
  • Продемонструйте здатність тумблера робити тестування A / B. Увімкніть тумблер для підмножини веб-ферми, а потім збирайте показники поведінки. Продемонстровано, що невеликі відмінності в макеті сторінок мають величезний вплив на дохід для роздрібних програм (наприклад, Ebay, Amazon)

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

Про біт фреймворку є цікава OSS від Intuit під назвою Wasabi github.com/intuit/wasabi
Євген

Рекомендація книги щодо переконання інших розробників - Рушійні технічні зміни від Terrence Ryan
Liath

8

В ідеальному світі, я думаю, ти розгорнув нову збірку і здивуєш! НІЧОГО змін. Це тому, що всі ваші нові функції знаходяться за вимикачами, які вимикаються з вимиканням.

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

Тепер для вашої відповіді: як би ви хотіли працювати в команді, де виклик практично не є головним, і наші користувачі люблять нас, тому що наші сайти та послуги надійно стабільні?

Це команда, над якою я хочу працювати.

Ви можете перестати читати тут, якщо хочете.

Якщо помістити все за комутатор функції, схоже, це може призвести до коду спагетті всюди. Якщо ви використовуєте IoC і можете вибирати між vNow / vNext / vPrevious, це зводиться до підтримки вашої конфігурації. Так, більше перевірок, так більше класів (компонент V1, компонент V2, компонент V3 тощо), але у вас фактично є більш стабільна система? Як? vNext вибагливий? Поверніться назад до vNow за допомогою контрольної вежі. Був тиждень, і vNow має тонку помилку? Те саме - повернутися до vPrevious так само легко.

Ні клопоту, ні турбот, ні втраченого сну, ні стресу.

Це не мрія про трубу. Раніше я там працював. Бажаю, щоб я міг продати це моїй нинішній команді.


4

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

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

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


2

Розробники (і зазвичай менеджери з розробки) зазвичай шукають два результати, пов'язані з рамкою: простота управління та швидкість розгортання. Ви хочете відправити код швидше і простіше.

Надати докази того, що підхід працює; спробуйте створити невеликий POC, використовуючи прапорці функції порівняно зі старим способом. Тематичні дослідження менш важливі для тактичних людей (розробники / інженери), ніж стратегічні люди (середній менеджмент \ дизайнери продуктів).


0

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


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