Co to ten scrum, bo już nie wiem.

Co to ten scrum, bo już nie wiem.

Wątek przeniesiony 2021-06-05 16:46 z Inne języki programowania przez cerrato.

piotrpo
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 9 godzin
  • Postów:3277
4

@p_agon: Może być sensowny Scrum. Chwilowo odstawiając na bok, czy sensowny Scrum to nadal Scrum, ja widzę to tak:

Patrzymy jaki jest projekt. Jak pracuję w software housie i ktoś już podpisał umowę na dowiezienie określonego zakresu za określone pieniądze w określonym czasie, to po co mamy bawić się w szacowanie ile zajmie historyjka, trzeba ruszyć d.... odrzucić wszystko co wychodzi poza to za co klient płaci i zasuwać do celu. Robimy kanban boarda, ustalamy priorytety, jedziemy. Z "ceremonii" daily na początku projektu, żeby zobaczyć z kim pracujemy, wychwycić kto potrzebuje pomocy, bo utknął z jakimś zadaniem. Raz na 1-2 tygodnie krótki backlog refinement, żeby sprawdzić, czy zadania są zdefiniowane dostatecznie dobrze, czy jesteśmy w stanie podzielić je na historyjki, żeby później nie stać 3 dni z robotą, bo z zadania jest wyłącznie temat. Ktoś chce sobie szacować czy jesteśmy pod, czy nad kreską, to niech szacuje, ale nie jest to zadanie zespołu, tylko PM, SM czy PO. Zespół robi to co potrafi robić, czyli programuje.

Jeżeli mamy projekt pod agile, czyli biznes chce, żebyśmy dostarczyli narzędzie do czegoś tam, czy przygotowali jakąś usługę SaaS, to pracując w nowym zespole robimy na początek spotkanie, żeby każdy wiedział na czym polega projekt, co mamy dostarczyć, jaki jest sens biznesowy projektu, czy są jakieś deadline'y w najbliższym czasie (jeżeli występują). Mówimy sobie otwarcie - nie znamy się, nie pracowaliśmy razem, spróbujmy przez chwilę Scruma, bo nie mamy lepszych pomysłów, więc spróbujmy na początek tak jak Scrum proponuje. W tym miejscu potrzeba bardzo ogarniętego "adżail coacha", który po pierwsze wytłumaczy z czego składa się Scrum, jak, oraz co najważniejsze po co stosować zawarte w nim narzędzia. Uprzedzamy wszystkich, że będzie to wyglądać jak domowe przedszkole. Następnie co sprint robimy retro, na którym identyfikujemy najważniejsze problemy możliwe do rozwiązania w ramach zespołu. Jeżeli ktoś zgłasza, że jest za dużo spotkań, to zastanawiamy się, które z nich można usunąć, lub jak je ograniczyć. Przegadujemy również, czy poprzednie kroki odskramiające nie spowodowały jakichś problemów. Co ważne, nikt nie ma prawa użyć argumentu "scrum guide pisze, że coś tam trzeba". Wszystko co pada podczas takich spotkań musi być uargumentowane pod kątem tego jak zmiana pomoże w projekcie. Jak biznes czegoś wymaga, to też koncentrujemy się na tym wymaganiu. Nikt poza zespołem nie ma prawa mówić "jak" zespół ma robić coś czego się od niego oczekuje. Czyli jak zespół nie potrzebuje wyceny w story pointach, a jest w stanie dawać w miarę przewidywalne rezultaty, to nikomu nic do tego. Praktyczna rada - warto wprowadzać zmiany pojedynczo, ale często, żeby wiedzieć co przyniosło jaki skutek. Z mojego doświadczenia, po kilku miesiącach praktykowania takiego cyklu ze Scruma nie zostaje prawie nic, poza zewnętrznym interface zespołu.

edytowany 1x, ostatnio: piotrpo
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4706
5

@twoj_stary_pijany:

Dziwi mnie trochę, że tak ciśniesz scrum skoro sam pracowałeś w jakiejś patowersji scruma.

Jak pracowałem w tym konkretnym projekcie i jeszcze kilku następnych to akurat byłem wyznawcą scruma. Wiedziałem, że to akurat jest pseudo scrum od dnia 0. Ja przestałem SCRUMa cenić mocno dopiero jak trafiłem do takiego scrum by the book, gdzie już nie dało się uzasadnić gigantycznego marnotrawstwa czasu tym, że to nie jest prawdziwy komunizm, tylko patologia.

Kiedy u mnie architekt publicznie upokarzał na spotkaniu PO to go po prostu zgłosiłem,

W tym konkretnym projekcie też udało się wywalić (nawet 2) manadżerów niemieckich - poszły popdpierdolki (co ciekawe audyt był całkowicie przez niemców robiony, więc początkowo nie spodziewaliśmy się niczego dobrego).

Ale to wy robicie te estymaty, dlaczego nie estymowaliście tego na np. 4 dni?

Pisałem, że to był pseudo - pato scrum - nic tam nie estymowaliśmy. Estymaty były zrobione rok wcześniej przez inny zespół, przy innych założeniach. Myśmy mogli tylko się zgadzać i commitować.
Tak po prawdzie dość szybko udało się wykorzystać dziurę w systemie, architekci mieli prawo zmieniać estymaty... ktoś nieopatrznie dodał mnie do grupy architektów, więc zmieniałem kolegom estymaty zadań tuż przed tym jak je dostali i tylko ja sie musiałem z tego tłumaczyć. Jako architekt mogłem naturalnie udawać głupiego. Słaba znajomość niemieckiego powodowała, że w zasadzie to nawet niewiele musiałem udawać :-) Manadżer z Niemiec szybko dość zmęczył się tłumaczeniem mi, że rozwalam pracę zespołu i przez moje estymaty nie zdążymy zrobić projektu, bo termin i bez tego jest napięty.

Co do szacunku. Chodzi mi o to, że podstawową zaletą szacowania jest to, że trwa ono mniej niż wykonanie zadania (np, zadanie na 2 dni szacujesz w 15 minut, a nie w 4 i pół dnia). Oczywisty skutek uboczny jest taki, że szacunki mogą nie zgadzać się z realizacją. Im mniej czasu trwa szacowanie tym rozrzut większy. Dlatego też pretensje o to, że jakieś zadanie nie zgadza się z szacowaniem to brak znajomości koncepcji szacowania.
Oczywiście, w Twoim przypadku rozumiem, że dostarczyłeś informacje i przekonywałeś, że kolegów szacują ze złymi założeniami - jeśli tego nie przyjęli to problem leży w komunikacji, albo oni nie słuchają, albo Ty nie umiałes przekazać.


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 2x, ostatnio: jarekr000000
piotrpo
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 9 godzin
  • Postów:3277
1
jarekr000000 napisał(a):

Pisałem, że to był pseudo - pato scrum - nic tam nie estymowaliśmy. Estymaty były zrobione rok wcześniej przez inny zespół, przy innych założeniach.
Myśmy mogli tylko się zgadzać i commitować.

Esencja pato scruma.

Manadżer z Niemiec szybko dość zmęczył się tłumaczeniem mi, że rozwalam pracę zespołu i przez moje estymaty nie zdążymy zrobić projektu, bo termin i bez tego jest napięty.

Na pierwszym wykładzie ze statystyki miałem podany praktycznie identyczny przykład - skoro istnieje dodatnia korelacja pomiędzy śmiertelnością a liczbą łóżek w szpitalach, to jak zlikwidujemy szpitale, to ludzie przestaną umierać. Pytanie po co komu te estymaty, skoro i tak albo będzie dowiezione na czas, albo nie.

Co do szacunku. Chodzi mi o to, że podstawową zaletą szacowania jest to, że trwa ono mniej niż wykonanie zadania (np, zadanie na 2 dni szacujesz w 15 minut, a nie w 4 i pół dnia). Oczywisty skutek uboczny jest taki, że szacunki mogą nie zgadzać się z realizacją. Im mniej czasu trwa szacowanie tym rozrzut większy. Dlatego też pretensje o to, że jakieś zadanie nie zgadza się z szacowaniem to brak znajomości koncepcji szacowania.

Szacowanie pracy w SD jest obarczone z zasady dużym błędem. Nawet jak zrobisz ten szacunek najdokładniej jak się da, to i tak się rozjedzie w realizacji, bo ktoś musi coś doczytać, komuś zdechł chomik itp. Dlatego nie warto poświęcać czasu na dokładne szacowanie. Sens tej pracy widzę w podziale dużych tasków na mniejsze, przy okazji przegadanie co trzeba zrobić, jaki jest dobry sposób wykonania zadania. Jak zespół nie jest w stanie rozbić ficzera na taski, to nie jest w stanie go zaimplementować. Później jest już łatwo - wg. mnie wystarczy policzyć takie taski i jest to równie skuteczny sposób estymowania jak jakies tam scrum pokery. Na poziomie powyżej zespołu, tak jak napisałem, lepiej mieć listę zadań na 2 lata do przodu i narysować sobie 2 kreski na burndown charcie projektu i masz pesymistyczny, optymistyczny i prawdopodobny czas zakończenia wszystkiego, oparty na rzeczywistej, zakończonej pracy a nie "mi się wydaje, że to będzie proste".

FA
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 3 lata
  • Postów:3
0
somekind napisał(a):

Scrum wręcz upośledza komunikację, bo sprawia, że nie ma sensu proszenie o pomoc w trakcie dnia pracy, trzeba czekać na daily, nie można zgłaszać problemów w momencie ich wystąpienia, trzeba czekać na retro.

Skąd to wziąłeś? :D Czyli jak jest krytyk to PO grzecznie czeka na Daily by zgłosić potrzebę jego zrobienia? :D

somekind napisał(a):

I to jest właśnie chyba najpiękniejsze. Bo w praktyce, to robienie fundamentów jednego pomieszczenia to robota dla jednej osoby. Dwie wchodzą sobie w drogę i nawzajem przeszkadzają, więc w efekcie robią dwa razy dłużej i się nie wyrabiają na czas. Ale najważniejsze, że były zgodne z religią.

No w praktyce to jest team work. W czwartek skończyłem zalewać strop piwnicy. Budowa trwa od maja. A fundamenty robiliśmy we 4 osoby. I jak ja skończyłem spiżarkę to poszedłem do kuchni :P

p_agon napisał(a):

Im dłużej o tym czytam tym mniej wiem. Scrum je programski okvir procesa, koji se koristi za upravljanje kompleksnim razvojem. Scrum nije metoda ili tehnika razvoja sooftware-a

Wszystko co trzeba zrobić wpierw ląduje w Backlogu. Później tworzone są sprinty, najczęściej 2 tygodnie. Delegowanie zadan, dodanie priorytetow, ogolnie Jira mocno. Problemy sa opisywane na "stand-upach". Zarządza tym wszystkim SM. Cyklicznosc procesu pozwala na wypracowanie lepszych schematow dzialan. Stand-upy pomagaja w komunikacji w zespole. Tyle?

Nie. Masz dwa Backlogi. Za Backlog Produktu odpowiada PO, to jest jego rzecz. Backlog Sprintu to już są rzeczy wrzucone na Planningu i to już należy do zespołu. Nie ma tu z punktu widzenia managementu delegowania zadań. Zespół sam się nimi dzieli. Nie ma standupów tak technicznie, tylko Daily Scrum. Nie wiem czemu się utarło że ma być na stojąco (tzn. cel z XP znam, aby było zwiężle ;). Ja prowadziłem Daily i na leżąco. Sprinty są różne w różnych zespołach, ramy mówią o max miesiącu. Ja osobiście pracowałem w 1, 2, 3 i 4 tygodniowych. Scrum to ramy, takie minimum. Reszte sobie wypełniasz stosując różne inne rzeczy ze świata agile, z innych metodyk czy wypracowanych rzeczy przez lata :)


Scrum Master z kilkuletnim doświadczeniem.
Lubię kodzić, ale równie mocno lubię pracować z ludźmi jako Scrum Master.
Przy czym nie jestem kapłanem, wyznawcą, nie odprawiam czarów, nie organizuje ceremonii i nie latam po biurowcu na kolorowych karteczkach.
Charles_Ray
@Fandarel: +1234 bardzo dojrzałe i zwinne podejście - jestem pod wrażeniem :) @somekind: fundamentem zwinności (i Scruma nawet) jest inspekcja i adaptacja. Wszystko robimy „w jakimś celu”, jeśli nie daje wartości to zmieniamy to. To jest engine zwinności.
KamilAdam
@Charles_Ray: Ale przecież Scruma nie można zmieniać bo po zmianach to nie będzie już Scrum? Tak przynajmniej słyszałem wielokrotnie
Charles_Ray
Czego konkretnie nie można zmieniać i dlaczego chciałbyś to zmienić? Ja jestem zdania, że możemy zmienić wszystko, o ile poniesiemy tego konsekwencje.
somekind
@Charles_Ray: fundamentem zwinności (i Scruma nawet) jest inspekcja i adaptacja - agile owszem, scrum koło agile nawet nie leżał, więc w przypadku praktycznych implementacji tej patomedotyki nie jest to prawdą. Popracuj trochę w sofware housach, to zrozumiesz, że scrum w praktyce to zupełnie co innego niż w reklamach.
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:3 dni
  • Lokalizacja:Wrocław
1
Fandarel napisał(a):

Skąd to wziąłeś? :D Czyli jak jest krytyk to PO grzecznie czeka na Daily by zgłosić potrzebę jego zrobienia? :D

Jaki krytyk? Żeby mogło do niego dojść, to system musiałby najpierw trafić na produkcję. Scrum generalnie jest stosowany do projektów w fazie radosnego klepania do szuflady.

No w praktyce to jest team work. W czwartek skończyłem zalewać strop piwnicy. Budowa trwa od maja. A fundamenty robiliśmy we 4 osoby. I jak ja skończyłem spiżarkę to poszedłem do kuchni :P

Mam wrażenie, że w ogóle nie przeczytałeś, co napisałem. Mowa nie była o pracy zespołowej, tylko o wzajemnym przeszkadzaniu sobie, np. poprzez generowanie zbędnych merge conflictów albo zbędnego oczekiwania aż kolega zaimplementuje kawałek kodu, który jest Ci potrzebny w Twoim tasku.


Po dopracowaniu rozwiązania każdy będzie mógł założyć własny drzewiasty wątek.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)