konto usunięte

Temat: TDD, testowanie i inne takie

Maciej R.:
Witam wszystkich,

Calkiem przypadkiem natknalem sie na dyskusje tutaj prowadzona i po przeczytaniu niektorych postow jestem wrecz zatrwozony

istote agile stanowią 4 zdania. na dobra sprawę to nawet nie są zdania. nie ma czym sie trworzyc.

oziomem
wiedzy na temat Agile'a/Scrum'a reprezentowanym przez wypowiadajace sie tutaj osoby, zwlaszcza te, ktore uwazaja sie za team liderow czy analitykow. Dlatego tez postanowilem zabrac glos i rzucic troche swiatla na pojecia, ktore wydaja sie byc dla niektorych czarna magia czy szamanizmem, a w grunice rzeczy sa banalnie proste, tylko zapewne nieumiejetnie zrozumiane.

Zacznijmy od tego skad w ogole czerpiecie informacje o Scrumie? Z wikipedii? Z ksiazki? Od kolegi? Byliscie na jakims szkoleniu ze Scruma? Pracowaliscie w Scumie jakis rozsadny okres czasu, powiedzmy, ze min. rok? Jesli tak, to w jakich rolach?

Nikt tutaj nie wydaje sie zdawac sobie sprawy po co tak naprawde Scrum jest wprowadzany i przez kogo. Otoz Scrum jest zwykle wprowadzany odgornie, przez management, bo to management musi widziec korzysci z jego wprowadzenia. A jakie to korzysci? Przede wszystkim TRANSPARENTNOSC! Inaczej przezroczystosc, widocznosc. Widocznosc czego? Postepu i problemow. Metodologia jest skonstruowana tak, zeby w kazdym momencie wiadomo bylo na czym sie stoi, a ewentualne przeszkody byly mozliwie najszybciej wykryte.

Polecam zapoznac sie np. z wykladem Kena Schwabera, zwanego jednym z "ojcow Scrum'a": http://www.youtube.com/watch?v=IyNPeTn8fpo
Zwlaszcza czesc od 13:34 do 15:06, gdzie mowi mniej wiecej o tym co napisalem powyzej.

Jezeli chodzi zas o TDD, to jego rozumienie jest zupelnie naturalne. Zanim chcesz cos napisac, musisz wiedziec jak to ma dzialac. Jezeli wiesz jak to dziala, to na zasadzie prostych przykladow z zadanym wejsciem, musisz wiedziec jakie jest oczekiwane wyjscie - i to jest juz test. Dlaczego wiec nie spisac najpierw tego testu, skoro jest juz on znany zanim rozpocznie sie implementacja? Takie podjescie wymusza bardzo dobra praktyke jaka jest programowanie przez prototypowanie, czy programowanie top-down, tylko z uzyciem interfejsow bez zadnej implementacji na poczatek.

Z TDD powiazane jest inne ciekawe, acz jeszcze mlode pojecie, executable specification, czyli tzw. wykonywalna specyfikacja. Widac, ze wiele jezykow dazy w tym celu - by stac sie rowniez meta-jezykami. W ten sposob, byc moze w niedalekiej przyszlosci, juz na etapie formulowania wymagan analitycy beda musieli programowac w meta-jezykach, co ma znacznie przyspieszyc przejscie od specyfikacji do implementacji. A w tym miejscu az prosi sie o uzycie TDD w postaci czegos w rodzaju "meta-testow akceptacyjnych". No ale to jeszcze poki co piesn przyszlosci.

To tyle ode mnie, bo nad kazdym z tematow mozna by sie duzo rozwodzic, a nie chce mi sie bawic w szkoleniowca, tylko wyeksponowac podstawowe bledy w pojmowaniu ideologii Scrum'a.
Jakub Zalas

Jakub Zalas Software Engineer,
Symfony Core
Contributor

Temat: TDD, testowanie i inne takie

@Jakub Wojt: niechcacy kliknalem na Twoja wypowiedz jako wartosciowa, niestety nie moge tego wycofac.

Mam dwa pytania:

czy kiedykolwiek pracowales w metodologi Agile?

czy kiedykolwiek programowales z podejsciem TDD?

Ja tak i stad wiem, ze bzdury wypisujesz.

konto usunięte

Temat: TDD, testowanie i inne takie

@Jakub Wojt: niechcacy kliknalem na Twoja wypowiedz jako wartosciowa, niestety nie moge tego wycofac.

Bóg tak chciał :)
Mam dwa pytania:

czy kiedykolwiek pracowales w metodologi Agile?

Tak, i to w nie byle jakiej bo w pełnym Scurm'ie (na prawdę stosowali się do zasad - w pewnym momencie zacząłem szukać źródeł ich co bardziej
absurdalnych rytuałów i okazało się że ich źródłem była właśnie ta metodyka).

Firma w której poznałem to "cudo" istnieje od 20 lat wytwarza soft na polski rynek, ma obszerne portfolio produktów i jest dobrze znana;

Do projektu trafiłem w związku z tym, że zbliżał się Dead Line a wykresy funkcjonalności planowanej (nie wiem, skąd ten wzięli) i zaimplementowanej
(Scrum pewnie jakoś taki wykres nazywa) z biegiem czasu, zamiast się do siebie zbliżać, coraz bardziej się rozjeżdżały tzn projekt miał poważne opóźnienia i coraz mniej czasu na ich nadrobienie.
Min. moja osoba miała tę tendencje zmienić.
czy kiedykolwiek programowales z podejsciem TDD?

Oczywiście. To był ten sam projekt gdzie stosowano Scruma.
I podobniej jak w przypadku Scrum'a, do zasad TDD podchodzono bardzo rygorystycznie.

Także przez kilka miesięcy poznawałem kombinację Scrum + TDD + MVVM w całej swej okazałości.
Ja tak i stad wiem, ze bzdury wypisujesz.

O, to chyba trochę się zdziwiłeś :)

Na prawdę chciałbym napisać że "Scrum i TDD" są super, ale było by to kłamstwem w konteście ww. projektu i nie mam na myśli swoich poglądów ale rzeczywistego efektu stosowania tych metodyk.

Jak już pisałem - firma bardzo rygorystycznie podchodziła do stosowania metodyk i miała doświadczony (w realizacji podobnych, ale mniejszych, projektów) i zmotywowany zespół.
Wg. Agile / Scrum powinno być "świetnie" a było "beznadziejnie".

Zostałem zatrudniony żeby "przyspieszyć implementację" bo projekt miał poważne opóźnienia.
Jak się okazało - problem projektu nie dotyczył ilości programistów a kompletnego chaosu jaki w nim panował.

Programiści robili sobie co chcieli (bez kontekstu w postaci wymaganej funkcjonalności) efektem czego był wzorzec arch. "big ball of mud",
wymaganej funkcjonalności nie było ponieważ powstawała ona w trakcie imlementacji. Efektem takij "analizy" były sprzeczności / niejasności których ilość rosła
w tempie wykładniczym do stopnia próby jej precyzowania. Właśnie z tych powodów uważam, że w najlepszym wypadku efektem projektu będzie "coś" czego nikt sie nie spodziewał. Tak działa "zwinność".

Jak już wcześniej pisałem - analizy / projektu architektury, harmonogramu implementacji nie tworzy się dla zabawy.
Bez tego po prostu nie można realizować dużych projektów i w tym konteście Scrum / TDD można traktować najwyżej jako kiepski żart.

No chyba że znowu jakieś bzdury wypisuję; może wiedza o tym, co (analiza) i jak chce (projekt, harmonogram) chce się zrobić nie jest rzeczą konieczną przy robieniu tego czegoś.

Może wystarczy mieć testy, sprinty, motywację i Scrum Mastera.... może właśnie to jest rozsądne ..

konto usunięte

Temat: TDD, testowanie i inne takie

Jakub Wojt:
Na prawdę chciałbym napisać że "Scrum i TDD" są super, ale było by to kłamstwem w konteście ww. projektu i nie mam na myśli swoich poglądów ale rzeczywistego efektu stosowania tych metodyk.
(ciach)
Jak już wcześniej pisałem - analizy / projektu architektury, harmonogramu implementacji nie tworzy się dla zabawy.
Bez tego po prostu nie można realizować dużych projektów i w tym konteście Scrum / TDD można traktować najwyżej jako kiepski żart.

Sukces danej metodyki prowadzenia projektu może zależeć od:
a) rodzaju biznesu w którym implementuje się projekt (patrz np. bank vs gamedev)
b) wykorzystywanej technologii (patrz np. Embedded C++ vs PHP)
c) dobrej woli uczestników projektu
d) i pewnie paru jeszcze rzeczy

Nie można chyba powiedzieć że ogólnie TDD jest "do kitu" tak samo jak nie można powiedzieć że ASM jest bee. Wszystko zależy od kontekstu.Piotr L. edytował(a) ten post dnia 09.12.12 o godzinie 11:57
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: TDD, testowanie i inne takie

Piotr L.:
Jakub Wojt:
Na prawdę chciałbym napisać że "Scrum i TDD" są super, ale było by to kłamstwem w konteście ww. projektu i nie mam na myśli swoich poglądów ale rzeczywistego efektu stosowania tych metodyk.
(ciach)
Jak już wcześniej pisałem - analizy / projektu architektury, harmonogramu implementacji nie tworzy się dla zabawy.
Bez tego po prostu nie można realizować dużych projektów i w tym konteście Scrum / TDD można traktować najwyżej jako kiepski żart.

Sukces danej metodyki prowadzenia projektu może zależeć od:
a) rodzaju biznesu w którym implementuje się projekt (patrz np. bank vs gamedev)
b) wykorzystywanej technologii (patrz np. Embedded C++ vs PHP)
c) dobrej woli uczestników projektu
d) i pewnie paru jeszcze rzeczy

Nie można chyba powiedzieć że ogólnie TDD jest "do kitu" tak samo jak nie można powiedzieć że ASM jest bee. Wszystko zależy od kontekstu.

Zapewne nikt rozsądny nie powie, że kontrola jakości jest zla, ale projekt składający się wyłącznie z kontroli jakości jest bez sensu...

Następna dyskusja:

Unit Testing i inne...




Wyślij zaproszenie do