eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › procedura tworzenia programów
Ilość wypowiedzi w tym wątku: 130

  • 11. Data: 2012-02-17 19:14:21
    Temat: Re: procedura tworzenia programów
    Od: " " <f...@g...pl>

    jesli o mnie chodzi to nie uzywam takich planow, zakladam
    ze jak opanuje temat to trzasne wszystko malym palcem i
    opanowuje temat (niesie to ze soba problemy zwiazane z
    zaniedbywaniem humanistycznych watkow w zyciu)


    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 12. Data: 2012-02-17 19:15:08
    Temat: Re: procedura tworzenia programów
    Od: A.L. <l...@a...com>

    On Fri, 17 Feb 2012 17:40:07 +0000, Bronek Kozicki <b...@s...net>
    wrote:

    >On 17/02/2012 16:36, A.L. wrote:
    >> On Fri, 17 Feb 2012 13:58:07 +0100, szyk<s...@o...pl> wrote:
    >>
    >>> * zasady OOP (Obiektowo Orientowane Projektowanie) - ściąga z tych
    >>> zasad: brak duplikacji kodu, enkapsulacja, operowanie na interfejsach
    >>> zamiast na implementacji, preferowanie kompozycji zamiast dziedziczenia,
    >>> atomowa odpowiedzialność klas, klasy otwarte na rozbudowę ale zamknięte
    >>> na modyfikacje, sensowne dziedziczenie
    >>
    >> Tak na marginesie, polecam ksiazke
    >>
    >> Skunk Works: A Personal Memoir of My Years of Lockheed
    >> Ben R. Rich, Leo Janos
    >>
    >> To tak ogolnie na pemat projektowania.
    >>
    >> A tak powaznie, to model Kolegi pachnie mi "waterfall model". Tak sie
    >> od dawna nie robi. Programy sie raczej pisze iteracyjnie. Trudno od
    >
    >zastanawiam skąd to się bierze, u początkujących (moje wrażenie sądząc
    >po początu wątku), w 21 wieku. Nauka ze starych podręczników? Procedura
    >do własnych studenckich projektów?
    >

    Moze chec do uporzadkowanai wszystkiego? Zeby bylo klarowne, jasne i
    zdeterminowane?

    "Waterfall methodology" nie jest zreszta cakiem bezuzyteczna. Sprawdza
    sie doskonale przy budowie domow i mostow, na przyklad. Ale software
    ma nieco inna nature...

    A.L.

    P.S. Tak na marginesie, tam jest pare innych rzeczy: wiara w moc
    wzorcow projektowych, wiara w To Co Powiedzial Guru (cytat:
    "operowanie na interfejsach zamiast na implementacji" i dalej)
    niezaleznei od tego czy Guly ma tak zwane "clue" czy nie.

    Niedawno mialem ostra dyskusje z "mlodym miszczsem" na temat
    implementacji hashCode() w Javie. Miszcz upieral sie ze jego
    implementacja jest jedynie sluszna. Argument: "Bo skopiowalem to z
    ksiazki Effectiva Java, a jak tam jest napisane to znaczy ze tak
    tzreba robic". Z dalszej dyskusji wyniklo ze jezeli sie robi inaczej
    niz w tej ksiazce, to na pewno robi sie zle. O tym ze w konkretnym
    przypadku ta implementacja ma sensu, nei dalo sie miszcza przekonac.


  • 13. Data: 2012-02-17 20:33:08
    Temat: Re: procedura tworzenia programów
    Od: szyk <s...@o...pl>

    Kilkukrotnie pojawiło się stwierdzenie, że ta procedura przypomina
    niesławny model "waterfall" oraz stwierdzenie, że tak się już nie robi
    ze wskazaniem na model iteracyjny. Nasuwają się pytania takie:

    1. Jakie są wady i zalety modelu iteracyjnego?
    Ja pisałem programy właśnie zgodnie z "modelem iteracyjnym" i według
    mojego pojęcia była to kompletna partyzantka: gdy tylko jedno kończyłem
    dostawałem nowe wytyczne i musiałem znowu pół programu przewalać by
    zaimplementować "nowy ficzer". Słowem chaos i ciągłe przeróbki. Stąd
    moje poszukiwania systematycznej metodologi. Muszę też przyznać, że na
    temat "sprytnych" podejść do procesu wytwarzania to czytałem jedynie
    "Programowanie ekstremalne" ale uznałem to za nie praktyczne w moim
    przypadku i nie do przeforsowania w robocie (np. programowanie w parach).

    2. Czy ten przedstawiony w tym wątku model da się przetransformować na
    iteracyjny?
    Moim zdaniem tak. Przy każdej zmianie wymagań trzeba zaczynać od punktu
    1 i kończyć na punkcie 9 bez dotykania tych części systemu jakie się nie
    zmieniają w nowej wersji.


    Druga sprawa jaka jest pomijana przez dyskutantów, to kwestia
    zapewnienia jakości oprogramowaniu. Wiem np. że poprzez odpowiednie
    metodologie w NASA redukuje się błędy w oprogramowaniu do 0,0% (wymienia
    się systemy rzędu 500k linii kodu). Więc nasuwa się pytanie:

    Jak waszym zdaniem powinno wyglądać zapewnienie jakości?

    Ja proponuję podejście od A do Z - czyli: Praca nad jakością na każdym
    etapie. To jest główny cel tej metodologi.

    Kolejna sprawa: Metodologia to jeden z trzech znanych mi sposobów
    ograniczania ryzyka (drugi to zakup czegoś co już działa, trzeci to
    zatrudnienie ludzi co już coś takiego stworzyli). Więc:

    Jak waszym zdaniem ograniczać ryzyko?


    Kolejna sprawa: metodologia wprowadza ekonomię sił, i ograniczanie
    szamotaniny marnującej i wytracającej energię (tłuczenie w pętli zmian
    specyfikacji, kodu i testów).

    Jak chcecie ograniczać ilość iteracji? Jak nie metodologią?

    Interesujące było by jakie mielibyście rozwiązanie uwzględniające tą
    "ekonomię sił" w kontekście pracy indywidualnego programisty który ma
    ambicję stworzyć coś co było by przydatne dla innych.

    Kolejną zaletą stosowania metodologi (nawet tak lekkiej jak pół ekranu
    tekstu) jest nabywanie zdolności do tworzenia coraz bardziej
    skomplikowanych systemów.
    Tak właśnie mnie naszło, że rozmiar projektu nie wyraża się w ilości
    linii kodu czy ilości klas, ale w metodologi jakiej on wymaga. Jak cały
    projekt trzyma się w główce i nie ma problemu podczas tworzenia
    programu/systemu to raczej taki projekt jest mały (przynajmniej dla tego
    co pisze). Większe projekty jakich się już indywidualnie nie ogarnia w
    szczegółach (bo np. tyle się w nich dzieje jednocześnie, albo mają tak
    dużo modułów) dalej można realizować poprzez metodologię małych kroków.

    A Wy jaki macie przepis na tworzenie coraz poważniejszych systemów?
    Zatrudnianie kolejnych "geniuszy"? dla których ten kolejny system będzie
    mały, więc będą oni mogli go sobie trzymać w główce i "będzie git". Moim
    zdaniem to nie jest podejście inżynierskie tylko siłowe i w końcu trzeba
    będzie się oprzeć na metodologi.


  • 14. Data: 2012-02-17 20:52:08
    Temat: Re: procedura tworzenia programów
    Od: Marcin Biegan <a...@u...lama.net.pl>

    On 2012-02-17 21:33, szyk wrote:
    > Kilkukrotnie pojawiło się stwierdzenie, że ta procedura przypomina
    > niesławny model "waterfall" oraz stwierdzenie, że tak się już nie robi
    > ze wskazaniem na model iteracyjny. Nasuwają się pytania takie:
    > ...
    > 2. Czy ten przedstawiony w tym wątku model da się przetransformować na
    > iteracyjny?
    > Moim zdaniem tak. Przy każdej zmianie wymagań trzeba zaczynać od punktu
    > 1 i kończyć na punkcie 9 bez dotykania tych części systemu jakie się nie
    > zmieniają w nowej wersji.

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

    --
    MB


  • 15. Data: 2012-02-17 21:55:08
    Temat: Re: procedura tworzenia programów
    Od: A.L. <l...@a...com>

    On Fri, 17 Feb 2012 21:33:08 +0100, szyk <s...@o...pl> wrote:

    >Kilkukrotnie pojawiło się stwierdzenie, że ta procedura przypomina
    >niesławny model "waterfall" oraz stwierdzenie, że tak się już nie robi
    >ze wskazaniem na model iteracyjny. Nasuwają się pytania takie:
    >
    >1. Jakie są wady i zalety modelu iteracyjnego?
    >Ja pisałem programy właśnie zgodnie z "modelem iteracyjnym" i według
    >mojego pojęcia była to kompletna partyzantka: gdy tylko jedno kończyłem
    >dostawałem nowe wytyczne i musiałem znowu pół programu przewalać by
    >zaimplementować "nowy ficzer". Słowem chaos i ciągłe przeróbki.

    Ciagle przerobi - tak. Chaos - nie. Nawt ciagle pzrerobki mozna
    kontrolowac i planowac.

    >Stąd
    >moje poszukiwania systematycznej metodologi. Muszę też przyznać, że na
    >temat "sprytnych" podejść do procesu wytwarzania to czytałem jedynie
    >"Programowanie ekstremalne" ale uznałem to za nie praktyczne w moim
    >przypadku i nie do przeforsowania w robocie (np. programowanie w parach).
    >

    Programwoanie w parch to paranoja. Jedyna forma programwoanai w parach
    ktora znam to nie taka ze dwoch pracuje nad tym samym problemem, ale
    taka ze jeden pracuje nad dwoma problemami. Gdy koszt programisty jezt
    rzedu 200 tysiecy dolarow rocznie (nei wiem ile w Polsce) to za
    propozycje programwoania parami mozna dostac kopa w dolna czesc ciala.

    Ja kuz mowilem o Agile. Proponuje poczytac na ten temat

    >2. Czy ten przedstawiony w tym wątku model da się przetransformować na
    >iteracyjny?
    >Moim zdaniem tak. Przy każdej zmianie wymagań trzeba zaczynać od punktu
    >1 i kończyć na punkcie 9 bez dotykania tych części systemu jakie się nie
    >zmieniają w nowej wersji.
    >

    Nie ma tak dobrze. Zmiana w jednym kawalku mzoe sie propagowac na inne
    kawalki
    >
    >Druga sprawa jaka jest pomijana przez dyskutantów, to kwestia
    >zapewnienia jakości oprogramowaniu. Wiem np. że poprzez odpowiednie
    >metodologie w NASA redukuje się błędy w oprogramowaniu do 0,0% (wymienia
    >się systemy rzędu 500k linii kodu). Więc nasuwa się pytanie:
    >

    Urban legend. Nie da sie uzyskac 0% bledow, w szczegolnosci nie da sie
    stwierdzic e jes t0% bledow. Albowiem testowanie moze wykryc tylko
    obecnosc bledow a nie nieobecnosc. A metody formalne ciagle jeszcze
    nie maja dostatecznej mocy. A z NASA jest tak ze ktorys z "rowerow"
    marsjanskich zagwozdil sie po ladowaniu, bo mial nei zainicjowany
    pointer. Inna misja malo co nie skonczyla sie fiaskiem bo tworcy
    programu nei slyszeli o czyms takim jak "priority inversion".

    >Jak waszym zdaniem powinno wyglądać zapewnienie jakości?
    >

    Nom na ten temat mapisano moze ksiazek i stworzono ocena metodologii,
    poczynajac od testow jednostkowych. W normalnym przemyslowym
    srodowisku programista musi napisac testy jednostkowe do wszystkiego
    co robi; w wiekscosci przypadkow to jest okolo 75% kodu ktory
    programista pisze. Te testy sa scentralizowane i wykonywan pzrez
    osobny personel. U mnie - co noc.

    Poza tym, znow polecam Agile w kontekscie jakosci, wszczegolnocis cos
    takiego jak "test driven development". Ksiazka jest na ten temat, i to
    o ile pamietam, nie jedna

    >Ja proponuję podejście od A do Z - czyli: Praca nad jakością na każdym
    >etapie. To jest główny cel tej metodologi.
    >

    No wlasnie, do tego sluza testy jednostkowe, code reviews - zarowno
    manualne jak i zautomatyzowane i przeglady projektu. jak rozneiz
    osobna grupa testujaca.

    >Kolejna sprawa: Metodologia to jeden z trzech znanych mi sposobów
    >ograniczania ryzyka (drugi to zakup czegoś co już działa, trzeci to
    >zatrudnienie ludzi co już coś takiego stworzyli). Więc:
    >
    >Jak waszym zdaniem ograniczać ryzyko?
    >
    W ogole nic nie robic :) Ale o jakie ryzyko chodzi?
    >
    >Kolejna sprawa: metodologia wprowadza ekonomię sił, i ograniczanie
    >szamotaniny marnującej i wytracającej energię (tłuczenie w pętli zmian
    >specyfikacji, kodu i testów).
    >

    tak, to sie tlucze w peltli. Starty powstalyby wowczas gdyb owo
    "tkuczenie" nie bylo dobrze zorganizowane i dobrze zaplanowane.

    >Jak chcecie ograniczać ilość iteracji? Jak nie metodologią?
    >
    >Interesujące było by jakie mielibyście rozwiązanie uwzględniające tą
    >"ekonomię sił" w kontekście pracy indywidualnego programisty który ma
    >ambicję stworzyć coś co było by przydatne dla innych.
    >

    Indywidualny programista ma miec takie ambicje zeby zrobic to co niego
    nalezy w terminie i dobrze. O tym czy to jest "przydatne dla innych"
    decydyje management, czyli ci ktorzy mu prace zlecaja

    >Kolejną zaletą stosowania metodologi (nawet tak lekkiej jak pół ekranu
    >tekstu) jest nabywanie zdolności do tworzenia coraz bardziej
    >skomplikowanych systemów.

    Nikt nei mowi ze nie tzreba miec metodologii. Owszem, tzreba. Tylko
    metodologia Kolegi jest z lat 50tych. teraz sa inne metodologie. Nei
    da sie tego opisac na usenecie. Proponuje ksiazki lub kursy.

    >Tak właśnie mnie naszło, że rozmiar projektu nie wyraża się w ilości
    >linii kodu czy ilości klas, ale w metodologi jakiej on wymaga.

    Nie. Zlozonosc problemu wyraza sie przy pomocy roznych miar, ale na
    pewno nie przy pomocy metodologii.

    >Jak cały
    >projekt trzyma się w główce i nie ma problemu podczas tworzenia
    >programu/systemu to raczej taki projekt jest mały (przynajmniej dla tego
    >co pisze). Większe projekty jakich się już indywidualnie nie ogarnia w
    >szczegółach (bo np. tyle się w nich dzieje jednocześnie, albo mają tak
    >dużo modułów) dalej można realizować poprzez metodologię małych kroków.
    >

    kazdy ma swoj kawalek. U mnie ludzie pracuja "zadaniowo" - dostaja
    problem do rozwiazania. Kazdy jest architektem i programista. Nie ma
    "koderow". Facio zna interfejs, a jak zrobi swoj kawalek to juz jego
    sprawa. Oczywiscie, jest kontrolowany, ale dosyc ogolnie. Pare osob
    kontroluje interfejsy, inne osoby kontroluja wymagania, inne osoby
    robia testy. Wszystko ciagle sie zmiena bo ciagle mamy roznych
    klientow (i to w tym samym czasie) ktorym tzreba robic rozne zmiany. i
    Jakos sie nei wywala. Tak na marginesie, jest ponad setka ludzi i
    ponad 50 milionow linii kodu.

    >A Wy jaki macie przepis na tworzenie coraz poważniejszych systemów?
    >Zatrudnianie kolejnych "geniuszy"? dla których ten kolejny system będzie
    >mały, więc będą oni mogli go sobie trzymać w główce i "będzie git". Moim
    >zdaniem to nie jest podejście inżynierskie tylko siłowe i w końcu trzeba
    >będzie się oprzeć na metodologi.

    Nasza metodologie spisane jest na jednej kartce i przypieta pluskiewka
    w kuchni. No i nie ma jednej osoby ktora "ma caly system w glowie".
    Owszem, rozne osoby maja "system w glowie" ale rozne jego aspekty i na
    roznych poziomach hierarchii

    Ja bym jednak proponowal poczytac o Agile, spiral development,
    adaptive development, unit testing, specjalnie w kontekscie Agile czy
    "test driven development". Tyle ze to doscy duzo czytania :)

    A.L.


  • 16. Data: 2012-02-18 03:06:21
    Temat: Re: procedura tworzenia programów
    Od: Andrzej Jarzabek <a...@g...com>

    On 17/02/2012 21:55, A.L. wrote:
    >
    > Programwoanie w parch to paranoja. Jedyna forma programwoanai w parach
    > ktora znam to nie taka ze dwoch pracuje nad tym samym problemem, ale
    > taka ze jeden pracuje nad dwoma problemami. Gdy koszt programisty jezt
    > rzedu 200 tysiecy dolarow rocznie (nei wiem ile w Polsce) to za
    > propozycje programwoania parami mozna dostac kopa w dolna czesc ciala.

    Nie mam dużego doświadczenia w programowaniu w parach, ale na podstawie
    tego, co piszą ludzie, którzy to praktykują i z mojego doświadczenia
    wynika, że w odpowiednich warunkach i sensownie zrobione może to mieć
    duży sens.

    Przede wszystkim mogę zaobserwować, że fizyczne klepanie kodu zajmuje
    bardzo niewielki wycineek mojego czasu. Wiele z innych czynności mogłoby
    być znacznie przyspieszone przez programowanie w parach, albo jest i tak
    dublowaniem tego, co bym robił programując w parze z kimś innym, tylko
    mało efektywnie (transfer wiedzy).

    Moje doświadczenie wskazuje na przykład, że w przypadku takich czynności
    jak projektowanie albo znajdowanie problematycznych bugów, naradzenie
    się z drugą osobą, która również "siedzi w temacie" jest często
    wielokrotnie (więcej niż dwukrotnie, nierzadko znacznie więcej) szybsze,
    niż siedzenie i głowienie się samemu. Tyle że w typowej sytuacji, w
    której pracuję, w zespole nie ma takiej osoby.

    Z drugiej strony wygląda to tak, że ktoś zgłasza się do mnie z prośbą o
    pomoc lub wytłumaczenie czegoś. Ponieważ ja akurat robię zupełnie coś
    innego, to po pierwsze sama zmiana kontekstu zaburza moją produktywność
    w tym, co robię, po drugie muszę poświęcić ileśtam czasu na zrozumienie
    problemu mojego kolegi, w dodatku do czasu poświęconego na samo
    tłumaczenie. W końcu wszelkie problemy w komunikacji mogą powodować, że
    kolega, który coś źle zrozumiał, zrobi źle, więc nie tylko część
    poświęconego czasu była zmarnowana, ale to, że zrobił źle, potencjalnie
    zmarnuje jeszcze więcej czasu innych ludzi. Z kolei ja, pracując nad
    czymś innym, nie mam ani głowy, ani obowiązku ani konkretnej motywacji,
    żeby sprawdzić, czy to, co tłumaczyłem przełożyło się na prawidłowe
    wykonanie.

    I skoro już o tym mowa - defekty są sporym problemem. Pomijając już
    koszta związane z ich manifestacją w systemach produkcyjnych, to samo
    diagnozowanie, znajdowanie i usuwanie ich pochłania wiele czasu wielu
    ludzi, w tym również owych cennych programistów. Jeśli para programistów
    produkuje kod z mniejszą ilością defektów niż pojedynczy programista (na
    co również wskazują różne dane), to oszczędność czasu na samym tym może
    znacznie przewyższać potencjalną stratę na tym, że dwóch programistów
    siedzi nad jednym problemem.

    W końcu jest ten subtelny psychologiczny aspekt "satysfakcji z pracy".
    Oczywiście menedżment może przyjąć punkt widzenia taki, że w pracy się
    nie siedzi dla przyjemności, a dla firmy są ważne zyski i straty a nie
    zadowolenie pracowników - a jam sam z kolei mogę byc oskarżony o to, że
    mam własny interes w tym, żeby mieć satysfakcję z pracy, nawet kosztem
    zyskó pracodawcy. Ale też mam pewne wsparcie w literaturze twierdząc, że
    satysfakcja pracowników (w szczególności developerów) ma bardzo
    konkretne przełożenie na pieniądze: na ten przykład Tom DeMarco i
    Timothy Lister "Peopleware".

    Z jednej strony moje doświadczenie jest takie, że utknięcie na jakimś
    problemie i niemożność obgadania go z kimś jest frustrująca. I że im
    bardziej frustrująca praca, tym szybciej się ją zmienia na inną, a
    programista, który cośtam potrafi nie tylko nie będzie miał z tym
    problemów, ale nawet będą do niego regularnie dzwonić headhuntery i
    podsuwać mu propozycje. DeMarco i Lister twierdzą, że wymiana
    pracownika, nawet jeśli natychmiast znajdzie się nowego pracownika o
    podobnych kwalifikacjach na jego miejsce, kosztuje mniej więcej tyle, co
    półroczny koszt zatrudnienia tego pracownika - niekiedy mniej, ale
    niekiedy znacznie więcej. Wydaje mi sie to sensownym oszacowaniem.

    Druga strona medalu jest taka, że programowanie parami może pomagać w
    integrowaniu zespołu, tym, co DeMarco i Lister nazywają "jelling".
    Twierdzą oni, z czym również się zgadzam, że takie "jelled" zespoły
    osiągają radykalnie lepsze rezultaty, co oczywiście też się przekłada na
    pieniądze.

    Oczywiście prawdziwość tego wszystkiego, a co za tym idzie skuteczność
    programowania w parach zależy mocno od tego jak jest to robione i jak w
    ogóle działa cały zespół. Ale też w XP wprost zakłada się, że
    poszczególne praktyki działają w kontekście innych praktyk, i dlatego
    programowanie parami powinno być połączone co najmniej z TDD,
    rozbudowanymi coding standards, collective ownership, daily stand-up itd.

    > Ja kuz mowilem o Agile. Proponuje poczytac na ten temat

    Aglie jako takie jest raczej ogólnym podejściem, "duchem", niż jakąś
    konkretną metodologią. Można jednak zauważyć, że:
    1. XP jest uważane za metodologię agile,
    2. Zespoły praktykujące agile, nawet jeśli nie stosują XP, często
    programują parami,
    3. Zgodnie z założeniami agile m. in. o tym, czy progrmauje się parami,
    czy pojedyczno, jak również o wielu innych rzeczach, decyduje sam
    zespół, a nie kierownictwo. Jeśli jest się w sytuacji, w której nie
    można uprawiać programowania parami ze względu na brak zgody
    kierownictwa, to nie da się również uprawiać agile, niezależnie od tego,
    czy z programowaniem parami, czy bez - zespół po prostu ma za mało
    autonomii.

    >> Jak waszym zdaniem powinno wyglądać zapewnienie jakości?
    >
    > Nom na ten temat mapisano moze ksiazek i stworzono ocena metodologii,
    > poczynajac od testow jednostkowych. W normalnym przemyslowym
    > srodowisku programista musi napisac testy jednostkowe do wszystkiego
    > co robi; w wiekscosci przypadkow to jest okolo 75% kodu ktory
    > programista pisze. Te testy sa scentralizowane i wykonywan pzrez
    > osobny personel. U mnie - co noc.

    Personel? U nas to robi maszyna :)

    > Poza tym, znow polecam Agile w kontekscie jakosci, wszczegolnocis cos
    > takiego jak "test driven development". Ksiazka jest na ten temat, i to
    > o ile pamietam, nie jedna

    Bardzo polecam - Steve Freeman, Nat Pryce "Growing Object Oriented
    Software Guided By Tests".


  • 17. Data: 2012-02-18 03:31:01
    Temat: Re: procedura tworzenia programów
    Od: Edek Pienkowski <e...@g...com>

    Dnia Fri, 17 Feb 2012 21:33:08 +0100, szyk napisal:

    > Kilkukrotnie pojawiło się stwierdzenie, że ta procedura przypomina
    > niesławny model "waterfall" oraz stwierdzenie, że tak się już nie robi
    > ze wskazaniem na model iteracyjny. Nasuwają się pytania takie:

    Model "agile" zdecydowanie usuwa sporo wad modelu "waterfall".

    Ja bym tylko chciał zwrócić uwagę na inny aspekt sprawy: menedżerowie
    są potrzebni. Ogólnie wiadomo, że sami programisci często pogrążeni
    sa w codziennym rozwijaniu kodu i jakoś tak jest, że w grupie musi
    być jakiś leader, który wprowadzi może nie tyle dyscyplinę, co
    przypomni, upomni, powie "no bardzo fajna implementacja, ale nad
    testami może warto jeszcze trochę czasu spędzić", albo co najmniej
    ma ostatnie słowo w kwestii "czyją wizję realizujemy".

    Pracowałem w b. dużych zespołach i widziałem Waterfall zrobiony dobrze,
    gdzie ilość WTFków była mocno ograniczona, projekty były na tyle
    dopracowane, że miały od początku do końca sens, cykl Waterfalla
    (bo tak to było, dla programistów jak jedna faza implementacji się
    kończyła to już sprawdzali projekt kolejnej, bo byli "o to męczeni")
    - ten cykl nie był za długi w porównaniu do rozmiaru całości.

    Widziałem też Waterfall zrobiony źle. Procedur wszyscy niby
    przestrzegali, ale: architekci mieli głowę trochę za wysoko, żeby
    zniżać się do sprawdzenia, czy projekt ma sens, programiści robili
    co mogli, ale dostosowywali się do sytuacji, menedżerowie dbali
    co najwyżej o PR wewnętrzny, a testerzy nie wiedzieli, co się dzieje,
    bo całość wysypywała się artystycznie za każdym razem w innym miejscu
    niezależnie od tego, czy kampania testów się zaczynała czy kończyła.

    Oba przechodziły na Agile, ten udany nadal był udany, temu drugiemu
    cyhba to niewiele pomoże.

    >
    > 1. Jakie są wady i zalety modelu iteracyjnego?
    > Ja pisałem programy właśnie zgodnie z "modelem iteracyjnym" i według
    > mojego pojęcia była to kompletna partyzantka: gdy tylko jedno kończyłem
    > dostawałem nowe wytyczne i musiałem znowu pół programu przewalać by
    > zaimplementować "nowy ficzer". Słowem chaos i ciągłe przeróbki. Stąd
    > moje poszukiwania systematycznej metodologi. Muszę też przyznać, że na
    > temat "sprytnych" podejść do procesu wytwarzania to czytałem jedynie
    > "Programowanie ekstremalne" ale uznałem to za nie praktyczne w moim
    > przypadku i nie do przeforsowania w robocie (np. programowanie w
    > parach).

    Programowania w parach jeszcze nie widziałem. Testy, review, ogólne
    wytyczne itd. istnieją i w Agile i w Waterfall; Agile przede wszystkim
    skraca cykl, ale nie zmienia wbrew pozorom podstawowych zasad. W praktyce
    programiści do Agile przystosowywali się całkiem szybko, gorzej z
    menedżerami projektów, którzy nagle dostali cioty, bo nie wiedzieli,
    jaką mają mieć rolę i czy w ogóle są potrzebni.

    Jeden z coachów Agile ujął to tak, że jeden z ważniejszych aspektów Agile
    polega na tym, że wszystko od razu widać, nie zamiata się pod dywan,
    nie odkłada na później. Poza tym: bizness as usual.

    >
    > 2. Czy ten przedstawiony w tym wątku model da się przetransformować na
    > iteracyjny?
    > Moim zdaniem tak. Przy każdej zmianie wymagań trzeba zaczynać od punktu
    > 1 i kończyć na punkcie 9 bez dotykania tych części systemu jakie się nie
    > zmieniają w nowej wersji.

    Jak najbardziej tak, tyle że to będzie inaczej wyglądać.

    >
    >
    > Druga sprawa jaka jest pomijana przez dyskutantów, to kwestia
    > zapewnienia jakości oprogramowaniu. Wiem np. że poprzez odpowiednie
    > metodologie w NASA redukuje się błędy w oprogramowaniu do 0,0% (wymienia
    > się systemy rzędu 500k linii kodu). Więc nasuwa się pytanie:

    There Is Always One More Bug.

    >
    > Jak waszym zdaniem powinno wyglądać zapewnienie jakości?

    To o czym każdy wie: testy. Innymi czynnikami dysponują architekci i
    programiści takich bardziej "core'owych" części, dobry projekt jest
    tak napisany, żeby był odporny na błędy. To brzmi może jak abstrakcja,
    ale często ma duży wpływ na unikanie wielu problemów, które można
    przewidzieć. Nie mówiąc już o tym, że cokolwiek się wybierze,
    mam na myśli ogólny schemat czy cokolwiek w tym rodzaju, każdy
    będzie po tym jechał, bo nie ma idealnych rozwiązań. Więc lepiej
    nie generować zbyt wielu problemów.

    Same testy to temat sam w sobie, programiści sami testują,
    ale potem i tak potrzebni są testerzy, w dużych firmach to osobne
    i liczne zespoły, plus czasem tak zwany "pierwszy klient", czyli
    zespół, który dostaje finalną wersję.

    >
    > Ja proponuję podejście od A do Z - czyli: Praca nad jakością na każdym
    > etapie. To jest główny cel tej metodologi.
    >
    > Kolejna sprawa: Metodologia to jeden z trzech znanych mi sposobów
    > ograniczania ryzyka (drugi to zakup czegoś co już działa, trzeci to
    > zatrudnienie ludzi co już coś takiego stworzyli). Więc:
    >
    > Jak waszym zdaniem ograniczać ryzyko?

    Ktoś chyba już pisał: nic nie robić. Ryzyko trzeba oszacować i sobie z
    nim radzić. To nie jest rolą programisty, tylko kogoś, kto trzyma
    kasę, nawet tą wirtualną. Ograniczanie ryzyka polega głównie na tym,
    żeby go nie olać, resztę się zrobi.

    >
    >
    > Kolejna sprawa: metodologia wprowadza ekonomię sił, i ograniczanie
    > szamotaniny marnującej i wytracającej energię (tłuczenie w pętli zmian
    > specyfikacji, kodu i testów).

    Od tego są menedżerowie, żeby nie było szamotaniny
    ani innych przykrych spraw, które prędzej czy później się pojawią.
    http://c2.com/cgi/wiki?FixBrokenWindows

    >
    > Jak chcecie ograniczać ilość iteracji? Jak nie metodologią?

    Nie rozumiem idei "ograniczania ilości iteracji" samej w sobie.
    Agile robi wręcz odwrotnie. Podejrzewam, że problem leży gdzie indziej.

    >
    > Interesujące było by jakie mielibyście rozwiązanie uwzględniające tą
    > "ekonomię sił" w kontekście pracy indywidualnego programisty który ma
    > ambicję stworzyć coś co było by przydatne dla innych.

    Robić swoje i współpracować z innymi. Również z tymi, co mają inne
    zdanie.

    >
    > Kolejną zaletą stosowania metodologi (nawet tak lekkiej jak pół ekranu
    > tekstu) jest nabywanie zdolności do tworzenia coraz bardziej
    > skomplikowanych systemów.
    > Tak właśnie mnie naszło, że rozmiar projektu nie wyraża się w ilości
    > linii kodu czy ilości klas, ale w metodologi jakiej on wymaga. Jak cały
    > projekt trzyma się w główce i nie ma problemu podczas tworzenia
    > programu/systemu to raczej taki projekt jest mały (przynajmniej dla tego
    > co pisze). Większe projekty jakich się już indywidualnie nie ogarnia w
    > szczegółach (bo np. tyle się w nich dzieje jednocześnie, albo mają tak
    > dużo modułów) dalej można realizować poprzez metodologię małych kroków.
    >
    > A Wy jaki macie przepis na tworzenie coraz poważniejszych systemów?
    > Zatrudnianie kolejnych "geniuszy"? dla których ten kolejny system będzie
    > mały, więc będą oni mogli go sobie trzymać w główce i "będzie git". Moim
    > zdaniem to nie jest podejście inżynierskie tylko siłowe i w końcu trzeba
    > będzie się oprzeć na metodologi.

    Nie mam przepisu. Dobrym menedżerom za to właśnie się płaci, bo tak poza
    tym, po co komu menedżer?

    Od strony inżynierskiej to już zależy od wymagań. Inaczej robi się
    strony dla picu, inaczej bankowe, inaczej oprogramowanie medyczne,
    inaczej wewnętrzne narzędzia (np. potrzebne do testów).

    A co do "geniuszy", to to określenie o mniej popularnych konotacjach.
    Ale programiści są lepsi i śrdniejsi, trzeba tym lepszym dawać właśnie
    te części, które tego wymagają. Nie da się też pracować bez kiespkich
    programistów, każdy jest przydatny z zupełnie nie inżynierskich względów.

    Edek

    PS. Dajcie ulgę przy ocenianiu wynurzeń ze względu na porę nocy... ;)


  • 18. Data: 2012-02-18 04:27:02
    Temat: Re: procedura tworzenia programów
    Od: A.L. <l...@a...com>

    On Sat, 18 Feb 2012 03:06:21 +0000, Andrzej Jarzabek
    <a...@g...com> wrote:

    >On 17/02/2012 21:55, A.L. wrote:
    >>
    >> Programwoanie w parch to paranoja. Jedyna forma programwoanai w parach
    >> ktora znam to nie taka ze dwoch pracuje nad tym samym problemem, ale
    >> taka ze jeden pracuje nad dwoma problemami. Gdy koszt programisty jezt
    >> rzedu 200 tysiecy dolarow rocznie (nei wiem ile w Polsce) to za
    >> propozycje programwoania parami mozna dostac kopa w dolna czesc ciala.
    >
    >Nie mam dużego doświadczenia w programowaniu w parach, ale na podstawie
    >tego, co piszą ludzie, którzy to praktykują i z mojego doświadczenia
    >wynika, że w odpowiednich warunkach i sensownie zrobione może to mieć
    >duży sens.
    >

    Qrde, a ja pracuje w firmie a nie ejstem studentem, i wiem jak sie
    oglada kazdego dolara i jaka jest zajebista procedure jak sie chce
    kogos zatrudnic.

    Wiec prosze mi tu nie opowiqdac dyrdymolow o "programowaniu parami".
    Takie cos mozliew byloby w zaawansowanym socjalizmie, ale z tym
    systemem dawno sie, mam nadzieje, pozegnalismy. A jak dwoch bedzie
    pracowac nad tym samym, to na ogol jeden bedzie zasuwal a drugi bedzie
    sie opierdalal. Zwlaszca ze parca programisty, jako myslowa, jest
    jednooosobowa.

    A co na ten temat mowia "gurus"?... A gu...wno mnie to obchodzi

    A.L.


  • 19. Data: 2012-02-18 04:31:22
    Temat: Re: procedura tworzenia programów
    Od: Edek Pienkowski <e...@g...com>

    Dnia Fri, 17 Feb 2012 22:27:02 -0600, A.L. napisal:

    > On Sat, 18 Feb 2012 03:06:21 +0000, Andrzej Jarzabek
    > <a...@g...com> wrote:
    >
    >>On 17/02/2012 21:55, A.L. wrote:
    >>>
    >>> Programwoanie w parch to paranoja. Jedyna forma programwoanai w parach
    >>> ktora znam to nie taka ze dwoch pracuje nad tym samym problemem, ale
    >>> taka ze jeden pracuje nad dwoma problemami. Gdy koszt programisty jezt
    >>> rzedu 200 tysiecy dolarow rocznie (nei wiem ile w Polsce) to za
    >>> propozycje programwoania parami mozna dostac kopa w dolna czesc ciala.
    >>
    >>Nie mam dużego doświadczenia w programowaniu w parach, ale na podstawie
    >>tego, co piszą ludzie, którzy to praktykują i z mojego doświadczenia
    >>wynika, że w odpowiednich warunkach i sensownie zrobione może to mieć
    >>duży sens.
    >>
    >>
    > Qrde, a ja pracuje w firmie a nie ejstem studentem, i wiem jak sie
    > oglada kazdego dolara i jaka jest zajebista procedure jak sie chce kogos
    > zatrudnic.
    >
    > Wiec prosze mi tu nie opowiqdac dyrdymolow o "programowaniu parami".
    > Takie cos mozliew byloby w zaawansowanym socjalizmie, ale z tym systemem
    > dawno sie, mam nadzieje, pozegnalismy. A jak dwoch bedzie pracowac nad
    > tym samym, to na ogol jeden bedzie zasuwal a drugi bedzie sie
    > opierdalal. Zwlaszca ze parca programisty, jako myslowa, jest
    > jednooosobowa.
    >
    > A co na ten temat mowia "gurus"?... A gu...wno mnie to obchodzi

    Najwyraźniej Pan się nie nadaje do pracy w parach, kto by chciał
    pracować z kimś w parze, jeżeli nie można liczyć na chociażby cień
    uznania dla osławionego guru X (nie mylić z guru Y).

    Edek



  • 20. Data: 2012-02-18 08:59:45
    Temat: Re: procedura tworzenia programów
    Od: szyk <s...@o...pl>

    W dniu 2012-02-17 22:55, A.L. pisze:
    > programista pisze. Te testy sa scentralizowane i wykonywan pzrez
    > osobny personel. U mnie - co noc.

    Jaki soft jest używany do takich testów i na jakim systemie operacyjnym
    to śmiga?

strony : 1 . [ 2 ] . 3 ... 10 ... 13


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: