Czy zwinny jest rozwój lub zarządzanie?

9

Podczas debaty na temat tego, o co chodzi w Scrumie, stwierdziłem, że być może zupełnie nie zrozumiałem zwinności. Wydaje mi się, że Scrum (który z pewnością jest uważany za proces zwinny) polega na zarządzaniu funkcjami i sprintami oraz rolami i innymi rzeczami, nie mając nic wspólnego z TDD, programowaniem par, CI, refaktoryzacją i innymi technikami i praktykami skoncentrowanymi na programistach, które myślałem ( do teraz) są sercem zwinnym. Teraz mam trudności!

1) Czy Scrum jest niezależny od tego, czy programiści stosują zwinne praktyki?

2) Czy możesz wdrożyć Scrum w zespole, który nie korzysta z automatycznych testów? nie dokonuje refaktoryzacji lub nie stosuje zwinnych praktyk programistycznych?

Ashkan Kh. Nazary
źródło

Odpowiedzi:

19

Powszechnym błędem jest myślenie, że Scrum jest równy Agile.

Bycie zwinnym postępuje zgodnie z czterema zasadami Manifestu Zwinności . Scrum to proces zarządzania projektami zgodny z tymi zasadami, ale sam w sobie nie jest zwinny. XP (TDD, programowanie par) jest procesem programistycznym, również zgodnym z tymi zasadami i zgodnym ze Scrumem, ale nie jest zwinny. Ciągła integracja, ciągła dostawa, DevOps, wszystko zgodne z zasadami Agile.

Postępuj zgodnie z zasadami przede wszystkim. Wszystkie te zwroty są tylko metodologiami, które ludzie odkryli, pomagając im przestrzegać zasad. Ale główną częścią „bycia zwinnym” jest możliwość dostosowania procesów do woli, tam gdzie nie są zgodne z zasadami zwinności.

pdr
źródło
3
agilemanifesto.org/principles.html opracowuje manifest.
1
@ ashy_32bit: Żadne pytanie, na które nikt nie może odpowiedzieć, nie znając zespołu i projektu. Nie każdy zespół lub projekt skorzystałby na zwinności. Pracowałem jednak nad zespołem, który robił Scrum i CI i nic więcej (z zestawu zwinnych sztuczek) i działało to lepiej w tym przypadku niż robienie żadnej z tych rzeczy. Ale z czasem staraliśmy się poprawić naszą Zwinność.
pdr
1
+1 Dziękuję pdr, bez końca frustruje mnie to, że wszyscy mówią zwinny i oznacza scrum, co w końcu przesłania dobro rzeczywistych zasad zwinnych, ponieważ wszyscy myślą, że zwinny oznacza codzienne pojedynki i sprinty i nigdy nie dowiaduje się o manifeście.
Jimmy Hoffa,
1
@ ashy_32bit Powiedziałbym, że mistrz scrum pomoże zespołowi stać się bardziej rygorystycznym i uczuciowym, postępując zgodnie z dobrym procesem, ale doświadczony trener XP pomoże zespołowi stać się bardziej rygorystycznym i uczuciowym w pisaniu dobrego kodu. Na podstawie twojego opisu zespołu, zgaduję, że mogliby pomóc w pisaniu lepszego kodu, gdyby nigdy wcześniej nie pisali żadnych testów. Prawdopodobnie w tym przypadku nie piszą bardzo luźno powiązanego kodu ani nie zwracają uwagi na zasady projektowania itp. Przyznaję, że twój hipotetyczny zespół jest również wyraźnie kiepski w procesie.
Jimmy Hoffa,
1
Czy jestem jedynym, który uważa, że ​​„zwinny” nie powinien mieć dużej litery? Nie jestem po prostu gramatycznym pedantem - to ważne. Zrozum zwinność jako jakość: jeśli Twój zespół jest zwinny, jest elastyczny, elastyczny, metodyczny. Zawsze widzę zamieszanie, gdy mówią o „Agile” tak, jakby to była nazwa standardowego wzorca lub procesu, do którego muszą się stosować.
Tim
6

Czy Scrum jest niezależny od tego, czy programiści stosują zwinne praktyki?

Scrum to zestaw wskazówek, które zachęcają zespół do zwinności.

Czy potrafisz wdrożyć Scrum w zespole, który nie korzysta z automatycznych testów? nie dokonuje refaktoryzacji lub nie stosuje zwinnych praktyk programistycznych?

Bardzo trudne, ponieważ pod koniec każdego sprintu musisz mieć działający produkt. Jeśli musisz wykonać pełny ręczny test regresji, aby udowodnić, że działa, prawdopodobnie nie będzie to możliwe.

Tim
źródło
Krótkie i słodkie!
Kris Van Bael,
5

Alistair Cockburn (jeden z twórców ruchu Agile) mówi to o Crystal Clear (jeden aspekt jego metodologii Agile):

Crystal Clear można opisać słuchaczowi poziomu 3 następującymi słowami:

„Umieść 4-6 osób w pokoju ze stacjami roboczymi i tablicami i dostępem do użytkowników. Niech dostarczą działające, przetestowane oprogramowanie użytkownikom co miesiąc lub co dwa miesiące, a w przeciwnym razie zostaw je w spokoju. ”

Jest to definicja sprawnego, co prawda, doświadczonego personelu programistycznego, który wie, co robi i można mu ufać, że się do tego zabierze. Czy to oznacza, że musisz używać CI, TDD i programowania pary oraz wszystkich innych modnych rzeczy? Po prostu ... Nie.

Zwinność nie polega na przestrzeganiu zestawu procesów, ale na skuteczności. Co to oznacza dla Ciebie, zależy od Twojego zespołu i jego działania, co uznasz za przydatne. Jeśli TDD nie pomoże ci stworzyć działającego kodu, przestań słuchać mniejszych świateł, które krzyczą o nim w Internecie i nie używaj go! Jeśli programowanie w parach naprawdę pomaga twojej drużynie skoncentrować się i załatwić sprawy, zignoruj ​​każdego, kto mówi, że to strata czasu i zorganizuj swój zespół jak 3-nogowy wyścig w szkolnym dniu sportu.

Zwinnie działałem wiele lat temu, tak wielu, że nawet nie zdawaliśmy sobie sprawy, że działamy zwinnie - co miesiąc dostarczaliśmy iteracje produktu, cyklicznie naprawialiśmy błędy i regularnie dodawaliśmy nowe funkcje. Zrobiliśmy absolutnie zerowe testy jednostkowe, ponieważ takich rzeczy nie wynaleziono, a książka refaktoryzacji nie została napisana. Więc tak, absolutnie możesz robić zwinne bez żadnej z tak zwanych zwinnych praktyk.

Alistair mówi również o Kent Beck:

Zapytany o XP i pięć poziomów „Modelu dojrzałości zdolności” Instytutu Inżynierii Oprogramowania, odpowiedział trzema poziomami dojrzałości XP:

  1. Rób wszystko zgodnie z opisem.

  2. Po wykonaniu tej czynności eksperymentuj z różnymi zasadami.

  3. W końcu nie przejmuj się, czy robisz XP, czy nie.

W końcu nie przejmuj się, czy robisz XP, czy nie ... mądre słowa, które powinny przypominać ci, żebyś nie wpadł w tę pułapkę .

gbjbaanb
źródło
HAHA, że pułapka na dole jest przezabawna i tak prawdziwa. Dzięki za śmiech. Również +1 Nie mogę się więcej zgodzić. Niestety, cała technika tutaj opisana opiera się całkowicie na dobrych programistach (lub tych, którzy chcą być dobrzy) na początku. Wielu inżynierów nie jest zainteresowanych byciem dobrym, gdy bycie złym jest łatwiejsze. W rzeczywistości dotyczy to prawdopodobnie wielu ludzi, nie tylko inżynierów.
Jimmy Hoffa,
0

Scrum to smak zwinny, który jest zgodny ze specyficznym wzorcem, aby osiągnąć cele metodyki zwinnego rozwoju. Nie możesz podążać za Scrumem i nie być zwinnym, ale możesz być zwinny i nie podążać za Scrumem.

Scrum nie ma wpływu na stosowanie testów automatycznych, zwinny zwykle je faworyzuje, ale nie są one w żaden sposób wymagane. Refaktoryzacja powinna być celem zwinnym i Scrumem, ale często jest ignorowana. brak zamiaru refaktoryzacji nie jest tak zwinny.

