Що означає бути спритним?


17

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

У попередніх проектах ми проводили зустрічі з плануванням, потім визначали журнал зворотного продукту та розподіляли роботу розробникам у 2–3 тижневих спринтах. Кожного ранку у нас відбувалися зустрічі зі скаргами (які, здавалося, тривали по 1/2 години щоразу), і кожен розробник після цього продовжував. Навряд чи хтось написав тести, поки в кінці спринту і робота, яка не була завершена, не була додана до наступного спринту.

Розробники навряд чи розмовляли між собою, і в розробці не було залучено TDD. Насправді більшість розробників мали специфікацію на старті і просто зайнялися цим протягом 2 або 3 тижнів спринту. З клієнтом / власником акцій майже не було спілкування.

QA залучався зазвичай через кілька місяців, і тоді ми виявили відсутні вимоги, що ще більше збільшило обсяг роботи, яку нам довелося виконати. Очевидно, що циклу зворотного зв'язку не було.

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


4
Схоже, що це дублікат програмістів.stackexchange.com/
questions/15928/…

1
Так, я згоден з вами на 100%. Мій менеджер прочитав книгу про спритне і просто зайнявся (хоча дуже погано). Я використовував TDD на серверній стороні проекту, але інші не хотіли його вивчати чи бачити користь від цього. У нас був фреймворк (на стороні клієнта), який пройшов назавжди, і розробник постійно стверджував, що йому просто потрібно з цим (без втручання).
JD01

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

Відповіді:


27

Те, що ви описуєте, не є Agile за визначенням (Agile Manifesto) - це Водоспад із щоденними зустрічами зі статусом. Agile означає легко адаптуватися до змін, якщо немає інтерактивної петлі зворотного зв’язку з власником продукту і, таким чином, з покупцями, то які зміни відбуваються?

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

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

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

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

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


1
Дякую Джаррод за вашу відповідь. Чи повинен TDD бути окрім спритного? Було важко змусити розробників думати таким чином. Зрештою, як я вже згадував, вони зробили кілька тестів наприкінці (якщо вони пам'ятали) і сказали, що це TDD. Я згоден з усім, що ви сказали. Шлейф зворотного зв’язку був майже відсутнім, тому що мій менеджер вважав, що він заважає "рамкам", на які потрібні місяці та місяці. На той час ми вже зациклювались на впровадженні функціоналу, який не відповідав вимогам замовника.
JD01

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

2
Я почав робити багато TDD, але тепер перейшов на BDD, що більше відповідає потребам клієнтів, як тести прийняття. Хоча я вважаю, що TDD допомагав створювати конструкції, я б не бачив інакше, окрім надання тестів.
JD01

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

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

9

Джаррод дав хорошу відповідь (+1 до цього), і я хотів би трохи продовжити це.

Agile - це не лише швидкі збої та відгуки між власником продукту (замовником) та командою; йдеться про швидкий зворотний зв'язок між усіма зацікавленими сторонами. Бути по-справжньому спритним (а це прямо з маніфесту ) - це визнати, що процес існує лише для того, щоб допомогти розробникам у наданні кращого продукту. Люди вище процесу означають, що як тільки команда визнає, що ваш існуючий процес не працює, ви змінюєте його і змушуєте його працювати.

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

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

Це може зайняти трохи часу, але ...

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

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

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


1
до низового: докладно розробити? Я розім'яв кілька пір’я, бо сказав, що не слід сліпо приймати Scrum чи це щось інше?
DXM

2
так нерозумно. Я поставлю +1 для вашої детальної інформації.
Майкл Дюрант

1
+1 для " Ключовим для розуміння є те, що спритний не полягає в тому, щоб придумати новий процес виконання дій; це про постійні зміни та постійне пристосування до існуючих процесів / практик. "
Девід 'лисий імбир'

-2

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

Вони також повинні глибоко вивчити інженерні практики, які використовуються для підтримки конкретної обраної методології проекту.


2
Я заявив, що не думаю, що це відповідає на початкове запитання.
Брайан Оуклі

1
досить справедливо, я гадаю. Я звертався до початкової передумови ОП: "У нас є проект, про який всі кажуть, що ми будемо робити по-спритному, але я сумніваюся, що ми чітко зрозуміли, що таке спритний". Багато людей кажуть, що вони є, або що хочуть "зробити спритними" або "бути спритними", не розуміючи, що насправді є "Агільна філософія" або "Методології, які її підтримують".
StevenV

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

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