eGospodarka.pl
eGospodarka.pl poleca

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

  • 61. Data: 2012-02-19 19:06:45
    Temat: Re: procedura tworzenia programów
    Od: " M.M." <m...@g...pl>

    Andrzej Jarzabek <a...@g...com> napisał(a):

    > Na pewno jednak też zdajesz sobie sprawę, że niezależnie od strat
    > spowodowanych w produkcji, znajodwanie i naprawianie błędów w programach
    > jest nieproporcjonalnie bardziej prachochłonne niż pisanie nowego kodu.
    Zart?

    Mozna tak ogolnie powiedziec w oderwaniu od konkretnego przypadku?
    Czasami lepiej jest napisac na nowo, a czasami lepiej poprawic.

    Pisalem na nowo glownie poto zeby miec druga (trzecia) wersje i
    sprawdzic czy daja te same wyniki. W ekstremalnej optymalizacji tez
    dochodzilem do wniosku ze zmian bedzie az tak duzo, ze lepiej przepisac
    niemal na nowo. Podobnie gdy dochodzilem do wniosku ze oplaca sie zmienic
    interfejsy komunikacyjne... wtedy tez prawie pisalo sie na nowo.

    Ale w zwyklchy aplikacjach, gdy najbardziej liczy sie zysk ze sprzedazy w
    stosunku do kosztow wykonania to rzadko sie oplaca pisanie duzych
    fragmentow od nowa, a moze nigdy sie nie oplaca.

    Pozdrawiam


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


  • 62. Data: 2012-02-19 19:23:07
    Temat: Re: procedura tworzenia programów
    Od: Andrzej Jarzabek <a...@g...com>

    On 19/02/2012 14:33, Bronek Kozicki wrote:
    > On 19/02/2012 12:31, Andrzej Jarzabek wrote:
    >>
    >> Druga sprawa jest taka, że to, co opisujesz jest tylko możliwe wtedy,
    >> kiedy masz innych członków zespołu pracujących nad tym samym, co ty. A
    >> to ma te same wady, które są przypisywane programowaniu parami.
    >
    > różnica polega na tym, że każdy z członków zespołu może w danym momencie
    > pracować nad innym zadaniem, i tylko okazjonalnie poświęcić swoją uwagę
    > zadaniom kolegów.

    W takiej sytuacji jest kilka problemów:

    Skoro kolega zajmuje się czymś innym, to niekonieczenie ma orientację w
    tym, co robisz, żeby jakkolwiek pomóc. Więc musi się wdrożyć w tematem,
    potem musi się zastanowić nad twoim problemem, potem ci powiedzieć, co
    wymyślił. To wszystko też zajmuje czas, a zanim to się stanie, to ty
    możesz co najwyżej samemu się zastanawiać nad rozwiązaniem swojego
    problemu. W końcu jeśli wymyślisz lepsze rozwiązanie, to jego czas
    został zmarnowany, jeśli jego rozwiązanie jest lepsze, a ty, czekając na
    niego zacząłeś już implementować swoje, gorsze, to musisz pozmieniać to,
    co właśnie zrobiłeś.

    Kolejną istotną sprawą jest czas przestawienia się, zmiany kontekstu.
    Jeśli twój kolega pracuje nad czymś innym, ale odrywa się od swojej
    pracy, żeby tobie pomóc, to powrót do stanu wysokiej produktywności przy
    tym, co robił wcześniej, zajmie mu sporo czasu. Szacuje się, że
    każdorazowy "context switching" to strata kilku roboczogodzin. Żeby nie
    było, że to tylko moje zdanie, to odsyłam znowu do "Peopleware".

    > A to że nad jednym projektem pracuje więcej niż jedna
    > osoba, nie ma żadnego związku z programowanie parami (zdarzało mi się to
    > drugie też) tylko to zdrowy rozsądek.

    Problem jest taki, że w jednym projekcie jest zwykle wiele oderwanych od
    siebie tematów i zadań. To, że ktoś pracuje nad modelem GUI do tego
    samego produktu, nie znaczy, że będzie miał cokolwiek do powiedzenia w
    temacie zrównoleglenia obliczeń.


  • 63. Data: 2012-02-19 19:24:23
    Temat: Re: procedura tworzenia programów
    Od: Bronek Kozicki <b...@s...net>

    On 19/02/2012 15:45, A.L. wrote:
    > Ja mialem kiedyc na intervice takiego goscia, ktory jak twierzil jest
    > wybitnym ekspertem od C++ i zadal dobrze ponad 100 tysiecy dolcow
    > rocznie. N pytanei i wyjatki, powiedziel bez krepacj ize nei zna. Gdy
    > zaczalem drazyc, powiedzial ze "C++ jest zbyt skomplikowany zeby jeden
    > czlowwiek go opanowal. Wiec jeden zna wyjatki, a drygi templates i tak
    > dalej. A sztuka zbudowanai zespolu polega na tym zeby wszyscy znali
    > calosc".

    niezłe - chyba będę cytował :)


    B.


  • 64. Data: 2012-02-19 19:44:52
    Temat: Re: procedura tworzenia programów
    Od: Andrzej Jarzabek <a...@g...com>

    On 19/02/2012 19:06, M.M. wrote:
    > Andrzej Jarzabek<a...@g...com> napisał(a):
    >
    >> Na pewno jednak też zdajesz sobie sprawę, że niezależnie od strat
    >> spowodowanych w produkcji, znajodwanie i naprawianie błędów w programach
    >> jest nieproporcjonalnie bardziej prachochłonne niż pisanie nowego kodu.
    > Zart?
    >
    > Mozna tak ogolnie powiedziec w oderwaniu od konkretnego przypadku?
    > Czasami lepiej jest napisac na nowo, a czasami lepiej poprawic.

    Nie mówię, że w sensie - "jak jest błąd, to wyrzucić wszystko i napisać
    od nowa" - to absurd. Mówię o tym, że w ileś tam dni można napisać
    całkiem sporo linii kodu, ale nietrudno też w tym kodzie popełnić kilka
    błędów takich, że poprawienie jednego z nich też zajmie kilka dni.


  • 65. Data: 2012-02-19 19:48:37
    Temat: Re: procedura tworzenia programów
    Od: " M.M." <m...@g...pl>

    bartekltg <b...@g...com> napisał(a):

    > ale za Chiny Ludowe nie widzę przypadku,
    > który odpowiadałby histroi o podnoszeniu szafki.

    Nie rozumiem czego nie rozumiesz.

    Nie zdarzylo Ci sie nigdy siedziec z kolega nad
    wspolnym problemem?

    Czy moze zawsze w tym samym czasie znajdowales rozwiazanie
    co kolega?

    A moze zawsze znales pierwszy rozwiazanie niz kolega?

    A moze zawsze gdy sie Ty myliles to kolega sie z Toba zgadzal
    ze masz racje i nic nie pomagal?

    Moze jestes taki dobry ze nawet 10 osob nie poda lepszego
    rozwiazania?

    Pozdrawiam


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


  • 66. Data: 2012-02-19 20:11:46
    Temat: Re: procedura tworzenia programów
    Od: bartekltg <b...@g...com>

    W dniu 2012-02-19 20:48, M.M. pisze:
    > bartekltg<b...@g...com> napisał(a):
    >
    >> ale za Chiny Ludowe nie widzę przypadku,
    >> który odpowiadałby histroi o podnoszeniu szafki.
    >
    > Nie rozumiem czego nie rozumiesz.
    >
    > Nie zdarzylo Ci sie nigdy siedziec z kolega nad
    > wspolnym problemem?
    >
    > Czy moze zawsze w tym samym czasie znajdowales rozwiazanie
    > co kolega?
    >
    > A moze zawsze znales pierwszy rozwiazanie niz kolega?
    >
    > A moze zawsze gdy sie Ty myliles to kolega sie z Toba zgadzal
    > ze masz racje i nic nie pomagal?

    Ale to ma się nijak do histroi o wspolnym podnoszeniu
    mebla. To wszystko 'pokazywanie że się ominęło śmiecia'.
    Tego nie kwestionuję. Chciałem tylko zobaczyć przykład
    z programowania odpowiadający historii o wspolnym
    podnoszeniu mebla.

    Masz taki, czy jednak analogia była nietrafiona?

    pzdr
    bartekltg





  • 67. Data: 2012-02-19 20:35:30
    Temat: Re: procedura tworzenia programów
    Od: Andrzej Jarzabek <a...@g...com>

    On 19/02/2012 15:45, A.L. wrote:
    >
    > Programwoanei parami i XP zostalo wymyslone pzrez kretynow dla
    > kretynow. Proponuje pamietac ze zostalo ono wymyslone w trakcie takieg
    > ospobie projektu w ktorejs z firm samochodowych. Projekt calkowicie
    > upadl, a caly zespol zostl wyrzucony na tak zwana "zbita trwarz".
    > Poniewaz guru mial jakby spalone w przemysle, postanowil zostac Guru.
    > I owszem, w swoicn memuarach pisal na temat owego projektu: "Yes,
    > project failed, but methodology was right".

    Oczywiście jakby kogoś interesowały takie pierdoły jak fakty, to ten
    "guru" to Kent Beck, który dzisiaj pracuje m.in. jako programista w
    Facebooku, a jego kretynizm przejawia się m. in. tym, że wymyślił
    również Test Driven Development i jest współtwórcą JUnit.

    System, o którym mowa, Chrysler Comprehensive Compensation, został
    wdrożony do produkcji w 1997 roku, z dwumiesięcznym opóźnieniem.
    Problemem były dalsze fazy wdrożenia, które się nie udały - Beck
    twierdzi że (w skrócie) z powodu konfliktu między działami płac
    kierownictwem IT. Oczywiście być może kłamie i zawiniła jego indolencja,
    ale jako komuś, kto przez parę ładnych lat pracował w dużych
    korporacjach, jego wersja nie wydaje mi się szczególnie
    nieprawdopodobna. A fakt, że Chrysler miał mergera w 1998 (żeby nie
    powiedzieć że został przejęty), jak i dalsza historia firmy
    DaimlerChrysler skłania mnie do tego, żeby jednak w tej kwestii wierzyć
    Beckowi.

    Wszystko to łatwo sprawdzić w powszechnie dostępnych źródłach informacji.


  • 68. Data: 2012-02-19 21:14:53
    Temat: Re: procedura tworzenia programów
    Od: A.L. <l...@a...com>

    On Sun, 19 Feb 2012 19:18:08 +0100, szyk <s...@o...pl> wrote:

    >
    >> "Praca parami" to nie relacja "dyrektor-zastepca". No i ciekawe by
    >> bylo gdyby kazdy programista mial "zastepce".
    >
    >Co w tym dziwnego? Co prawda sam nie widziałem czegoś takiego, ale mogę
    >sobie wyobrazić, że jakiś "super-mistrz-zen" vel "starszy programista"
    >ma "do swojej dyspozycji" kilku "młodszych programistów" którzy
    >wyczesują dla niego różne trzeciorzędne tematy (np. przygotowanie
    >środowiska po instalacji systemu, albo oskrypcenie jakiejś czynności,
    >opracowanie wersji na inne systemy, robienie instalatorów, podczepianie
    >zewnętrznej biblioteki pod fasadę zdefiniowaną przez "mistrza"). Mi by
    >się to wydawało normalką tak jak w zakładach rzemieślniczych "mistrz" i
    >"uczniowie". Poza tym w każdej poważnej firmie musi być "zastępca
    >programisty" na okoliczność sytuacji życiowych (urlop, choroba,
    >odejście), bo inaczej co? Programista znika i firma stoi?

    Bycie firmy nie zalezy od programistow. To tak jakby powiedzec ze przy
    budowie mostu kazdy spawacz musi meic zastepce, bo jakby ten wlasciwy
    poszedl na chorobe i nei bylo zastepcy, to by sie budowa zawalila.

    Cmentarze pelne sa "niezastapionych ludzi".

    A jak idzie o "pojscie na chorobe"?... Jak zaczalem pracowac w pewnej
    firmie, dosyc dawno temu, na "dzien dobry" dostalem 100 tysiecy linii
    Smaltalka z propozycja abym przyspieszyl wykonywane tak ze 2 czy 3
    razy, i to szybko, bo jak nei to stracimy kontrakt. Oryginalny
    producent kodu byl sie zwolnil i poszedl pracowac gdzie indziej. No i
    co? No i nic. To sie nazywa "propozycja nei do odrzucenia"

    Natomiast podzial zadan, i owszem jest, ale nie dokladnei taki jak
    piszesz. Ja na przykald robie prototyp - ten prototyp wymaga dosyc
    duzej wiedzy, matematycznej zwlaszcza, ale nie uwzglednai zadnych
    detali "rzeczywistego" problemu. Albowiem owe detale opoznialyby prace
    nad koncepcja i bylyby neispecjalnie istotne. Prototyp uwzglednai
    tylko glowne cechy problemu. Prototyp dostaje dwoch mlodziencow ktorzy
    dokonuja "produktyzacji', na przykald zamiast "szkeletowego domain
    model" uzywaja prawdziwy, podlaczaja do bazy danych, hibernate, itede.
    i testuja na produkcyjnych danych. Oczywiscie mam od nich "feedback" i
    czasami musze korygowac prototyp[ i testowac te korekcje.

    Dlaczego ja sam nei robie produktyzacji? Ano bo moja godzina kosztuje
    za duzo zebym sie zajmowal zagadnieniami trywialnymi, a poza tym,
    trzeba robic nastepny prototyp.

    A co bedzie jak sie zwolnie? Ano, nic. Ci mlodziency znaja problem na
    tyle, ze to co jest dokoncza i beda mogli rozwijac dalej. Nowego
    prototypu nowej funkcjonalnosci nie bedzie, ale bez tego firma
    przezyje i to dosyc dlugo.

    Natomiast zeby nei wiem co pisac o "pair programming" i podobnych
    rzeczach - koszt projektu jest sprawa najwazniejsza. Albowiem jak sie
    sklada papiery w przetargu, to tzreba napisac ile projekt bedzie
    kosztowal. Jak zorganizujemy go tak ze przy jednym komputerze bedzie
    siedzialo dwoch facetow, to albo: a) koszt projektu wzrosnie
    dwukrotnie, albo b) kazdy z facetow zadowoli sie polowa pensji. W tym
    przypadku by to oznaczal oze obaj maja umiejetnosci ponizej poziomu.
    Bo gdyby mieli takie umiejetnosci jak tzreba, to by sie natychmiast
    zatrudnili za pelna pensje w firmie po drugiej stronie ulicy.

    A koszt projektu estymuje sie z grubsza jako ilocyn kosztu pracownika
    produkcujnego pzrez ilosc pracownikow produkcyjnych. Koszt pracownika
    produkcyjnego to 2 - 3 razy jego pensja, i ejst to liczba pilnie
    stzrezona przez firme, albowiem to decyduje o kosztach projektu.
    Konkurencja nei ma prawa tej liczby znac.

    A.L.


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

    On 19/02/2012 20:11, bartekltg wrote:
    >
    > Ale to ma się nijak do histroi o wspolnym podnoszeniu
    > mebla. To wszystko 'pokazywanie że się ominęło śmiecia'.
    > Tego nie kwestionuję. Chciałem tylko zobaczyć przykład
    > z programowania odpowiadający historii o wspolnym
    > podnoszeniu mebla.
    >
    > Masz taki, czy jednak analogia była nietrafiona?

    Ja mam taki przykład. Przepraszam, że bez szczegółów, ale ogólnie
    sytuacja wyglądała tak, że program się zachowywał w sposób, który nie
    powinien być możliwy. Byłem w stanie prześledzić do konkretnego momentu
    i po prostu wylgądało jakby zachowanie programu było sprzeczne z kodem,
    tudzież zmieniało się wraz ze zmianą okoliczności, które na to
    zachowanie nie powinny mieć wpływu. Straciłem dwa dni na debugowaniu wtę
    i wewtę, logowaniu różnych rzeczy, podstawianiu danych itd. i nic - po
    prostu paradoks. Pokazałem koledze i w 10 minut zorientowaliśmy się,
    gdzie popełniłem błędne założenie.

    Oczywiście możesz powiedzieć, że założenie błędne, bo gdybym nie
    poprosił kolegi o pomoc, to pewnie sam bym w końcu wpadł na właściwe
    rozwiązanie, nawet gdyby to miało zająć kolejne 3 dni, ale tak to już
    bywa z analogiami - nie zawsze są w 100% dokładne.

    Inną, być może lepszą, ale też trudniejszą do wykazania na konkretnym
    przykładzie analogią jest jakość kodu wytwarzanego przez programistów i
    jego konsekwencje. Najbardziej oczywistą sprawą jest ilość defektów:
    nawet mając dział QA, który wykrywa powiedzmy większość defektów, ilość
    tychże w kodzie programisty ma kolosalne znaczenie: zawsze ilość
    defektów pozostanie niewykrytych, co może narazić klientów na straty i
    spowoduje utratę reputacji firmy i zespołu, natomiast nawet te, które
    zostaną wykryte, będą opóźniać release lub powodować redukcję ficzerów w
    danej wersji. I teraz możesz założyć, że dany programista będzie
    popełniał ileś tam błędów w danym kawałku kodu - będzie to zależało od
    różnych czynników, jak język, narzędzia, metodologia itd., ale zawsze
    jakiś tam poziom błędów będzie. I w zasadzie niewiele może sam z siebie
    zrobić, żeby ten poziom błędów zmniejszyć - gdyby potrafił pisać lepiej,
    to by już tak pisał. Ta ilośc błędów to waga szafki, którą może
    udźwignąć. Pracując z drugim programistą razem stworzą kod, który ma
    mniejszą ilość defektów, niż którykolwiek z nich mógłby osiągnąć z
    osobna. Czyli dźwigają cięższą szafkę, niż każdy z nich z osobna mógłby
    udźwignąć.

    Taką samą analogię można zbudować dla innych parametrów jak performance,
    maintainablility, jakość projektu rozmaitych interfejsów itd.


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

    On Sun, 19 Feb 2012 19:24:23 +0000, Bronek Kozicki <b...@s...net>
    wrote:

    >On 19/02/2012 15:45, A.L. wrote:
    >> Ja mialem kiedyc na intervice takiego goscia, ktory jak twierzil jest
    >> wybitnym ekspertem od C++ i zadal dobrze ponad 100 tysiecy dolcow
    >> rocznie. N pytanei i wyjatki, powiedziel bez krepacj ize nei zna. Gdy
    >> zaczalem drazyc, powiedzial ze "C++ jest zbyt skomplikowany zeby jeden
    >> czlowwiek go opanowal. Wiec jeden zna wyjatki, a drygi templates i tak
    >> dalej. A sztuka zbudowanai zespolu polega na tym zeby wszyscy znali
    >> calosc".
    >
    >niezłe - chyba będę cytował :)
    >
    >
    >B.

    Nie jest "copyrighted", na dodatek jest prawdziwe, niestety...

    A.L.

    P.S. Czesto na samym poczatku interview delikwent zaznacza: "ale ja
    bez watkow". Na pytanie "dlaczego" padaja rozne odpowiedzi.
    Najczesciej ze "tego nie brali w szkole" albo ze "to jest sposob na
    klopoty"

strony : 1 ... 6 . [ 7 ] . 8 ... 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: