konto usunięte
Temat: TDD, testowanie i inne takie
Jarek Żeliński:
po drugie w dobrym projekcie wymagania nie są przyjmowane od usera "na pałę" (Agile?) a "opracowywane" przez analityka ;)
No tak, to bardzo ważna rola w projekcie ;)
konto usunięte
Jarek Żeliński:
po drugie w dobrym projekcie wymagania nie są przyjmowane od usera "na pałę" (Agile?) a "opracowywane" przez analityka ;)
konto usunięte
A dlaczego nie tak ?:
1. wymagania na interfejs (i na testy tego interfejsu)
2. implementacja testów / funkcjonalności w dowolnej kolejności
3. testy / akceptacja (lub jej brak) przekazanego kodu.
Kolejność test / implementacja nie ma znaczenia. Ważny jest fakt przeprowadzenia testów.
Zauważ Jarku, że Twój przykład zakłada pewną rzecz - stałość funkcjonalności i interfejsów. TDD powstało (jak każda metoda agile) w celu "radzenia sobie" z niestałością wymagań (ja to wolę nazywać "niekompetencją ludzi 'na przedzie' ").
Interfejs zawsze może się zmienić w trakcie refaktoryzacji...
co do kolejności trudno z tym polemizować, ale dodaj, że w trwającym cyklu życia produktu, powinien być (interfejs) kompatybilny wstecz i wiele Ci się wyjaśni...
po drugie w dobrym projekcie wymagania nie są przyjmowane od usera "na pałę" (Agile?) a "opracowywane" przez analityka ;)
Jarosław
Żeliński
Analityk i
Projektant Systemów
co do kolejności trudno z tym polemizować, ale dodaj, że w trwającym cyklu życia produktu, powinien być (interfejs) kompatybilny wstecz i wiele Ci się wyjaśni...
można prosić o rozwinięcie myśli ?
konto usunięte
Jakub Wojt:Skoro kolejność nie ma znaczenia, to dlaczego tak bardzo przeszkadza Ci TDD? W końcu chodzi "jedynie" o kolejność:)
Kolejność test / implementacja nie ma znaczenia. Ważny jest fakt przeprowadzenia testów.
Zauważ Jarku, że Twój przykład zakłada pewną rzecz - stałość funkcjonalności i interfejsów. TDD powstało (jak każda metoda agile) w celu "radzenia sobie" z niestałością wymagań (ja to wolę nazywać "niekompetencją ludzi 'na przedzie' ").Skoro kolejność nie ma znaczenia, to dlaczego osoby stosujące TDD nazywasz niekompetentnymi? I zaznaczam, że chodzi mi jedynie o TDD.
Interfejs zawsze może się zmienić w trakcie refaktoryzacji...Której też nie uważasz za dobrą praktykę:)
Krzysztof T. Software maker
Michał Wachowski:
...
Jeszcze nie miałem okazji pracować z porządnym agile.
W większości firm (z jakimi miałem styk), każdy jest rzucony samopas z ogólnymi wytycznymi (na ogół niewiele mówiącymi), a agile sprowadza się do tego, że klient jest dopytywany gdy trzeba :D
Rafał Korszuń co-owner @ Kleder
Jakub Wojt:
Agile to takie ładne nazwanie podejścia "na pałę" ... :)
Agile to taka metodyka "dla ludzi" a nie dla "efektów", z resztą jaki normalny człowiek wysnułby jakiekolwiek praktyczne wnioski z tych czterech, (http://agilemanifesto.org/) śmierdzących zen i new age, zdań ?
Metodyka na podstawie czterech zdań ...
a może na podstawie jednego...albo braku jakiejkolwiek precyzyjnie przekazanej informacji.
konto usunięte
Jarek Żeliński:
co do kolejności trudno z tym polemizować, ale dodaj, że w trwającym cyklu życia produktu, powinien być (interfejs) kompatybilny wstecz i wiele Ci się wyjaśni...
można prosić o rozwinięcie myśli ?
to znaczy, że mimo rozwoju "myśli i systemu" warto by 'stare klasy" też miało z kim i jak pogadać....
Jarosław
Żeliński
Analityk i
Projektant Systemów
Jakub Wojt:
Jarek Żeliński:
co do kolejności trudno z tym polemizować, ale dodaj, że w trwającym cyklu życia produktu, powinien być (interfejs) kompatybilny wstecz i wiele Ci się wyjaśni...
można prosić o rozwinięcie myśli ?
to znaczy, że mimo rozwoju "myśli i systemu" warto by 'stare klasy" też miało z kim i jak pogadać....
co ma wspólnego "kompatybilność interfejsów" z "kolejnością pisania testów" ?
konto usunięte
Jakub Wojt:Skoro kolejność nie ma znaczenia, to dlaczego tak bardzo przeszkadza Ci TDD? W końcu chodzi "jedynie" o kolejność:)
Kolejność test / implementacja nie ma znaczenia. Ważny jest fakt przeprowadzenia testów.
Zauważ Jarku, że Twój przykład zakłada pewną rzecz - stałość funkcjonalności i interfejsów. TDD powstało (jak każda metoda agile) w celu "radzenia sobie" z niestałością wymagań (ja to wolę nazywać "niekompetencją ludzi 'na przedzie' ").Skoro kolejność nie ma znaczenia, to dlaczego osoby stosujące TDD nazywasz niekompetentnymi? I zaznaczam, że chodzi mi jedynie o TDD.
Interfejs zawsze może się zmienić w trakcie refaktoryzacji...Której też nie uważasz za dobrą praktykę:)
konto usunięte
Jeszcze nie miałem okazji pracować z porządnym agile.
W większości firm (z jakimi miałem styk), każdy jest rzucony samopas z ogólnymi wytycznymi (na ogół niewiele mówiącymi), a agile sprowadza się do tego, że klient jest dopytywany gdy trzeba :D
Ogólnie agile się chyba trochę pogubiło, albo pogubiło się raczej rozumienie Agile.
konto usunięte
Rafał Korszuń:
Jakub Wojt:
Agile to takie ładne nazwanie podejścia "na pałę" ... :)
Agile to taka metodyka "dla ludzi" a nie dla "efektów", z resztą jaki normalny człowiek wysnułby jakiekolwiek praktyczne wnioski z tych czterech, (http://agilemanifesto.org/) śmierdzących zen i new age, zdań ?
Metodyka na podstawie czterech zdań ...
a może na podstawie jednego...albo braku jakiejkolwiek precyzyjnie przekazanej informacji.
Hmm Agile to nie metodyka.
to dosyć dobrze opisuje czym jest agile http://agilescout.com/agile-is-not-a-methodology/
konto usunięte
co do kolejności trudno z tym polemizować, ale dodaj, że w trwającym cyklu życia produktu, powinien być (interfejs) kompatybilny wstecz i wiele Ci się wyjaśni...
można prosić o rozwinięcie myśli ?
to znaczy, że mimo rozwoju "myśli i systemu" warto by 'stare klasy" też miało z kim i jak pogadać....
co ma wspólnego "kompatybilność interfejsów" z "kolejnością pisania testów" ?
właśnie kolejność nie koniecznie, fakt ich istnienia tak...
Jarosław
Żeliński
Analityk i
Projektant Systemów
Jakub Wojt:
czy ta znaczy "rzeczy należy testować" ?
konto usunięte
Jakub Wojt:I co z tego? Ich sprawa. To jest tak, jak z IDE, jeden woli A, drugi B, ale czy to jakiś problem?Skoro kolejność nie ma znaczenia, to dlaczego tak bardzo przeszkadza Ci TDD? W końcu chodzi "jedynie" o kolejność:)bo dla pewnych ludzi ta kolejność ma wielkie znaczenie :)
Możesz rozwinąć myśl, bo nie za bardzo rozumiem?Skoro kolejność nie ma znaczenia, to dlaczego osoby stosujące TDD nazywasz niekompetentnymi? I zaznaczam, że chodzi mi jedynie o TDD.Ponieważ swoje "kompetencje" próbują oprzeć na rzeczach które nie mają znaczenia.
Interfejs oznacza "stałość". "Nie ważne, co się dzieje w 'bebechach', ważne, że interfejs pozostaje niezmienny".Martin Fowler pisał kiedyś o interfejsach publicznych i opublikowanych.
Krzysztof T. Software maker
Jakub Wojt:
Jeszcze nie miałem okazji pracować z porządnym agile.
W większości firm (z jakimi miałem styk), każdy jest rzucony samopas z ogólnymi wytycznymi (na ogół niewiele mówiącymi), a agile sprowadza się do tego, że klient jest dopytywany gdy trzeba :D
Ogólnie agile się chyba trochę pogubiło, albo pogubiło się raczej rozumienie Agile.
Ale kto się w tym (jakie rozumowanie o agile jest błędne?) rozumieniu "pogubił" i na jakiej podstawie można to stwierdzić (na jakiej podstawie ktoś rozumuje "poprawnie") ?
konto usunięte
Możesz rozwinąć myśl, bo nie za bardzo rozumiem?Skoro kolejność nie ma znaczenia, to dlaczego osoby stosujące TDD nazywasz niekompetentnymi? I zaznaczam, że chodzi mi jedynie o TDD.Ponieważ swoje "kompetencje" próbują oprzeć na rzeczach które nie mają znaczenia.
Interfejs oznacza "stałość". "Nie ważne, co się dzieje w 'bebechach', ważne, że interfejs pozostaje niezmienny".Martin Fowler
konto usunięte
Ale kto się w tym (jakie rozumowanie o agile jest błędne?) rozumieniu "pogubił" i na jakiej podstawie można to stwierdzić (na jakiej podstawie ktoś rozumuje "poprawnie") ?
gdybyś zamiast wycinać całą resztę treści mojego postu - przeczytał ją, to byś sam sobie odpowiedział na swoje pytanie :)
konto usunięte
Jakub Wojt:Ja osobiście też znajduję plusy w pisaniu testów przed implementacją - robisz to dokładniej i chętniej niż po. I jeżeli ja (i spora ilość osób) również znajduje pozytywy w takiej technice, to nie uważam, żeby mógł być to jakikolwiek argument do dyskutowania na temat czyichś kompetencji.
"This is a differentiating feature of test-driven development versus writing unit tests after the code is written: it makes the developer focus on the requirements before writing the code, a subtle but important difference."
http://en.wikipedia.org/wiki/Test-driven_development
TDD wyróżnia się jedynie tym, że ustala kolejność rzeczy które mogą być robione w dowolnej kolejności.
Na tym polega sedno TDD - na pisaniu testów przed implementacją po to, żeby "programista skupił się na funkcjonalności zanim zacznie ją implementować".
Może TDD zakłada, że programista nie skupia się na "funkcjonalności" w momencie implementacji,Skupia się, ale myśli już o tym w inny sposób. Podczas pisania testów starasz się myśleć jak użytkownik, natomiast w trakcie implementacji rozwiązujesz pewien problem.
albo że analityk zarabia na błaznowaniu ....Jeżeli mamy zestaw gotowych scenariuszy użycia, które muszą zostać spełnione, aby funkcjonalność została uznana za poprawną, to w takiej sytuacji rzeczywiście nie ma mowy o jakiejkolwiek wyższości "przed" nad "po" (i odwrotnie:). TDD sprawdza się tam, gdzie testy są tworzone (zestawy danych i scenariusze) przez programistów/testerów.
Czyli wychodzisz z założenia, że jeżeli masz publiczny interfejs, ale produkt jeszcze nie ujrzał światła dziennego, to nie możesz już tego interfejsu modyfikować, bo ważne, żeby był niezmienny?[...]Interfejs oznacza "stałość". "Nie ważne, co się dzieje w 'bebechach', ważne, że interfejs pozostaje niezmienny".
Jeśli o mnie chodzi, wystarczy jakaś dobra argumentacja. Powoływanie się na "ekspertów od refaktoringu" nie jest dobrym argumentem na cokolwiek.
Krzysztof T. Software maker
Jakub Wojt:
Ale kto się w tym (jakie rozumowanie o agile jest błędne?) rozumieniu "pogubił" i na jakiej podstawie można to stwierdzić (na jakiej podstawie ktoś rozumuje "poprawnie") ?
gdybyś zamiast wycinać całą resztę treści mojego postu - przeczytał ją, to byś sam sobie odpowiedział na swoje pytanie :)
Jak na podstawie czterech zdań "zen" można stworzyć jakożkolwiek skuteczna metodę realizacji projektów (przy założeniu, że taka istnieje).
Jarosław
Żeliński
Analityk i
Projektant Systemów
Krzysztof T.:
Moja żonka (też informatyk) gdy przeczytała tę dyskusję stwierdziła: "I nad czym tu deliberować - przecież cały Agile sprowadza się do tego, by stosowaną metodykę dozbroić w cykliczne interakcje z klientem, a Wy piszecie i piszeeeecie... o czym tu pisać?"
Następna dyskusja: