Чутлива щодо розвитку чи управління?


9

Під час дискусії з приводу того, що це за Scrum, я виявив, що, можливо, я повністю зрозумів спритну річ. Мені здається, що Scrum (який, безумовно, вважається Agile процесом) - це все, що стосується управління функціями та спринтами, ролями та іншим предметом, не маючи нічого спільного з TDD, парним програмуванням, CI, рефакторингом та іншими методиками та практиками, орієнтованими на розробників ( дотепер) - серце спритного. Зараз я стикаюся з труднощами!

1) Чи Scrum сприйнятливий до того, чи розробники виконують спритні практики?

2) Чи можете ви реалізувати Scrum в команді, яка не використовує автоматизовані тести? не виконує рефакторинг або не дотримується гнучкої практики програмування?

Відповіді:


19

Поширена помилка думати, що Scrum дорівнює Agile.

Бути Agile - це слідувати чотирма принципам Agile Manifesto . Scrum - це процес управління проектами, що відповідає цим принципам, але сам по собі не є спритним. XP (TDD, парне програмування) - це процес розробки, який також відповідає цим принципам і відповідає Scrum, але він не є Agile. Постійна інтеграція, безперервна доставка, DevOps - все це відповідає принципам Agile.

Дотримуйтесь принципів, перш за все. Усі ці голосні фрази - це лише методики, за якими люди, успішно знайдені, допомагають їм слідувати принципам. Але головна частина "бути спритним" - це можливість налаштувати ваші процеси за власним бажанням там, де вони не відповідають принципам Agile.


3
agilemanifesto.org/principles.html детально розробляє маніфест.

1
@ ashy_32bit: Ні на яке питання ніхто не може відповісти, не знаючи команди та проекту. Не кожна команда чи проект виграють від спритності. Однак я працював над командою, яка займалася Scrum і CI, і більше нічого (з Agile box трюків), і в цьому випадку це працювало краще, ніж робити нічого з цього. Але ми прагнули покращити свою спритність з часом.
пдр

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

1
@ ashy_32bit Я б сказав, що майстер розробки допоможе команді стати більш жорсткою та афективною у дотриманні хорошого процесу, але тренер ветерана XP допоможе команді стати більш жорсткою та афективною у написанні хорошого коду. Виходячи з вашого опису команди, я здогадуюсь, що вони могли б допомогти написати кращий код, якщо раніше ніколи не писали тестів. Вони, ймовірно, не пишуть дуже вільно зв'язаний код або звертають увагу на принципи дизайну тощо. Звісно, ​​ваша гіпотетична команда також явно погана в процесі.
Джиммі Хоффа

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

6

Чи Scrum агностичний щодо того, чи розробники виконують спритну практику?

Scrum - це набір вказівок, які спонукають команду бути спритною.

Чи можете ви реалізувати Scrum в команді, яка не використовує автоматизовані тести? не виконує рефакторинг або не дотримується гнучкої практики програмування?

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


Коротке і солодке!
Kris Van Bael

5

Алістер Коберн (один з творців руху Agile) говорить , що це про Crystal Clear (один аспект його методології Agile):

Crystal Clear може бути описаний слухачем рівня 3 такими словами:

“Помістіть 4-6 людей у ​​кімнату з робочими станціями та дошками та доступом до користувачів. Дозвольте їм доставляти користувачеві перевірене програмне забезпечення користувачам кожні один-два місяці, а в іншому випадку залишайте їх у спокої ».

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

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

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

Алістер також говорить про це Кента Бека:

На запитання про XP та п’ять рівнів „Модель зрілості можливостей Інституту програмного забезпечення” він відповів на три рівні зрілості XP:

  1. Робіть все так, як написано.

  2. Після цього експериментуйте з варіаціями правил.

  3. Зрештою, байдуже, чи ви робите XP чи ні.

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


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

0

Scrum - аромат спритного, що відповідає певній схемі для досягнення цілей методології спритного розвитку. Ви не можете слідувати за Scrum і не бути спритними, але ви можете бути спритними і не слідувати Scrum.

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


0

Чутлива щодо розвитку чи управління?

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

Однак, щоб досягти цієї гнучкості, команді розробників необхідно практикувати практичні програми Agile .

Опис від Wiki щодо розробки програмного забезпечення Agile :

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

введіть тут опис зображення


0

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


-2

1) НІ !!!! Scrum є спритним, тобто спритні практики розробки (TDD, парне програмування, CI, рефакторинг тощо) є дуже важливими для всіх аспектів проекту Scrum. Буде набагато складніше розібратися у швидкості виконання ваших команд, оцінці роботи, встановленні відповідного розміру спринту тощо, якщо ви не використовуєте ці практики.

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

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


1
Будь ласка, не використовуйте такі терміни, як "Scrum / Agile", вони дуже далекі від взаємозамінних термінів, я думаю, ви це знаєте, але ви все ще продовжуєте думку про те, що вони є, коли ви використовуєте їх таким чином.
Джиммі Хоффа

Scrum спритний. З малої літери "а". Agile - прикметник, а не назва речі. Крім того, я думаю, що ця відповідь має сенс.
Тім

2
@Tim agile слово є прикметником, але в цьому випадку Agile посилається на назву "Agile Software Development", як визначено на agilemanifesto.org, і як таке воно не є прикметником, а іменником. Це моя скарга на людей, які посилаються на scrum як на спритний, люди думають, що "Scrum є спритним", а потім ніколи не дізнаються про маніфест "agile", звідки почалася ця ціла "Agile" модна мова, і справжнє визначення "Agile" . Посилатися на речі як спритні за прикметником просто неоднозначно, маніфест неоднозначний, принциповий і конкретний.
Джиммі Хоффа
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.