Ryathal
źródło
0

Czy zwinny jest rozwój lub zarządzanie?

Agile to zestaw praktyk opracowywania oprogramowania, które spełniają wymagania rynku i szybko zmieniają się fazy - lub tak zwane przyspieszone dostarczanie . Tak więc, ogólnie rzecz biorąc, chodzi o elastyczne podejście do spełniania zmieniających się złożonych wymagań klienta poprzez dzielenie pracy w małych pomieszczeniach i zapewnianie funkcjonalności w szybkich iteracjach 2-4 tygodniowych.

Aby jednak osiągnąć tę elastyczność, zespół programistów musi przećwiczyć praktyki programowania zwinnego .

Opis z Wiki dotyczący tworzenia oprogramowania Agile :

Zwinne tworzenie oprogramowania to grupa metod opracowywania oprogramowania opartych na iteracyjnym i przyrostowym rozwoju, w których wymagania i rozwiązania ewoluują dzięki współpracy między samoorganizującymi się, wielofunkcyjnymi zespołami. Promuje planowanie adaptacyjne, ewolucyjny rozwój i dostarczanie, iteracyjne podejście czasowe oraz zachęca do szybkiej i elastycznej reakcji na zmiany. Jest to ramy koncepcyjne, które promują przewidywane interakcje w całym cyklu rozwoju.

wprowadź opis zdjęcia tutaj

Jusubow
źródło
0

Rzeczywiście, możesz używać scrum w projektach, które nie mają nic wspólnego z tworzeniem oprogramowania. Jest to metoda zarządzania projektami / zarządzania zespołem.

Rense
źródło
-2

1) NIE !!!! Scrum jest zwinny, co oznacza, że ​​zwinne praktyki deweloperów (TDD, programowanie par, CI, refaktoryzacja itp.) Są bardzo ważne dla wszystkich aspektów projektu Scrum. O wiele trudniej będzie ustalić tempo biegania zespołów, oszacować pracę, ustawić odpowiedni rozmiar sprintu itp., Jeśli nie stosujesz tych praktyk.

2) Tak, możesz wdrożyć Scrum w zespole, który nie przestrzega zwinnych praktyk, ale uważam, że to naprawdę ogranicza potencjał zespołu. Duża część tego, dlaczego Scrum / Agile odnosi tak duże sukcesy, to wzrost wydajności i jakości uzyskany dzięki praktykom programistycznym Agile, które są kluczowe w dostarczaniu pełnych funkcji od początku do końca podczas każdego sprintu.

Jeśli ktoś w twojej grupie próbuje cię przekonać, że praktyki deweloperskie Agile są stratą czasu, myślę, że powinieneś poświęcić trochę czasu, aby podkreślić, dlaczego praktyki te są zawsze stresowane przez Scruma, a także Agile jako całość. Naprawdę robią różnicę.

str8killinit
źródło
1
Proszę nie używać terminów takich jak „Scrum / Agile”, są one bardzo dalekie od terminów wymiennych, myślę, że o tym wiesz, ale nadal podtrzymujesz ideę, że są, kiedy używasz ich w ten sposób.
Jimmy Hoffa,
Scrum jest zwinny. Z małymi literami „a”. Zwinny to przymiotnik, a nie nazwa rzeczy. Poza tym myślę, że ta odpowiedź ma sens.
Tim
2
@Tim zwinny słowo to przymiotnik, ale w tym przypadku zwinny odnosi się do tytułu „Agile Software Development” zdefiniowanego na agilemanifesto.org i jako taki nie jest przymiotnikiem, ale rzeczownikiem. To moja skarga na ludzi, którzy nazywają Scruma „zwinnym”, ludzie myślą, że „Scrum jest zwinny”, a potem nigdy nie dowiadują się o manifestie zwinnym, od którego to słowa pochodzi cały ten zwinny „Zwinny”, i prawdziwa definicja „Zwinnego” . Odwoływanie się do rzeczy jako zwinnych przez przymiotnik jest po prostu dwuznaczne, manifest nie jest dwuznaczny, jest oparty na zasadach i konkretny.
Jimmy Hoffa,