eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › ilu jest programistow na swiecie?
Ilość wypowiedzi w tym wątku: 272

  • 171. Data: 2011-05-19 10:48:57
    Temat: Re: ilu jest programistow na swiecie?
    Od: Andrzej Jarzabek <a...@g...com>

    On May 18, 6:06 pm, Michal Kleczek <k...@g...com> wrote:
    > Michoo wrote:
    > > Ale nadaje się do przetestowania usability już w momencie utworzenia
    > > GUI. Potem jako kolejne przyrosty będzie można zrobić obsługę kolejnych
    > > pitów.
    >
    > Ale sie nie nadaje do uzycia produkcyjnego (co jest postulowane przez
    > "agile").

    W którym miejscu?

    > Do testowania "usability" nie potrzeba zadnego "agile" - wystarczy wyklikac
    > _prototyp_ w jakims VB czy innym narzedziu RAD nie przejmujac sie tym, co
    > jest "pod spodem" bo prototyp z zalozenia idzie do kosza. Tak jest po prostu
    > taniej, bo mozna to zrobic w pare godzin.
    > Oczywiscie rownolegle mozna robic to co "pod spodem" - ale do tego jest
    > potrzebny (hint) projekt, ktory wyspecyfikuje, ze w ogole dzielimy
    > oprogramowanie na UI i "pod spodem" oraz powie nam co to wlasciwie znaczy
    > "podzielic" i jak ten podzial przebiega.

    Nie jest potrzebny. Można mieć najpierw GUI w VB, potem przerobić
    program w VB tak, żeby komunikował się z komponentem COM w DLL-ce
    która realizuje jakąś szczątkową funkcjonalność, potem przerobić DLL-
    kę na pełnosprawny server obliczeń, a równolegle dorobić obok COM
    interfejs SOAP i interfejs webowy.


  • 172. Data: 2011-05-19 10:55:34
    Temat: Re: ilu jest programistow na swiecie?
    Od: Paweł Kierski <n...@p...net>

    W dniu 2011-05-19 12:25, Stachu 'Dozzie' K. pisze:
    [...]
    >>>> Tu trochę przyznam, że wychodzę poza swoje kompetencje, ale o ile
    >>>> rozumiem, to przede wszystkim XP pomyślanie jest nie pod kątem
    >>>> projektów, które się w pewnym momencie zdaje i zamyka, tylko raczej do
    >>>> takich, które w pewnym (wczesnym) momencie mają pierwszy release, a
    >>>> potem regularni i dość często kolejne release'y, np. co miesiąc albo co
    >>>> dwa miesiące.
    >>>
    >>> To co opisujesz, to bardziej mi pasuje do starej definicji
    >>> prototypowania z ominięciem najważniejszej części, że prototypu nie
    >>> wdraża się produkcyjnie.
    >>
    >> Hm? Prawie każdy produkt software'owy po wypuszczeniu do produkcji ma
    >> kolejne wersje.
    >
    > Ale co miesiąc? O_o
    > Toż samo testowanie czy wszystko działa w środowisku zbliżonym do
    > produkcji trwa tyle czasu (patrzę z perspektywy admina, więc osoby,
    > która to wdraża u klienta na produkcji).

    Iteracje mogą być dłuższe, a nie każda musi się kończyć testowaniem od
    A do Z, a np. tylko nowych ficzerów. Tu pewnie zwolennicy Kanbana
    świetnie wykazaliby jego wyższość na Scrumem. W skrócie - Scrum zakłada
    zamknięcie 1 lub więcej ficzerów w iteracji, co wiąże się z potencjalnym
    czekaniem na wyniki testów. W Kanbanie pracuje się "wielowątkowo" nad
    większą liczbą ficzerów, ale tak, żeby w kolejnej fazie nie było więcej
    niż określona, mała liczba ficzerów.

    --
    Paweł Kierski
    n...@p...net


  • 173. Data: 2011-05-19 11:00:37
    Temat: Re: ilu jest programistow na swiecie?
    Od: "Przemek O." <p...@o...eu>

    W dniu 2011-05-19 12:02, Andrzej Jarzabek pisze:

    > Może i tak, ale ostatecznie produkt idzie do produkcji i zarabia dla
    > firmy pieniądze, so he must be doing something right.

    Zakładając ze go po drodze nie położy. Ale mniejsza z tym.

    > Z mojego doświadczenia: wartość automatycznie generowanej dokumentacji
    > też nie jest szczególnie wielka (w porównaniu z przeglądaniem kodu).

    Nie chodzi o poleganie na automatycznie generowanej dokumentacji, ale o
    wspomaganie się automatami w procesie jej powstawania.

    > Byłaby potrzebna, gdyby była kompletna i aktualna. W takiej postaci
    > jak była, to pożytki korzystania z niej były równoważone przez szkody
    > - sumaryczna wartość zerowa, a koszt tworzenia i utrzymywania jednak
    > niezerowy.

    To już jest zadaniem prowadzącego projekt wymóc aby dokumentacja była
    kompletna i aktualna.

    > Ale jednak większość implementacji będzie pamiętał,

    A niby czemu? Jak czegoś nie dotykasz przez rok, to naturalne jest że
    zapomnisz szczegóły.

    > bo regularnie
    > wchodzi w nią debuggerem, refaktoryzuje itd. Pytanie, czy overhead

    Po kiego grzyba? Moduł zakończony i się go nie tyka bez potrzeby, a już
    na pewno nie debuguje się go przy okazji innych zadań tylko
    korzystających z niego.

    > związany z utrzymywaniem aktualnej i szczegółowej dokumentacji przez
    > cały czas równoważy to, że raz na rok komuś ta dokumentacja się przyda
    > żeby trochę szybciej zrozumieć jakiś rzadko używany kawałek kodu. I
    > jak na tę odpowiedź wpływa stosowanie np. rygorystycznych coding
    > standards, które zabraniają pisania kodu tak, żeby trudno go było
    > czytać.

    Tyko, że czasami żeby sprawdzić co będzie wynikiem danej funkcji trzeba
    prześledzić tonę kodu, a w dokumentacji jest to opisane łącznie z wyjątkami.
    To nie jest tak, że dokumentacja się nie przydaje bo jej nigdy nie
    potrzebowałeś.

    > Dobrze, w takim razie, i pytam o to bez żadnej szydery, proszę
    > opowiedz o swoich doświadczeniach, jak to działa w praktyce w
    > kolokalizowanych zespołach praktykujących coding standards, shared
    > ownership, daily standup i najlepiej jeszcze pair programming (albo
    > przynajmniej code review).

    Ale co Ci mam powiedzieć, że już wiele razy dokumentacja przyspieszyła
    proces tworzenia? Nie wiem, nie mam innych doświadczeń, ale mogę sobie
    jedynie wyobrazić efekt jej braku w projektach. Poza tym, nie jestem
    pewien czy koszt wytworzenia dobrej dokumentacji jest wyższy niż
    przypadku pair programming.

    > Ja mówię, że design phase to jest osobny problem. Nawet jeśli masz
    > zformalizowane, udokumentowane i zakontraktowane wymagania, to możesz
    > pominąć design phase i od razu zabrać się za kodowanie.

    Chyba nie ma sensu dalej ciągnąć tej dyskusji. Ja tak nie uważam. Co
    więcej uważam takie podejście za nieodpowiedzialne. Równie dobrze można
    się umówić z klientem na piwo i na podstawie pogawędek zacząć pisać program.

    > Hm? Prawie każdy produkt software'owy po wypuszczeniu do produkcji ma
    > kolejne wersje.

    Tylko że release ma pełną funkcjonalność, a prototyp częściową. I to
    jest różnica.

    >> Nie rozumiem. Patrzę teraz z perspektywy przedsiębiorcy. Mnie interesuje
    >> na kiedy mogę mieć produkt i ile za niego mam zapłacić. Średnio mnie
    >> interesuje czy dostanę jakiś kawałek wcześniej czy później. Ważna jest
    >> data wdrożenia całości.
    >
    > Nieprawda. Jako przedsiębiorcę, interesuje cię, czy zarobisz na tym
    > oprogramowaniu i ile.

    Jeśli została podjęta decyzja o zamówieniu oprogramowania, to była
    poprzedzona analizą ROI lub czymś podobnym. Więc aspekt zarobku jest
    ważny ale tylko w korelacji z czasem i kosztem wykonania.

    > Jeśli dochodzisz do wniosku, że potrzebujesz jakiegoś programu do
    > zarabiania, i określasz zespół ficzerów jaki ten program (jak ci się
    > wydaje) powinien mieć, to zawsze musisz brać pod uwagę taki
    > scenariusz, że jeden kontrahent powie, że zajmie to trzy lata, drugi
    > zażyczy sobie 150 milionów dolarów, a trzeci powie że zrobi w 12
    > miesięcy, ale nie zgodzi się na takie kary za opóźnienie, jakbyś
    > chciał (w praktyce pozostawiając sobie furtkę do nawet znacznych
    > opóźnień).
    <CIACH>

    Co za mętny wywód. Po pierwsze nie wziąłbym trzeciego wykonawcy, bo
    targowanie się o ewentualne kary prowadzi do wniosku, że
    najprawdopodobniej zaistnieje sytuacja że będą one wymagane. I dalszy
    wywód nie ma już sensu. Wybrałbym tego który ma doświadczenie poparte
    działającymi wdrożeniami.
    Poza konkurent po 9 miesiącach ma raczej wersję 0.1 niż 1 :) I na koniec
    okazuje się, że program robi poważne błędy w obliczaniu VAT bo nie było
    beta testingu i przedsiębiorca dostaje kare z US i na drzwiach firmy
    zakłada kłódkę.
    Wiesz co? Bajki można układać dowolnie żeby potwierdzić swoją rację.

    > O kurcze, w tym momencie przebiłes o kilka długości wszystkie
    > idiotyczne metafory i analogie jakie pojawiły się w tej dyskusji.

    Guzik przebiłem. Nie chcesz zrozumieć podstawy że bez określenia wymagań
    i projektu można spierniczyć dokładnie wszystko. Nie odnosi się to tylko
    do oprogramowania. A takie spierniczenie na pierwszym etapie skutkuje
    kilka razy wyższą ceną i dłuższym terminem wykonania. Bo komuś nie
    chciało się kilku dni na początku poświęcić na projekt.

    > I tylko pozornie nie ma związku z dowodzeniem Wielkiego Twierdzenia
    > Fermata.

    Przecież to Ty starasz się dowieść że płaci się za czas produkcji a nie
    jej efekt?

    > Jeszcze uściślę, nie chodzi mi o projekt wewnętrzny w sensie "jest
    > używany przez firmę a nie klientów", tylko "jest zamawiany przez
    > kierownictwo firmy, a nie przez klienta". W odróżnieniu od sytuacji,
    > kiedy przychodzi klient do firmy i mówi "chcę to a to", sytuacja kiedy
    > ktoś w firmie wychodzi z inicjatywą "gdybyśmy zrobili program, który
    > robi to-a-to, to może udałoby się to komuś sprzedać". I ja w takim

    Gdzie ty masz taką firmę? Zamiast gdybania robi się analizę potrzeb
    rynku i na tej podstawie rozpoczyna się myślenie o projekcie.

    > sensie pracuję głównie przy projektach wewnętrznych, i wtedy myślenie
    > jest takie, że jeśli można zacząć sprzedawać program z okrojoną
    > funkcjonalnością za 6 miesięcy, a potem dodawać ficzery w kolejnych
    > wersjach, albo można zażądać pełnego zestawu ficzerów i czekać 18
    > miesięcy na wersję 1.0, to to pierwsze rozwiązanie ma duży sens
    > biznesowy.

    Zakładając że program z okrojoną funkcjonalnością jest zamkniętą
    kompletną całością to się zgodzę.
    Natomiast jeśli zamawiam np. program księgowy to co mi po okrojonej
    funkcjonalności np. księgowania tylko kosztów a nie zakupów (które będą
    w następnej wersji), skoro i tak resztę będę musiał robić ręcznie?
    Wszystko zależy od tego, co mamy na myśli pisząc "okrojona" funkcjonalność.

    > Nigdy się nie sprawdzał.

    Aha, a programy to tej pory to w kapuście się znajdowało? :/

    > Tak z ciekawości, ta certyfikacja polega też na tym, że certyfikują
    > wam cały proces, tzn. muszą być jakieś konkretne fazy zbierania
    > wymagań, analizy, designu itd. z datami rozpoczęcia i zakończenia, czy
    > tylko wymagają artefaktów? Bo przecież to, o czym ja piszę, nie
    > wyklucza wcale istnienia projektu, analizy i dokumentacji kodu w
    > momencie zakończenia projektu.

    Wiesz co? Chyba naprawdę czas zakończyć tę dyskusje. To bez sensu.
    Pewnie jak się ktoś uprze to można robić i analizę założeń po
    zakończeniu projektu. Wszystko można, jak ktoś sobie lubi utrudniać zadanie.

    > To ja powiem tak: może w waszej specyficznej branży się sprawdza, ale
    > poza nią to jest piękna teoria, bo w fazie projektowania klient czy
    > domain expert przeczyta dokument, popatrzy na schemat i powie "tak,
    > tak to właśnie ma działać", a jak mu pokażesz wersję alfa, to powie
    > "nie, zuepłnie nie o to chodziło", "jeśli nie ma tej informacji, to ta
    > funkcja jest bezużyteczna", "owszem, w dokumencie tego nie ma, ale to
    > oczywiste". I okazuje się, że musisz wyrzucić połowę kodu i 3/4
    > projektu.

    Naprawdę koniec dyskusji. Jakby tak było to analityk / projektant olali
    sprawę. Byłyby wyciągnięte konsekwencje, a firma poniosłaby stratę.
    Natomiast byłaby mądrzejsza o te doświadczenia przy następnym projekcie.
    Analityk ma dociec co klient naprawdę chce, a nie doprowadzić żeby ten
    tylko powiedział że o to mu chodzi.

    pozdrawiam,
    Przemek O.



  • 174. Data: 2011-05-19 11:00:51
    Temat: Re: ilu jest programistow na swiecie?
    Od: Andrzej Jarzabek <a...@g...com>

    On May 18, 5:19 pm, Michal Kleczek <k...@g...com> wrote:
    > Andrzej Jarzabek wrote:
    > > On May 18, 3:15 pm, Michal Kleczek <k...@g...com> wrote:
    > >> Znacznie taniej jest usiasc, pomyslec i _bez_ programowania stwierdzic,
    > >> ze sie nie oplaca. Taki waterfall - najpierw myslimy, potem (ewentualnie)
    > >> programujemy.
    >
    > > Agile też na tym polega. Z tą różnicą, że myślenie jest timeboxowane
    > > na 15 minut. :)
    >
    > IMHO tu lezy sedno problemu z "agile" i niekorzystnego wplywu jaki "agile"
    > wywiera na przemysl IT. Znam to z wlasnego doswiadczenia - klient
    > zafascynowany "metodykami agile" wymaga np. cotygodniowych releasow (bo sie
    > naczytal o krotkich iteracjach). Co wiecej - te "releasy" to musi byc
    > oprogramowanie produkcyjnej jakosci i kazdy "release" musi byc bogatszy w
    > funkcjonalnosc.

    No niestety, podsawą jest komunikacja, takie rzeczy trzeba sobioe
    ustalić, wytłumaczyć i być może nawet zapisać w kontrakcie.

    Nawet w Shore&Warden, gdzie jest proponowane pewne ekstremum jeśli
    chodzi o długość iteracji, mówi się o tym, że iteracja trwa tydzień,
    że produkuje _demo_, że od pewnego momentu każde demo powinno być
    "ready to release", ale to też nie znaczy, że można sobie wziąć płytke
    z demo i zacząć instalować.

    > Po czym nastepuja negocjacje, bo przeciez musi byc czas na _myslenie_ - a
    > ten jak ostatni duren sie upiera, ze myslenie == programowanie.
    > Juz nie mowiac o tym, ze jak sie uwzgledni sam proces przygotowania
    > "releasu" i jego przetestowanie, to sie okazuje, ze ni diabla nie da sie
    > napisac linijki kodu, bo caly tydzien sie releasuje i testuje. A jak
    > probowac rownolegle miec iles tam galezi to nic sie nie robi tylko
    > "merguje".

    Zdaje się że część metodologii konkretnie przestrzega przed
    zwielakratnianiem gałęzi w ramach jednego projektu. W sensie, że jak
    już musi być osobny branch dla jakiegoś klienta, to ten branch
    powinien stać się oddzielnym projektem z oddzielnym zespołem.

    > Inny znowu - troche moze lepiej, bo przynajmniej nie wymaga produkcyjnej
    > jakosci - oczekuje ciaglego dostarczania prototypow w trakcie
    > przygotowywania projektu.
    > I ni cholery nie jestem ludzi w stanie przekonac, ze bedzie duzo taniej
    > zamknac paru ludzi na 1 miesiac w pokoiku z tablica i duza iloscia papieru
    > ale bez dostepu do komputera.
    > Bo na etapie projektu komputer tylko przeszkadza.

    Powiem, że mnie tez nie przekonałeś.


  • 175. Data: 2011-05-19 11:01:39
    Temat: Re: ilu jest programistow na swiecie?
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2011-05-19, Paweł Kierski <n...@p...net> wrote:
    > W dniu 2011-05-19 12:25, Stachu 'Dozzie' K. pisze:
    > [...]
    >>>>> Tu trochę przyznam, że wychodzę poza swoje kompetencje, ale o ile
    >>>>> rozumiem, to przede wszystkim XP pomyślanie jest nie pod kątem
    >>>>> projektów, które się w pewnym momencie zdaje i zamyka, tylko raczej do
    >>>>> takich, które w pewnym (wczesnym) momencie mają pierwszy release, a
    >>>>> potem regularni i dość często kolejne release'y, np. co miesiąc albo co
    >>>>> dwa miesiące.
    >>>>
    >>>> To co opisujesz, to bardziej mi pasuje do starej definicji
    >>>> prototypowania z ominięciem najważniejszej części, że prototypu nie
    >>>> wdraża się produkcyjnie.
    >>>
    >>> Hm? Prawie każdy produkt software'owy po wypuszczeniu do produkcji ma
    >>> kolejne wersje.
    >>
    >> Ale co miesiąc? O_o
    >> Toż samo testowanie czy wszystko działa w środowisku zbliżonym do
    >> produkcji trwa tyle czasu (patrzę z perspektywy admina, więc osoby,
    >> która to wdraża u klienta na produkcji).
    >
    > Iteracje mogą być dłuższe, a nie każda musi się kończyć testowaniem od
    > A do Z, a np. tylko nowych ficzerów.

    Pawle, ja komentuję ostatnie zdanie pierwszego akapitu z powyższego
    cytatu.
    #v+
    [...] a potem regularni i dość często kolejne release'y, np. co miesiąc
    albo co dwa miesiące.
    #v-

    --
    Secunia non olet.
    Stanislaw Klekot


  • 176. Data: 2011-05-19 11:03:31
    Temat: Re: ilu jest programistow na swiecie?
    Od: Michoo <m...@v...pl>

    W dniu 18.05.2011 19:06, Michal Kleczek pisze:
    > Michoo wrote:
    > Ale sie nie nadaje do uzycia produkcyjnego (co jest postulowane przez
    > "agile").
    Agile nie postuluje, że każdy jeden system będzie się nadawał na
    produkcję po 2 miesiącach. Postuluje, że należy dać klientowi szybko to
    co można dać aby przetestował to we własnym zakresie i zrobił to na
    możliwie wczesnym etapie. Bo najcenniejszy jest feedback od klienta.


    > Do testowania "usability" nie potrzeba zadnego "agile" - wystarczy wyklikac
    > _prototyp_ w jakims VB czy innym narzedziu RAD nie przejmujac sie tym, co
    > jest "pod spodem" bo prototyp z zalozenia idzie do kosza. Tak jest po prostu
    > taniej, bo mozna to zrobic w pare godzin.
    Tylko taki czysty prototyp jest dobry do pokazania idei. Dobrze napisane
    core GUI można dać do pani Jadzi, która będzie używać tego produkcyjnie,
    żeby się pół godziny 'pobawiła' i opisała uwagi, które na tym etapie
    wprowadzić jest tanio.


    > Oczywiscie rownolegle mozna robic to co "pod spodem" - ale do tego jest
    > potrzebny (hint) projekt, ktory wyspecyfikuje, ze w ogole dzielimy
    > oprogramowanie na UI i "pod spodem" oraz powie nam co to wlasciwie znaczy
    > "podzielic" i jak ten podzial przebiega.


    > Taki projekt robi sie _zanim_ zacznie sie programowac - taki waterfall:
    > najpierw myslimy, potem programujemy.
    Nie zwracasz uwagi na jedną rzecz - agile to metodyka dla małych
    zespołów - powiedzmy 2-8 programistów (4-6 jako sensowna średnia).
    Jeżeli zespół się zna to takie rzeczy jak używana technologia, sposób
    podziału na moduły, etc już mają wypracowany i nie trzeba go
    specyfikować formalnie.

    Myślenie więc ogranicza się do "co robimy", bo "jak robimy" jest już
    niejako ustalone, a to, że "naszą metodą" da się wykonać taki projekt
    zostało przeanalizowane przed przyjęciem zlecenia.

    Agile nie zakłada "przeszkolimy ludzi i za 2 miesiące będziemy mogli
    zacząć prace programistyczne a w tym czasie projektujemy", a "jesteśmy
    specjalistami od X, więc prace z okolicy X robimy szybko i sprawnie, do
    Y poszukajcie innego zespołu".

    --
    Pozdrawiam
    Michoo


  • 177. Data: 2011-05-19 11:13:23
    Temat: Re: ilu jest programistow na swiecie?
    Od: "Przemek O." <p...@o...eu>

    W dniu 2011-05-19 12:39, Andrzej Jarzabek pisze:

    > Przecież analityk pracuje dla wykonawcy, jaki miałby interes w tym,
    > żeby doradzać klientowi, żeby nie zapomniał o wpisaniu błota do umowy?

    Zadaniem analityka jest wyłapanie wszystkich wymagań klienta, nawet tych
    o których klient nie wie. I tym się różni dobry analityk od analityka,
    że ten pierwszy takie wymagania wyłapie.
    Klient z zasady nie wie tak do końca czego chce, a tym bardziej nie
    potrafi określić dokładnej listy wymagań.

    A jaki miałby w tym interes? Po pierwsze uświadamia klientowi dodatkowe
    potrzeby o których on nie pomyślał (lub były dla niego oczywiste i o
    nich nie wspomniał), po drugie minimalizuje ryzyko niepowodzenia
    projektu już na samym jego początku, po trzecie wynalezienie istotnych
    wymagań których klient nie był świadom pociąga możliwość wyższej wyceny
    projektu.
    Tak więc jakby nie patrzeć, to w interesie wykonawcy jest doradzanie
    klientowi żeby nie zapomniał o wpisaniu "błota do umowy" :)

    pozdrawiam,
    Przemek O


  • 178. Data: 2011-05-19 11:35:49
    Temat: Re: ilu jest programistow na swiecie?
    Od: Andrzej Jarzabek <a...@g...com>

    On May 18, 5:05 pm, Michal Kleczek <k...@g...com> wrote:
    > Andrzej Jarzabek wrote:
    >
    > >> To tylko potwierdza moja teze - jezeli daje sie w dwa miesiace zrobic
    > >> _uzyteczne_ (w sensie gotowe do wdrozenia produkcyjnego) oprogramowanie,
    > >> to oznacza tylko tyle, ze to oprogramowanie jest po prostu trywialne.
    >
    > > Można to też ująć w ten sposób, że prawie zawsze złożone
    > > oprogramowanie ma w sobie "trywialny" ale już użyteczny, choćby w
    > > minimalnym stopniu, rdzeń.
    >
    > Dajmy na to taki RDBMS albo OS - jaki jest ten trywialny ale juz uzyteczny
    > rdzen, ktory daje sie zrobic w dwa miesiace w wersji nadajacej sie do
    > produkcji?

    Wziąłeś dwa ogólne przykłady typów programów, które mają od dziesiątek
    lat wielu przedstawicieli gotowych do kupienia lub wzięcia z półki.
    Oczywiście istnieje użyteczny rdzeń RDBMS czy OS jako takiego.
    Przykładowo dla RDBMS będzie to program, który trzyma n tablic, gdzie
    każda tablica ma k kolumn, dane są persistent i istnieje dostęp do
    nich w jakikolwiek sposób, plus jakieś indeksy. Program, który spełnia
    te założenia można napisać nawet w miesiąc i on już może być do czegoś
    użyteczny. Oczywiście tu i teraz, gdzie istnieją gotowe RDBMSy można
    powiedzieć, że skoro mozna mieć znacznie bardziej użyteczne RDBMSy za
    darmo, to użyteczność robionego na zamówienie RDBMSa o takiej
    funkcjonalności jest w praktyce zerowa.

    Ale w takim razie jeśli pytamy o robienie nowego RDBMSa na zamówienie
    tu i teraz, to powstaje pytanie, dlaczego ktoś w ogóle zamawia nowego
    RDBMSa? Odpowiedź może brzmieć np. tak, że potrzebny jest mu killer
    feature A, którego nie ma żaden dostępny na rynku RDBMS. I w takiej
    sytuacji dla klienta może być nawet użyteczny minimalny RDBMS z killer
    feature A, choćby nie miał języka zapytań, dostępu przez sieć,
    transakcji, równoległego dostępu, większości rodzajów constraint'ów,
    wymagał wyłączenia bazy w celu zmiany schematu itd.

    Jeśli wydaje ci się, że to abstrakcyjny przykład, to ja sam pracowałem
    w całkiem sporej i nieźle dochodowej firmie, która sobie wewnętrznie
    zrobiła i od kilkunastu lat intensywnie eksploatowała system bazy
    danych odpowiadający mniej więcej temu, co opisałem powyżej - w
    zasadzie wszystkie produkty tej firmy opierały się na tym RDBMSie. A
    to był zestaw ficzerów po długotrwałym rozwoju, z poprawką tylko na
    to, że była mocno ograniczona forma równoległego dostępu. Nie tak
    dawno przed tym, jak zacząłem pracowac w tej firmie dodano rewolucyjną
    możliwość dynamicznego resizowania tablic: wcześniej w konfiguracji
    się określało, ile dana tablica ma maksymalnie rekodrów, i tyle ona
    zajmowała miejsca zawsze, a jak się próbowało dodać więcej, to był
    fail.

    > Nawet - przykladowo - glupi programik do wypelniania PIT nie ma takiego
    > "rdzenia", bo - mimo ze koncepcyjnie prosty - nadaje sie do sprzedazy
    > dopiero jak jest dopracowany w szczegolach (co zajmuje czas) - inaczej firma
    > moze stracic tzw "dobre imie" co sie przeklada na przyszle przychody.

    Na szczęście nie wypełniam PIT, więc nie mam na ten temat nic do
    powiedzenia :)

    > > Oczywiście cel posiadania wersji gotowej do releasowania w ciągu dwóch
    > > miesięcy nie jest taki, żeby po dwóch miesiącach produkt wypuścić do
    > > produkcji, tylko żeby od tego momentu być gotowym do zrobienia release
    > > w dowolnym momencie.
    >
    > Niespecjalnie widze roznice (chyba ze "zrobienie release" jest czyms innym
    > niz "wypuszczenie do produkcji" - jezeli tak, to tylko przesuwamy problem).

    Release to jest to samo, co wypuścić do produkcji. Gotowy do release
    to nie to samo, co zrobić release. Widzisz już różnicę?


  • 179. Data: 2011-05-19 12:33:48
    Temat: Re: ilu jest programistow na swiecie?
    Od: Michal Kleczek <k...@g...com>

    Andrzej Jarzabek wrote:

    > On May 18, 5:05 pm, Michal Kleczek <k...@g...com> wrote:
    >> Andrzej Jarzabek wrote:
    >>
    >> >> To tylko potwierdza moja teze - jezeli daje sie w dwa miesiace zrobic
    >> >> _uzyteczne_ (w sensie gotowe do wdrozenia produkcyjnego)
    >> >> oprogramowanie, to oznacza tylko tyle, ze to oprogramowanie jest po
    >> >> prostu trywialne.
    >>
    >> > Można to też ująć w ten sposób, że prawie zawsze złożone
    >> > oprogramowanie ma w sobie "trywialny" ale już użyteczny, choćby w
    >> > minimalnym stopniu, rdzeń.
    >>
    >> Dajmy na to taki RDBMS albo OS - jaki jest ten trywialny ale juz
    >> uzyteczny rdzen, ktory daje sie zrobic w dwa miesiace w wersji nadajacej
    >> sie do produkcji?
    >
    > Wziąłeś dwa ogólne przykłady typów programów, które mają od dziesiątek
    > lat wielu przedstawicieli gotowych do kupienia lub wzięcia z półki.
    > Oczywiście istnieje użyteczny rdzeń RDBMS czy OS jako takiego.
    > Przykładowo dla RDBMS będzie to program, który trzyma n tablic, gdzie
    > każda tablica ma k kolumn, dane są persistent i istnieje dostęp do
    > nich w jakikolwiek sposób, plus jakieś indeksy. Program, który spełnia
    > te założenia można napisać nawet w miesiąc i on już może być do czegoś
    > użyteczny. Oczywiście tu i teraz, gdzie istnieją gotowe RDBMSy można
    > powiedzieć, że skoro mozna mieć znacznie bardziej użyteczne RDBMSy za
    > darmo, to użyteczność robionego na zamówienie RDBMSa o takiej
    > funkcjonalności jest w praktyce zerowa.

    Dokladnie o to mi chodzi - niebanalny system ma taka ceche, ze jego
    "fragment" nie ma sensu z punktu widzenia uzytkownika. To nie jest tak, ze
    funkcjonalnosc (juz nie mowiac o cechach) daje sie dzielic i "wyciagac" i
    nadal twierdzic, ze system jest uzyteczny. To jest IMO mit rozpowszechniany
    przez zwolennikow "agile", ktorzy probuja - na szkode klienta - przekonac
    go, ze prototyp i produkt to to samo.

    >
    > Ale w takim razie jeśli pytamy o robienie nowego RDBMSa na zamówienie
    > tu i teraz, to powstaje pytanie, dlaczego ktoś w ogóle zamawia nowego
    > RDBMSa? Odpowiedź może brzmieć np. tak, że potrzebny jest mu killer
    > feature A, którego nie ma żaden dostępny na rynku RDBMS. I w takiej
    > sytuacji dla klienta może być nawet użyteczny minimalny RDBMS z killer
    > feature A, choćby nie miał języka zapytań,

    LOL - to wlasnie jest podstawowa cecha definiujaca RDBMS (specjalnie nie
    napisalem DBMS). Sam fakt, ze w pliku mozna przechowywac rekordy stalej
    dlugosci nie swiadczy o tym, ze system plikow to RDBMS.

    > dostępu przez sieć,
    > transakcji, równoległego dostępu,

    Mozliwosc rownoleglego dostepu jest jedna z cech definiujacych DBMS (juz nie
    mowiac o RDBMS) - za wikipedia:
    "A DBMS provides facilities for controlling data access, enforcing data
    integrity, managing concurrency control, recovering the database after
    failures and restoring it from backup files, as well as maintaining database
    security"

    [ciach]
    >> Niespecjalnie widze roznice (chyba ze "zrobienie release" jest czyms
    >> innym niz "wypuszczenie do produkcji" - jezeli tak, to tylko przesuwamy
    >> problem).
    >
    > Release to jest to samo, co wypuścić do produkcji. Gotowy do release
    > to nie to samo, co zrobić release. Widzisz już różnicę?

    Nie - dla mnie "zrobienie releasa" polega na doprowadzeniu oprogramowania do
    stanu "gotowy do release" - czynnosci zwiazane z samym przygotowaniem
    artefaktow sa nieistotnymi ( z punktu widzenia procesu tworzenia
    oprogramowania ) i w wiekszosci zautomatyzowanymi technikaliami.

    --
    Michal


  • 180. Data: 2011-05-19 12:34:51
    Temat: Re: ilu jest programistow na swiecie?
    Od: Paweł Kierski <n...@p...net>

    W dniu 2011-05-18 18:05, Michal Kleczek pisze:
    [...]
    > Nawet - przykladowo - glupi programik do wypelniania PIT nie ma takiego
    > "rdzenia", bo - mimo ze koncepcyjnie prosty - nadaje sie do sprzedazy
    > dopiero jak jest dopracowany w szczegolach (co zajmuje czas) - inaczej firma
    > moze stracic tzw "dobre imie" co sie przeklada na przyszle przychody.

    To nie musi być prawda. Jeśli nie masz nic do wspomagania wypełniania
    PITu, to głupi formularz, który da się wydrukować może być
    wystarczający jako wersja 1.0. Sprawdzanie, czy minimalny zestaw pól
    jest jakkolwiek wypełniony, a potem sprawdzenie dla niektórych formatu
    to już kolejne funkcjonalności. Na koniec może z tego powstać program,
    który potrafi przeliczać kolejne pola na podstawie "wejściowych"
    i wiele innych rzeczy. Ale nawet to też da się podzielić na działające
    i "sprzedawalne" części.

    --
    Paweł Kierski
    n...@p...net

strony : 1 ... 10 ... 17 . [ 18 ] . 19 ... 28


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: