Як створити "культ якості" [закрито]


21

DeMarco та Lister (Peopleware) пропонують створити "культ якості" в межах своєї команди програмування. Розчаровуючи, вони не підказують, як ви це робите!

У когось були думки, як це досягти?


1
Ваш "культ якості" буде настільки ефективним, наскільки дозволяє час. Коли начальник каже: «Це потрібно зробити до п’ятниці» , тоді ви змушені знижувати якість на швидкість. Очевидно, що це не те, що кодери віддають перевагу. В ідеалі ми віддаємо перевагу часу для забезпечення якості!
інвертувати

1
@WesleyWerner: Добре. Але я думаю, що «культ якості» також повинен охоплювати технічну заборгованість, що (врешті-решт) вирішить проблему начальника, яку ви згадуєте.
талонкс

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

Відповіді:


37

Мій досвід полягає в тому, що команди розробників (але взагалі будь-яка команда) складаються з 3 типів людей:

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

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

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

[Update2], що відображає відповідь Альба : ІМО немає необхідності, щоб розробники якості були чітко більшістю в команді (хоча це не завадить :-). Існує "поріг встановлення тренду" , над яким погляди та поведінка підгрупи можуть швидко стати "мейнстрімом" всередині спільноти , тому інші люди помічають і починають слідувати. Це ви можете бачити в роботі у широкому суспільстві весь час (наприклад, (не) звички до паління, здоров'я та дієти, примхи, органічна їжа). Моя дуже приблизна оцінка полягає в тому, що це може бути десь 25-30%, але це залежить від безлічі факторів. Ось де погані люди можуть сильно нашкодити. Навіть пара поганих людей у ​​вашій команді може значно підвищити цей поріг. [/ Update2]

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

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

  • Інша справа, щоб керівництво серйозно вислуховувало команду розробників щодо якості. DeMarco та Lister навіть згадують, що є компанії / відділи, де команди розробників мають право вето на те, що може йти на виробництво. Якщо вони вважають, що додаток ще не готове до прайм-тайму, вони можуть відкласти випуск незалежно від того, яке управління хотілося б. Зараз це важко для управління, але я можу уявити, що він формує командний дух і сильно передає повідомлення про те, що якість тут дійсно важлива, а не лише на рівні слів.

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

Оновлення

@Machado у своєму коментарі дав новий поворот у питанні (як мінімум, для мене):

Що я, як член команди, а не менеджер, можу зробити, щоб поліпшити якість коду своєї команди?

Кілька думок:

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

І останнє, але не менш важливе: знайдіть місце, де ви можете бути «топ-хлопцем» . Якщо ви зараз перебуваєте в "посередній" групі, прагнете розвивати себе - сподіваємось, що вищезгадані ідеї допоможуть у цьому. Але якщо у вашій нинішній команді ви потрапили у "нижчі верстви", рекомендую проаналізувати причини. Що вас демотивує? Погані умови праці? Команди? Управління? Тип роботи? І що це вас хвилює та цікавить? Можливо, вам доведеться поговорити зі своїми колегами та / або начальником про це. Або вам може знадобитися шукати кращу роботу - або навіть нову професію - де ви можете почати сяяти. Насправді не варто витрачати значну частину свого життя на незадовільну чи гнітючу діяльність.

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


4
Небезпечна порада. Що робити, якщо ОП належить до 2/3 групи? ;)

1
чудова відповідь, я ніколи про це не думав, але це має такий сенс.
Альб

9
@ Девелопер, якби вони були, вони б не читали DeMarco та Lister і не задавали тут питання.
Альб

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

1
@ Thorbjørn, відмінне запитання! Зізнаюся, я цього часу пропускав у більшості своїх робочих місць. Сподіваючись, що це не здасться занадто самозміцнюючим, я завжди шукав товаришів по команді, на які слід було б шукати і вчитися, але я їх рідко знаходив. Тому я звернувся до книг та Інтернету. Наскільки це можливо, я знайшов моделей для наслідування у Мартіна Фаулера, дядька Боб Мартіна та ін. А останнім часом у спільноті SO! Це приголомшливе місце для навчання. Також потужний "постачальник перевірки реальності". Покірний досвід, що розкриває межі та прогалини у знаннях, може бути важким, але для мене це дуже здорово.
Péter Török

2

Чудова відповідь Петера Тьорека, щоб підкреслити, що ви керуєте цим лише з більшістю хороших людей. Коли у вас є хороші люди, вам потрібно більше орієнтуватися на підхід до моркви, а не на палицю. Розширення можливостей розробників, нехай вони беруть на себе власність над проектами / завданнями та заохочують конкуренцію з точки зору якості. Хороші розробники будуть мотивовані вражати своїх однолітків.


+1 Добрі моменти щодо мотивації. Я, мабуть, не зрозумів щодо більшості; Я оновив свою відповідь, щоб уточнити.
Péter Török

2

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

Більш конкретно:

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

1

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

Ден Пінк розмовляв у TED про те, що нас мотивує. Поки він конкретно не посилається на це. Ієрархія потреб Маслоу чудово пояснює спостережуване явище. Поки роботодавець задовольняє перші дві потреби (тобто платити достатньо грошей, щоб гроші не були проблемою), все, що залишилося, - це Приналежність, Повага та Самоактуалізація.

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

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

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