eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingPorównanie różnych języków
Ilość wypowiedzi w tym wątku: 151

  • 121. Data: 2011-12-19 14:04:18
    Temat: Re: Porównanie różnych języków
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2011-12-19, Roman W <b...@g...pl> wrote:
    > On Dec 19, 11:55 am, Wojciech Jaczewski <w...@o...pl> wrote:
    >> Roman W wrote:
    >> > On Dec 18, 11:31 pm, Maciej Sobczak <s...@g...com> wrote:
    >> >> Tak to można okienka dialogowe w programie księgowym robić. Systemów
    >> >> przemysłowych ani nawet rozrywkowych w ten sposób nie widzę.
    >>
    >> > Mnie w ogole zastanawia, czemu w "starszych" dziedzinach przemyslu
    >> > (np. budownictwo czy petrochemia) koniecznosc stworzenia spojnego
    >> > calosciowego projektu jest *oczywista*, natomiast w IT ludziom sie
    >> > wydaje, ze mozna tworzyc duze systemy z klockow Lego.
    >>
    >> Jeśli w budownictwie wyprodukuje się jakiś klocek, to zwykle nie da się go
    >> przerobić w klocek nieco inny (bo podczas przymierzania okazało się, że coś
    >> jest nie tak).
    >
    > No popatrz, a jak zmienialem drzwi/okna/pokrycie dachu to poszlo bez
    > problemu.

    Czekaj, wróć. Okno zmieniłeś w pokrycie dachu, a drzwi w wannę? O_o

    > Bo sa rozne standardy, ktore sie egzekwuje na etapie
    > projektowania, ktore ludziom niesamowicie ulatwiaja potem prace, jak
    > chca cos w konstrukcji zmienic.

    --
    Secunia non olet.
    Stanislaw Klekot


  • 122. Data: 2011-12-19 14:34:19
    Temat: Re: Porównanie różnych języków
    Od: Andrzej Jarzabek <a...@g...com>

    On Dec 19, 12:43 pm, Roman W <b...@g...pl> wrote:
    > On Dec 19, 11:02 am, Andrzej Jarzabek <a...@g...com>
    > wrote:
    >
    > > * Modele funkcjonują jako user stories
    >
    > To nie sa user stories.

    Dlaczego? Pytam poważnie i jak pisałem, nie znam się na tym, więc moje
    dalsze dywagacje będą typu "jak mały Jasio sobie wyobraża", więc nie
    śmiej się za bardzo, tylko naprostuj mnie błądzącego.

    Otóż mały Jasio sobie wyobraża, że masz zasadniczo dwa podejścia do
    architektury takiego programu. Pierwsze jest takie, że modele są
    bezpośredio wbudowane w program i stanowią jego ficzery. Jeśli program
    ma modele A, B i C, a chce się mieć model D, to zespół tworzący
    program musi zmienić ten program. W takim przypadku modele funkcjonują
    jako user stories - to, że nie mają takiego formatu jak typowe user
    stories, że nie są napisane z punktu widzenia "użytkownika" nie ma
    większego znaczenia - po prostu taka specyfika branży. Istotne jest
    to, że na początku każdego tygodnia możemy wyłożyć na stół listę
    modeli, które można zaimplementować (co również oznacza, że mają
    odpowiednie stempelki) i zadać pytania "które z nich chcemy
    zaimplementować w pierwszej kolejności?" i "ile z nich zdążymy
    zaimplementować w tym tygodniu?"

    Druga możliwość, którą mały Jasio sobie wyobraża, jest taka, że
    program do algo przyjmuje modele zadane przez użytkownika, które mogą
    być podane jako jakieś pliki konfiguracyjne, programy napisane w DSL-u
    albo jakieś dll-ki pisane przez quantów czy kogo tam w C++ czy w czym
    tam. W takiej sytuacji ludzie tworzący modele są użytkownikami
    programu, raczej niż jego twórcami. Problem akceptacji konkretnych
    modeli przez odpowiednie działy jest problemem owych użytkowników, a
    user stories są "chciałbym użyć w modelu danej xyz, ale w tej chwili
    nie ma takiego parametru, proszę mi go dodać", "proszę o dodanie do
    DSL-a wsparcia dla funkcji eliptycznych", "chciałbym pisać modele w
    Javie" itd.

    > > * Po stworzeniu modelu koleś od wymyślania zanosi go do product ownera
    > > * Product owner zajmuje się tym, żeby złożone u niego modele zostały
    > > zatwierdzone gdzie trzeba
    >
    > Nope. Product owner na ogol jest traderem, ktory nie chce miec nic
    > wspolnego z zatwierdzaniem modelu. Co najwyzej moze naciskac
    > politycznie, zeby dany model zostal zatwierdzony, z roznym skutkiem.

    Nie mam pojęcia, jakie są zadania tradera w takim zespole, ale w
    agile'owym żargonie product owner jest osobą, która decyduje o
    funkcjonalności programu. Jeśli tą funkcjonalnością są konkretne
    modele, to product owner musi decydować, które ze wszystkich modeli
    zaproponowanych przez quantów czy kogo tam, zostaną zaimplementowane,
    a które nie, i w jakiej kolejności. W związku z tym małemu Jasiowi
    wydawałoby się, że taka osoba byłaby w naturalny sposób zainteresowana
    tym, które modele będą zatwierdzone a zatem chciałaby decydować, które
    i w jakiej kolejności będą zatwierdzane przez dział zatwierdzania.

    Jeśli mały Jasio się myli, i to z reguły zadaniem quantów (czy kogo
    tam) wymyślających owe modele jest zatwierdzenie ich w odpowiednich
    działach, to niewiele zmienia: zainteresowany quant wymyśla model,
    dokumentuje go w takim zakresie, jak wymagają tego działy
    zatwierdzania, w ciągu tygodnia biega za stempelkami, a przy iteration
    planning kładzie na stół te modele, które udało mu się zatwierdzić (i
    na których mu jeszcze zależy).

    Z drugiej strony jeśli masz zespół złożony z n quantów, którzy sami
    wymyślają, co program ma robić, sami zabiegają o zatwierdzenie tego, a
    następnie sami to implementują, oraz tradera, którego rolą jest
    polityczne naciskanie na to lub owo, to prawdopodobnie stosowanie XP
    nie ma sensu. Możnaby się ewentualnie zastanowić nad Scrumem z
    odpowiednio dobranymi praktykami.


  • 123. Data: 2011-12-19 15:38:35
    Temat: Re: Porównanie różnych języków
    Od: Roman W <b...@g...pl>

    On Monday, 19 December 2011 14:04:18 UTC, Stachu &#39;Dozzie&#39; K. wrote:
    > Czekaj, wróć. Okno zmieniłeś w pokrycie dachu, a drzwi w wannę? O_o

    Gdzie to wyczytales?

    RW


  • 124. Data: 2011-12-19 15:52:34
    Temat: Re: Porównanie różnych języków
    Od: Andrzej Jarzabek <a...@g...com>

    On Dec 19, 1:47 pm, Maciej Sobczak <s...@g...com> wrote:
    > On Dec 19, 1:33 pm, Andrzej Jarzabek <a...@g...com>
    > wrote:
    >
    > > > Ale musiałoby ich być dokładnie tyle, ile byłoby tej dokumentacji,
    > > > której ma nie być.
    >
    > > Dokładnie.
    >
    > Nie tylko. Tych notatek z dyskusji też musi być dokładnie tyle samo
    > (bo informacji nie da się zredukować). I tego właśnie nie rozumiem.

    Jak byłem na studiach zawsze byli tacy ludzie, którzy na wykładach
    notowali pełnymi zdaniami wszystko, co mówił profesor. Ich notatki
    były bardzo przydatne na kolokwiach czy egzaminach, które odbywały się
    kilka tygodni czy miesięcy po samym wykładzie, i cały rok miał je
    skserowane.

    Na ogół ludzie, jeśli przychodzą do kogoś z konkretnym problemem,
    który trzeba wytłumaczyć, jeśli ten problem jest odpowiednio mały,
    tłumaczenie trwa może z 10 minut (jak nie mniej), a wiedzę uzyskaną w
    ten sposób zapisuje się w postaci sformalizowanej lub stosuje w
    praktyce zaczynając bezpośrednio po samym tłumaczeniu i w ciągu
    najwyżej kilku godzin, potrafią zapamiętać z owego tłumaczenia na
    tyle, że notowanie dosłownie wszystkiego, co było powiedziane, nie
    jest konieczne. Ja na przykład mam przed sobą teraz wynotowane rzeczy,
    które mam w kolejce do zrobienia, w taki sposób, że dla osoby, która
    nie wie o co chodzi, byłyby kompletnie niezrozumiałe. A dla mnie są
    zrozumiałe, bo w ogóle poza tym wiem, co robię. Jeśli komuś co pół
    godziny resetuje się kontekst i bez notatek nie wie, czy akurat robi
    oprogramowanie do robota przemysłowego, czy do serwisu plotkarskiego
    na WWW, to zapewne powinien nie pisać, programów, tylko natychmiast
    zapisać sobie na ręce, żeby pójść na badania do neurologa.

    > Tradycyjna metoda polega na tym, że się pisze dokumentację, w której
    > zawarta jest wiedza nt. działania systemu. W agile piszemy notatki,
    > których jest *tyle samo* (nieredukowalność informacji, sorry, nie ja
    > stworzyłem świat). A przynajmniej w całej tej dyskusji nie padły żadne
    > przesłanki do stwierdzenia, że mogłoby ich być mniej.

    Padły.

    > I teraz okazuje się, że pomimo faktu, że będzie ich tyle samo i będzie
    > do tego potrzebny taki sam wysiłek pisarski, to musimy je koniecznie
    > wyrzucić do kosza i to najdalej parę godzin po napisaniu. To bardzo
    > ważne. Bo jeśli zapomnimy je wyrzucić i się zaczną nam zbierać, to
    > klient zobaczy plik kartek i jeszcze pomyśli, że my tu jakąś
    > dokumentację piszemy i okaże się, że król jest nagi a my wcale nie
    > jesteśmy agile.

    Jak chcesz je sobie kolekcjonować, to twoja sprawa. Tak samo jak
    chcesz sobie w weekend zrobić tripa na peyotlu to twoja sprawa. Ale
    jak z faktu, że je kolekcjonujesz zrobisz praktykę, że z nich
    korzystasz więcej niż tydzień po napisaniu, to "bo tak mam w notatce,
    o tutaj, mogę pokazać" jest równie dobrą odpowiedzią na pytanie
    "dlaczego to jest tak zrobione", co "bo tak mi powiedział mój duch
    totemiczny na tripie peyotlowym".

    > Niech mi ktoś wytłumaczy, w czym napisanie notatek i wywalenie ich do
    > kosza jest lepsze od napisania ich i spięcia w segretatorze.

    Oszczędzasz miejsce na biurku? Mniej trzeba wysiłku i czasu, żeby
    wyrzucić kartkę do śmieci, niż żeby ją wpiąć do segregatora? Przede
    wszystkim zaleta jest taka, że nie skorzystasz z tej notatki wtedy,
    kiedy będzie ona nieaktualna, i kiedy zaimplementowanie tego, co jest
    w niej zapisane wprowadzi buga do systemu, którego usunięcie zajmie
    kupę czasu i pracy. Oczywiście możesz wpinać te notatki do skoroszytu
    i nigdy więcej z nich nie korzystać, ale w takim razie niech mi ktoś
    wytłumaczy, w czym spinanie notatek w segregatorze, z których się
    nigdy nie skorzysta, jest lepsze od wyrzucania ich do śmieci?

    > Pomijając fakt, że w kontekście biznesowym wyrzucanie *czegokolwiek*
    > do kosza to czysta głupota i zwykle się srogo mści w późniejszym
    > terminie.
    > To nie jest żadna metodologia, to jest usankcjonowana
    > nieodpowiedzialność.

    Tu masz rację. Powinno się wrzucać do niszczarki.

    > > Bywa. Dlatego też zasada nie jest taka, że się w ogóle nie produkuje
    > > dokumentacji, tylko że dokumentuje się tylko to, czego absolutnie nie
    > > da się zapisać w postaci testu lub kodu.
    >
    > Acha - czyli niektóre notatki zachowujemy w segregatorze. Wyrzucamy
    > (koniecznie!) tylko te, dla których udało nam się napisać acceptance
    > test.

    Nic nie zachowujemy. Tworzymy normalną dokumentację.

    > > Zakładając
    > > przykładowo, że masz jakiś system, który liczy przejeżdżające
    > > samochody na podstawie wejścia z jakichś sensorów, to można budować
    > > testy w oparciu o rzeczywiste lub symulowane dane z tych sensorów.
    >
    > Ale klienta równo wali, czy to liczenie robi program, czy hardware,

    Klient jest zamawiającym program.

    > czy krasnoludki. I w ogóle jaki sensor?

    Toż mówię - brak kontekstu. Przykładowo założyłem sobie, że program ma
    liczyć samochody na podstawie danych z sensora. Oczywiście może sobie
    liczyć samochody w bazie danych czy cośtam, ale bez kontekstu nie
    jestem ci w stanie powiedzieć, jak to się testuje.

    > Właśnie w tym jest problem, że systemy przemysłowe opisuje się
    > całościowo, bo tylko w całości one są potrzebne. Wydzielanie granicy
    > pomiędzy sensorami a programem, jest sztucznym krokiem, który z punktu
    > widzenia klienta nic nie wnosi - dlatego nie wierzę, że OSCRowi będzie
    > się chciało robić taki test. OSCR tego nie widzi. On widzi samochody.

    Masz w takim razie niewłaściwego OSCR-a. Nie wiem jakie standardy są w
    tej branży, ale klientem zespołu produkującego oprogramowanie nie
    będzie właściciel fabryki samochodów, tylko zespół produkujący sprzęt,
    ewentualnie zespół integrujący sprzęt z oprogramowaniem.

    > W ogóle mam wrażenie, że agile wraz z całą swoją kulturą testowania
    > jest bardzo nakierowany na założenie, że produktem jest jakiś program.

    Heloł, bo to jest metodologia tworzenia oprogramowania, a nie
    metodologia budowy robotów.

    > Pewnie działa to jakość w kontekście np. serwisu internetowego, ale w
    > większej skali produktem nie jest program, tylko system, w którym
    > granice pomiędzy jego technicznymi składnikami (np. sensor vs.
    > program) są niewidoczne dla klienta. I na tym się agile wyłoży.

    Nie wyłoży się, tylko ty źle rozumiesz słowo "produkt". "Produkt" to
    niekoniecznie jest to, co firma sprzedaje. XP się sprawdza kiedy
    zespół produkujący sprzęt zamawia oprogramowanie w innej firmie lub w
    dziale software tej samej firmy.

    > > Bardzo prosto: dajesz OSCR-owi do odsłuchania ileś tam dźwięków
    > > przetworzonym z takim pogłosem, on ci potwierdza, że to brzmi jak
    > > odpowiednia filharmonia, piszesz test, który przetwarza dźwięk tym
    > > efektem i sprawdza, czy wyjście się zgadza.
    >
    > Złapałeś się. :-) W przypadku pogłosu z filharmonii wyjście za każdym
    > razem się może nie zgadzać (i na tym polega jego urok)

    Ja nie mówię, o pogłosie z filharmonii, tylko o programowym filtrze,
    który nadaje wejściu brzmienie jak pogłos z filharmonii - bo to
    testujemy.

    > a stwierdzenie,
    > że coś brzmi tak samo jak coś innego jest subiektywne.

    Program ci produkuje jakiś waveform, który odtworzony na danym
    sprzęcie jakoś tam brzmi. Jeśli ten sam waveform na tym samym sprzęcie
    raz brzmi, a raz nie brzmi jak pogłos z filharmonii, to nie jesteś w
    stanie na ten sprzęt zrobić programowego filtra, który brzmi jak
    pogłos z filharmonii.

    Ale wiesz co? Jest odpowiednia metoda na zrobienie tego, o co chodzi:
    w ogóle nie robić żadnego oprogramowania, tylko wstawić mniej-więcej
    żeby działało parę oporników i kondensatorów, dać złote styki,
    przegrzane kable, tytanową obudowę, hebanowe pokrętła, nóżki z rogu
    nosorożca, dać egzemplarz albo dwa recenzentowi z odpowiedniego
    czasopisma w zamian żeby napisał "zamknąłem oczy i poczułem się
    zupełnie jakbym stał w słynnej sali imienia Pimcickiego w filharmonii
    w Koluszkach" i jeszcze koniecznie "aksamitne basy i jedwabiste
    soprany" - sukces murowany. Testowanie faktycznie niepotrzebne.

    > Ten problem nie
    > dotyczy tylko akustyki, jest cała masa takich miejsc. Np. ekspres do
    > kawy ma robić dobrą kawę. Znowu nie ma jak zrobić acceptance testu.

    No sorki, może się nie znam, ale program do ekspresu do kawy nie jest
    żadną sztuczną inteligencją z zaszytym systemem ekspertowym "koneser
    kawy" i wykrywaczem nastroju właściciela na podstawie "flucutation of
    the pupil" i "involuntary dilationof the iris", tylko coś, co leci
    przez jakiś prosty program, odmierza tyle a tyle wody, podgrzewa przez
    tyle a tyle czasu itd. Jeśli przy tym samym programie i tych samych
    warunkach wejściowych program robi raz dobrą, a raz niedobrą kawę, to
    raczej nie z oprogramowaniem jest problem.

    > > Nie znam się na tym, ale chętnie dowiem się dlaczego
    > > tak uważasz.
    >
    > Właśnie dlatego, że w takich systemach ich działanie opisuje się
    > całościowo.

    Znaczy nie ma takiego etapu, gdzie określa się, jak się ma zachowywać
    oprogramowanie w kategoriach sygnałów sterowania sprzętem?

    > Agile jest za bardzo intruzywny i za bardzo zakłada, że
    > klient będzie chciał być zaangażowany (poprzez OSCRów) w definiowanie
    > tak drobno określonch szczegółów implementacyjnych.

    Agile nie zakłada przede wszystkim, że "klient" to jest ten, co kupuje
    coś w przedsiębiorstwie produkującym oprogramowanie.

    > > Jeśli chodzi o "rozrywkowe", to na pewno wiem, że testy automatyczne,
    > > jak i różne metodologie agile, stosuje się przy tworzeniu gier
    > > komputerowych - chyba się kwalifikują jako 'rozrywka'?
    >
    > A tutaj to akurat ja się nie znam. Może profesor fir będzie wiedział.

    Fir ma wiedzieć, co masz na myśli pisząc "systemy rozrywkowe"?


  • 125. Data: 2011-12-19 16:48:13
    Temat: Re: Porównanie różnych języków
    Od: Andrzej Jarzabek <a...@g...com>

    On Dec 18, 11:18 pm, Maciej Sobczak <s...@g...com> wrote:
    > On Dec 18, 5:54 pm, Andrzej Jarzabek <a...@g...com>
    > wrote:
    >
    > > Jeśli wynotowanie sobie czegoś podczas rozmowy na kartce papieru to już
    > > "dokumentacja" to się nie zrozumieliśmy.
    >
    > To kiedy coś jest "dokumentacją"?
    > Czy napisanie czegoś na wiki się liczy?

    Co za różnica?

    > > Nie, nie ma żadnych N miesięcy na pisanie notetek
    >
    > A jak nie zdążą?

    Jak nie zdążą w jeden dzień, to ewentualnie mają następny dzień, ale
    to już jest sygnał, że trzeba naprawić proces. Jeśli coś, co miało być
    zrobione w jeden dzień okazuje się robotą na wiele miesięcy, to się to
    wycofuje z bieżącej iteracji i robi się repriorytetyzację na kolejnym
    iteration planning. Jeśli coś jest robotą na wiele miesięcy, to nie
    powinno być opisane jako jedna user story.

    > > i nie ma wpinania
    > > notatek do segregatora.
    >
    > A jak się rozsypią?

    Jedna kartka ma się rozsypać?

    > > Notatki służą do tego, żeby pomiędzy rozmową z
    > > OSCR-em a zakodowaniem uzyskanej informacji rozmawiający nie zapomniał.
    > > Ten czas, to bardzo rzadko więcej niż dzień, nigdy więcej niż 3-4 dni.
    >
    > Sorki, ale to nie działa. W 3-4 dni to sobie można okienko dialogowe
    > napisać a nie określić działanie większego systemu w jakimkolwiek jego
    > pionowym wycinku.

    Pojedyncza user story to nie jest koniecznie kompletny kawałek
    funkcjonalności. Dodatkowo, jak najbardziej można dopisać kompletną (w
    sensie już użyteczną) nową funkcjonalność w 3-4 dni. Okienko dialogowe
    (bez funkcjonalności) to raczej robota na minuty.

    > > Jeszcze raz - nie masz takiego etapu, że przez ileś tygodni czy miesięcy
    > > piszesz dokumentację (jakkolwiek nazwaną). User stories zaproponowane
    > > przez OSCR-ów są priorytetyzowane na początku każdej iteracji
    >
    > Zaraz, zaraz. Czyli OSCRy muszą *najpierw* zaproponować te user
    > stories, żeby mogli je priorytetyzować.

    Tak.

    > Powiedzmy, że tych historyjek jest Bardzo Dużo (tm). Ile czasu trwa ich
    > "zaproponowanie"?

    Tyle czasu, ile się wyznaczy. Tzn. jeśli OSCR ma Bardzo Dużo
    historyjek, to się go prosi o własną priorytetyzację, bo na danym
    zebraniu ma tylko zaproponować te, które będą możliwe do wykonania w
    ciągu jednego tygodnia. Niech przedstawi od najważniejszych do
    najmniej ważnych, przy czym historyjki zależne od innych historyjek
    ustawi za nimi, i niech przedstawia w takiej kolejności - dajmy na to
    po pięciu minutach będzie można spokojnie powiedzieć: "wystarczy, w
    tym tygodniu i tak więcej nie zrobimy".

    > Czym się
    > różni "zaproponowanie" dużej ilości historyjek od napisania dużej
    > ilości use-casów (na przykład) w formie dokumentacji? Nadal jest to N
    > miesięcy, tyle że się fajniej nazywa.

    Nie ma N miesięcy, bo OSCR musi przedstawić swoje historyjki na
    pierwszym zebraniu planowania iteracji, czyli powiedzmy najdalej dwa
    tygodnie po rozpoczęciu projektu. Oczywiście OSCR może sobie
    utrzymywac backloga tak długiego, jak chce, ale co tydzień musi i tak
    określić, jakie są najważniejsze rzeczy do zrobienia _teraz_, co
    wymaga w tym samym tygodniu, w którym dana historia jest
    implementowana, potwierdzenia przez żywą osobę, że to jest nadal ważne
    i nadal ma być zrobione tak, jak sobie to wcześniej obmyśliła.
    Naturalnym jest, że w trakcie tygodnia, w którym trwa implementacja
    jednych historii, następują zmiany, czy zadawane są pytania, czy
    podejmowane są decyzje, które powodują, że niektóre z tych Bardzo
    Wielu historyjek nigdy nie zostaną zaproponowane, albo okażą się
    znacznie ważniejsze, lub mniej ważne, albo przyjmą zupełnie inną
    postać, niż to zakładał OSCR, kiedy sobie pisał owe Bardzo Dużo
    historyjek.

    > I nadal te user stories razem
    > wzięte (chyba jednak lepiej je spiąc do segregatora) to jest
    > dokumentacja.

    To nie jest dokumentacja. Jeśli OSCR zepnie sobie wszystkie user
    stories, które ma do zaproponowania w segregator, to jest to jego
    prywatny segregator, a nie dokumentacja, która kogokolwiek interesuje.

    Historyjki, które są zaplanowane na kolejną iterację, oraz te, które
    zostały już odhaczone,

    > No, chyba że OSCRy strzelają po kilka historyjek co tydzień i tak aż
    > do końca projektu. Nadal jednak będzie tego M stron i nadal ich
    > napisanie zajmie N czasu, nawet jeśli się je zaraz po napisaniu
    > wyrzuca do kosza.
    > Dlatego nie widzę postępu.

    Postęp jest taki, że w trakcie tworzenia programu zdobywa się
    dodatkowe informacje o tym, co jest ważne, co jest trudne, co i jak
    można uprościć itd.

    > Czyli co tydzień OSCR może zmienić ogólną wizję i doprowadzić do
    > stworzenia produktu, który jest zbiorem niepowiązanych ze sobą
    > funkcjonalności. Coś jak odkurzacz z odtwarzaczem mp3 i ekspresem do
    > kawy.
    > W przypadku napisania dokumentacji z góry jest szansa to dostrzec.

    Ale dlaczego nie ma szansy tego dostrzec w kolejnym tygodniu? Poza tym
    poza iteracjami jest jeszcze coś takiego jak release plan, na którym
    ustala się funkcjonalność potrzebną do pierwszego release. Jeśli nagle
    OSCR zaczyna zgłaszać funkcjonalność, która nie jest z tym związana,
    to można zweryfikować, czy faktycznie to jest koniecznie potrzebne
    klientowi i czy klient rozumie, że to opóźni dostarczenie gotowego
    produktu. Jeśli klient to potwierdzi, albo po otrzymaniu odkurzacza w
    wersji 1.0 stanowczo potwierdzi, że wersja 1.1. ma się różnić przede
    wszystkim tym, że będzie miała odtwarzacz mp3, to już jest decyzja
    klienta, a nie zespołu programistycznego.

    > > Przede wszystkim czas - czas życia notatki mierzony jest raczej w
    > > godzinach,
    >
    > Nie bardzo. Wtedy nie ma szansy dostrzec, że robimy odkurzacz z mp3,
    > bo przy pisaniu notatki o mp3 poprzednia historyjka o odkurzaniu jest
    > już w koszu. A potem OSCR powie, że nic takiego nie mówił. I jak mu
    > udowodnić, że pieprzy, skoro sami powyrzucaliśmy wszystkie notatki do
    > kosza?

    Ta rozmowa z OSCR-em odbywa się podczas pracy nad konkretną
    historyjką. Jeśli OSCR mówi rzeczy, które nie są z tą historyjką
    związane, to się mu mówi, że owszem, skoro sobie życzy, ale to
    zupełnie inna historyjka, i w ogóle funkcjonalność nie przewidziana na
    ten release, więc decyzja klienta, czy chce dostać jak najszybciej
    release z taką funkcjonalnością, jaką zaplanowano przy planowaniu
    release-u, albo czy chce zmienić plan.

    > Sorki, ale nie widzę tej teorii w praktyce.

    Otóż nie wiem, czy cię zaskoczę, ale to nie jest coś, co właśnie sobie
    wymyśliłem, tylko coś, co jest stosowane w praktyce przez bardzo wiele
    projektów i produkuje sporo działającego oprogramowania.

    > Nawet nie chciałbym się w
    > czymś takim znaleźć, ani jako wykonawca, ani jako klient.

    Z tym nie będę polemizował.


  • 126. Data: 2011-12-19 16:50:16
    Temat: Re: Porównanie różnych języków
    Od: Andrzej Jarzabek <a...@g...com>

    On Dec 19, 10:03 am, Roman W <b...@g...pl> wrote:
    >
    > Mnie w ogole zastanawia, czemu w "starszych" dziedzinach przemyslu
    > (np. budownictwo czy petrochemia) koniecznosc stworzenia spojnego
    > calosciowego projektu jest *oczywista*, natomiast w IT ludziom sie
    > wydaje, ze mozna tworzyc duze systemy z klockow Lego.

    Bo stosujesz złą analogię. W inżynierii oprogramowania spójnym i
    całościowym projektem jest kod źródłowy w językach wysokiego poziomu,
    a spawają roboty.


  • 127. Data: 2011-12-19 18:11:57
    Temat: Re: Porównanie różnych języków
    Od: Andrzej Jarzabek <a...@g...com>

    On 18/12/2011 23:18, Maciej Sobczak wrote:
    >
    > Czyli co tydzień OSCR może zmienić ogólną wizję i doprowadzić do
    > stworzenia produktu, który jest zbiorem niepowiązanych ze sobą
    > funkcjonalności. Coś jak odkurzacz z odtwarzaczem mp3 i ekspresem do
    > kawy.
    > W przypadku napisania dokumentacji z góry jest szansa to dostrzec.

    Jeszcze jedno pytanie, bo mnie to trochę zafascynowało. Załóżmy
    powiedzmy, że pracujesz 40h tygodniowo, od poniedziałku do piątku. W
    poniedziałek przychodzisz do pracy nad nowym projektem, dostajesz
    grubaśny dokument ze specyfikacją wymagań, i tam pierwsze zdanie
    pierwszego rodziału brzmi jakoś tak "Opisywany produkt jest
    oprogramowaniem do odtwarzacza MP3". Zakładając, że od tego momentu
    pracujesz jako developer nad stworzeniem tego oprogramowania. Ile czasu
    zajmie ci, zanim zapomnisz nad czym pracujesz i będziesz musiał
    sprawdzić czytając jeszcze raz to pierwsze zdanie dokumentacji? Przez
    weekend zapomnisz? Przez noc? Może wystarczy, że pójdziesz zaparzyć kawę
    albo odbierzesz telefon?


  • 128. Data: 2011-12-19 22:20:24
    Temat: Re: Porównanie różnych języków
    Od: Roman W <b...@g...pl>

    On Monday, 19 December 2011 16:50:16 UTC, Andrzej Jarzabek wrote:
    > On Dec 19, 10:03 am, Roman W <b...@g...pl> wrote:
    > >
    > > Mnie w ogole zastanawia, czemu w "starszych" dziedzinach przemyslu
    > > (np. budownictwo czy petrochemia) koniecznosc stworzenia spojnego
    > > calosciowego projektu jest *oczywista*, natomiast w IT ludziom sie
    > > wydaje, ze mozna tworzyc duze systemy z klockow Lego.
    >
    > Bo stosujesz złą analogię. W inżynierii oprogramowania spójnym i
    > całościowym projektem jest kod źródłowy w językach wysokiego poziomu,
    > a spawają roboty.

    W takim razie mowimy o tworzeniu projektu projektu. Kwestia definicji.

    RW


  • 129. Data: 2011-12-19 22:41:54
    Temat: Re: Porównanie różnych języków
    Od: Maciej Sobczak <s...@g...com>

    On Dec 19, 7:11 pm, Andrzej Jarzabek <a...@g...com>
    wrote:

    > Jeszcze jedno pytanie, bo mnie to trochę zafascynowało. Załóżmy
    > powiedzmy, że pracujesz 40h tygodniowo, od poniedziałku do piątku. W
    > poniedziałek przychodzisz do pracy nad nowym projektem, dostajesz
    > grubaśny dokument ze specyfikacją wymagań, i tam pierwsze zdanie
    > pierwszego rodziału brzmi jakoś tak "Opisywany produkt jest
    > oprogramowaniem do odtwarzacza MP3".

    Mówi się trudno, ale można to wziąć na klatę, jak się teraz w polityce
    mawia.

    > Zakładając, że od tego momentu
    > pracujesz jako developer nad stworzeniem tego oprogramowania. Ile czasu
    > zajmie ci, zanim zapomnisz nad czym pracujesz i będziesz musiał
    > sprawdzić czytając jeszcze raz to pierwsze zdanie dokumentacji?

    To pierwsze zdanie sądzę, że bym zapamiętał. Natomiast na pewno
    zapomniałbym większość z następnych zdań, bo pewnie wyglądałyby tak
    jak tutaj:

    http://en.wikipedia.org/wiki/Mp3

    Poproś kogoś, żeby Ci to przeczytał na głos. A potem niech Cię z tego
    przepyta.

    Uwaga: ten artykuł nawet nie próbuje udawać, że jest szczegółowy.
    Szczegółowe są podlinkowane na dole. Z nimi też można spróbować.

    > Przez
    > weekend zapomnisz? Przez noc? Może wystarczy, że pójdziesz zaparzyć kawę
    > albo odbierzesz telefon?

    Poproś kogoś, żeby do Ciebie zadzwonił w trakcie, jak ten pierwszy
    ktoś będzie Ci ten artykuł czytał.

    Właśnie dlatego, gdybym miał pisał soft do mp3, to zacząłbym od
    papierów.

    A tak na serio, to naprawdę nie wyobrażam sobie, żeby ktoś napisał
    dekoder mp3 na podstawie słownej opowieści OSCRa, zwłaszcze jeśli ta
    opowieść miałaby tykający stoper w tle.

    --
    Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com


  • 130. Data: 2011-12-19 23:21:55
    Temat: Re: Porównanie różnych języków
    Od: Maciej Sobczak <s...@g...com>

    On Dec 19, 5:48 pm, Andrzej Jarzabek <a...@g...com>
    wrote:

    > > > Nie, nie ma żadnych N miesięcy na pisanie notetek
    >
    > > A jak nie zdążą?
    >
    > Jak nie zdążą w jeden dzień, to ewentualnie mają następny dzień, ale
    > to już jest sygnał, że trzeba naprawić proces. Jeśli coś, co miało być
    > zrobione w jeden dzień okazuje się robotą na wiele miesięcy, to się to
    > wycofuje z bieżącej iteracji i robi się repriorytetyzację na kolejnym
    > iteration planning. Jeśli coś jest robotą na wiele miesięcy, to nie
    > powinno być opisane jako jedna user story.

    No przecież ja nie oczekuję, że cały system, który normalnie ma
    kilkaset stron opisu, znajdzie się w jednym user story. Oczekuję, że
    tych stories będzie np. kilkaset.
    I wtedy się okaże, że ich przekazanie (oraz napisanie odpowiednich
    notatek) zajmie *w sumie* tyle, ile napisanie całości. Bo chyba
    wszędzie jest tak, że całość jest sumą swoich składników, i nic tu się
    nie da zaoszczędzić.
    Czyli jeśli zamiast spędzenia np. 1 miesiąca na pisaniu dokumentacji
    mam to zrobić w czasie 160 1-godzinnych spotkań, to żadna różnica - to
    nadal jest *w sumie* 160 godzin.

    (W praktyce 160 1-godzinnych spotkań zajmie *znacznie* więcej, niż 160
    godzin, ale nie komplikujmy rozważań, bo się zaplączemy w
    złośliwościach.)

    Jeszcze raz: nie podałeś jeszcze żadnego powodu, dla którego
    *sumaryczny* czas spędzony na przekazywaniu wiedzy ma być w agile
    mniejszy. Różnica jest taka, że ten czas jest wpleciony w czas trwania
    całego projektu, ale nie ma powodu, żeby był *w sumie* krótszy.

    Widziałem kiedyś prezentację nt. agile i facet na samym początku
    powiedział coś takiego:

    ***
    Wielu ludzi błędnie sądzi, że agile jest po to, żeby projekt
    powstał szybciej. Jest to bzdura i bywa nawet, że trwa to dłużej.
    Agile powstało po to, żeby lepiej reagować na zmieniające się
    wymagania projektowe - i *to* jest właśnie powód, żeby go stosować.
    ***

    Myślę, że to jest sedno naszego nieporozumienia. Nie mam najmniejszej
    wątpliwości, że jako sposób prowadzenia projektów agile jest bardziej
    odpowiedni, gdy mamy podejrzenia, że wymagania będą się zmieniać w
    czasie jazdy - czy to z powodu uwarunkowań dziedzinowych, czy też z
    powodu niezrównoważenia klienta, czy nawet z takiego, że cała
    dziedzina ma eksploracyjny charakter i nie jest do końca poznana i
    można się spodziewać, że wiele rzeczy wyjdzie dopiero w praniu.
    Naprawdę - w pełni się zgadzam, że w takiej sytuacji istotna jest
    ciągła współpraca między klientem a wykonawcą. W przypadku skrajnym
    najlepszym rozwiązaniem jest w ogóle rezygnacja z outsource'owania
    projektu i stworzenie lokalnego zespołu programistów, który będzie
    temat rozwijał in-house - wtedy w ogóle nia ma sensu wyodrębniać
    takiej roli jak OSCR, tylko się szkoli programistów tak, żeby sami
    stali się specjalistami danej dziedziny (dodatkowo można to zrobić też
    w drugą stronę - pozwolić "domenowcom" pisać kod, który się potem
    integruje w całość). Właśnie w takim środowisku spędziłem ostatnie 6
    lat (surprise! ;-) ) i w pełni rozumiem potrzebę ścisłej współpracy,
    którą agile próbuje zrealizować przez szeroko pojęty gęsty feedback.
    To ma sens.

    Ale żadna metoda prowadzenia projektów nie może opierać się na
    "nierobieniu" czegoś.
    Dlatego naprawdę bez sensu jest twierdzić, że w agile chodzi o to,
    żeby nie robić dokumentacji. O nic takiego tam nie chodzi i nie może,
    z powodów fundamentalnych, czyli z nieredukowalności informacji, która
    prowadzi do tego, że przekazywania wiedzy nie da się skrócić. Można
    ten proces rozstrzelić i posiekać na tysiąc kawałków przemieszanych z
    klepaniem kodu i można nawet ustalić limity, że jeden kawałek nie może
    zająć dłużej niż dwie minuty, ale sumaryczny koszt nie zniknie - on
    się rozłoży w czasie całego projektu.
    Może być przez to mniej nużący. Ale nie zniknie.

    Nierobienie dokumentacji jest bez sensu, podobnie jak wyrzucanie do
    kosza jakichkolwiek artefaktów projektowych - również notatek.
    Z biznesowego punktu widzenia nierobienie dokumentacji jest bez sensu
    z kilku powodów. Raz, że wszystko może się przydać przy rozstrzyganiu
    konfliktów. Dwa, że wszystko może się przydać, gdy... sprzedaje się
    technologię lub całą firmę.
    Wtedy lepiej jest mieć równo poukładane segregatory, bo OSCR już
    poszedł do domu.

    --
    Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com

strony : 1 ... 12 . [ 13 ] . 14 ... 16


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: