Archiwum
- Listopad 2008 (2)
- Październik 2008 (2)
- Wrzesień 2008 (2)
- Sierpień 2008 (5)
- Lipiec 2008 (5)
- Czerwiec 2008 (3)
- Maj 2008 (1)
- Kwiecień 2008 (2)
- Marzec 2008 (3)
- Luty 2008 (9)
- Styczeń 2008 (2)
- Grudzień 2007 (2)
- Listopad 2007 (3)
- Październik 2007 (6)
- Wrzesień 2007 (8)
- Sierpień 2007 (5)
- Czerwiec 2007 (1)
- Maj 2007 (10)
- Kwiecień 2007 (5)
- Marzec 2007 (26)
- Luty 2007 (21)
- Styczeń 2007 (11)
- Grudzień 2006 (4)
- Listopad 2006 (9)
- Październik 2006 (6)
- Wrzesień 2006 (2)
- Lipiec 2006 (1)
- Czerwiec 2006 (13)
- Maj 2006 (2)
- Kwiecień 2006 (9)
- Marzec 2006 (1)
- Luty 2006 (2)
- Styczeń 2006 (17)
- Listopad 2005 (5)
- Październik 2005 (1)
- Sierpień 2005 (1)
- Lipiec 2005 (17)
- Czerwiec 2005 (2)
- Maj 2005 (4)
- Kwiecień 2005 (4)
- Marzec 2005 (7)
- Luty 2005 (20)
- Styczeń 2005 (24)
- Grudzień 2004 (21)
- Listopad 2004 (25)
- Październik 2004 (22)
- Wrzesień 2004 (38)
- Sierpień 2004 (5)
Kategorie
- Batalie (25)
- Emigracja (51)
- Komercha (4)
- Ogłoszenia (19)
- Ogólne (230)
- Opowiadacze (13)
- Pieprzenie (30)
- Podróże (23)
- Prasówka (6)
- Programowanie (42)
- Cocoa (14)
- iPhone (4)
- Mac OS X (17)
- Obj-C (12)
- Technikalia (21)
Czytam
Technicznym być
Dawno, dawno temu, kiedy strasznie się napaliłem na zostanie "komputerowcem" (czasy podstawówki), nie zdawałem sobie sprawy z czym wiąże się taka droga.
Z urodzenia (genów i tym podobnych) mam umysł raczej humanistyczny, niż analityczny. Powodowało to wiele problemów zarówno w czasach liceum, jak i na studiach, które stały się - z właśnie tego powodu - dla mnie zbyt skomplikowane.
Całe życie wierzyłem, że to właśnie ten brak analityczności jest dla mnie przeszkodą. Że to jest moja pięta achillesowa. Że właśnie z tego powodu nigdy nie będę mógł zostać kimś w braży IT.
Po pierwsze nie okłamuj samego siebie
Miałem (mam) sporo racji w tym rozumowaniu. Pominąłem jednak jeden bardzo istotny element tej całej układanki. Analityczność umysłu rodzi się z dokładności. Dokładności, którą świat komercyjny dziwnie gardzi.Zabawę z komputerami - w sensie komercyjnym - rozpocząłem dość wcześnie. Oczywistym było, że szef / klient zawsze chciał wszystko na wczoraj. Z założenia wszystko miało działać. Niekoniecznie miało być dobrze zrobione. To pierwszy krok do lawiny problemów. Nieczysty kod się mści. Uczą tego na każdej uczelni. Źle sformułowane założenia mszczą się również. Zaczynamy zmieniać coś, co w zamyśle miało być inaczej. Robimy sobie jeszcze większy bałagan zmuszeni presją czasu.
Jest to złe. Ale bardzo często ciężko to zmienić. Póki ludzie nie zmienią swojego podejścia do programistów, czy ogólnie - tworzenia oprogramowania - zmiany są mało możliwe.
Jak już okłamałeś siebie, nie rób tego innym
Cała idea tyczy się to również ludzi z managementu firm programistycznych. Bardzo często starają się wprowadzać nowinki z zakresu zarządzania projektami. Aktualnie na topie jest coś, co określa się nazwą "Agile". Sam proces ma dużo ciekawych elementów, nie jest to jednak nic odkrywczego. Na całe szczęście jest to konstrukcja, która użyta z mózgiem i pomocą ludzi doświadczonych daje bardzo ciekawe rezultaty. Niestety - w większości przypadków ludzie zbytnio do serca biorą sobie formułę "adaptowania procesu do własnych potrzeb", wybierając sobie z całej idei jedynie fragmenty, które powodują jeszcze większy chaos. Doskonałym przykładem jest pojęcie minimalności (nie mylić z minimalizacją). W każdej iteracji powinno się robić kompletne minimum by spełnić wymagania w niej zdefinoiwane. Nikt oczywiście nie bierze pod uwagę następnych kroków, więc bardzo często trzeba przepisywać duże kawałki kodu, bo ktoś nie pomyślał o tym np. miesiąc wcześniej.Zupełna strata czasu.
Jak już wszędzie zawiodłeś nie rób z kłamstw swojego hobby!
Bo to jest rzecz, która najbardziej mnie przeraża. Przeglądając tony różnych projektów Open Source natrafiam na ten sam problem. Ludzie traktują swoją pasję - programowanie - jak kompletną szmatę. I nie jestem tutaj żadnym chlubnym wyjątkiem. Widzę doskonale jak popełniam te same błędy co inni, "skomercjalizowani" koledzy. Wydaję kawałki kodu, które nie spełniają nawet moich własnych wymagań. Pomijam implementację części specyfikacji, bo uznaję je za niepotrzebne. Chełpię się osiągnięciami, które są przecież dziurawe jak sito! Wprowadzam sobie we własny świat złe nawyki z świata komercyjnego, raniąc przy tym siebie nie mniej od innych. Zatracam się w tym biegu po wszystko tracąc na kunszcie, na którym przecież tak bardzo mi zawsze zależy.Wyobraźcie sobie na przykład, że fizyk ma przed sobą wyniki badań z jakiegoś doświadczenia. Było to jednak doświadczenia na innym sprzęcie, więc może on uzyskać lekko odmienne wyniki na swoich przyrządach. Ze względu na brak czasu, pomija on etap powtórzenia eksperymentu i od razu wykonuje eksperyment dla niego potrzebny i wnioskując na otrzymanych dokumentach i własnym doświadczeniu tworzy wyniki.
I jeśli nawet te błędy będą minimalne. Do pominięcia, a badania robił dla takiej elektrowni atomowej - na ten przykład - to nagle robi się wielkie BUM i pół Europy zamienia się w nowe morze ze świecącymi rybami.
A wszystko z braku czasu na dopracowaniu szczegółów.
Warto zwalczać?
Oczywiście, że warto! Nikt mi sianem nie wykręci, że informatyka za takie rzeczy nie odpowiada. Oczywiście, że odpowiada. A sterowanie samolotami? Promami kosmicznymi? Bankami, gdzie leżą pieniądze ludzi? Nie pracujecie nad tym? Ale moglibyście, prawda? I co wtedy? Przez waszą pomyłkę - brak czasu - samolot spada, prom wybucha, ludzie tracą oszczędności całego życia i lądują pod mostem.Apokaliptyczna wizja? Nierealna? Zdziwilibyście się.
Open Source może na tym więcej zyskać niź stracić. Pokazując, że ludzie z pasją, którzy nie pozwalają sobie na tego rodzaju błędy. Że coś co jest darmowe, powstawało znacznie dłużej (limit czasu plus dodatkowa poprawka na tę dokładność), ale jest znacznie bezpieczniejszy!
Jak zwalczać?
Rozmawiać. Podważać opinię ZAWSZE jak myślimy inaczej. Nie ważne czy rozmawiamy z człowiekiem o super doświadczeniu, czy ze zwykłym uczniakiem. Pomysły ma każdy i czasem zmienia sens naszego rozumowania.Z drugiej strony być otwartym na krytykę. Nie budować Flame War z byle przyczyny. Szczególnie, jak ktoś twierdzi, że może pomóc.
Tworząc swoje oprogramowanie zbudować sobie grupę ludzi, którzy zawsze służą radą i zawsze wytkną. Jeśli boisz się krytyki otwartej (jak na przykład ja), nie odkrywaj kodu przed wszystkimi. Najpierw dopracuj go z ludźmi, którym ufasz. Uodpornisz się na błędy i usuniesz te najbardziej trywialne.
I przede wszystkim kochać to, co się robi. W końcu to jest tworzenie. Twórcy nie są nieomylni, ale przynajmniej powinni się starać być dokładni.
fox
fajny i prawdziwy artykul
ps, widze ze wrociles na poziom 0 :)
bazyl
Trochę z przypadku, trochę na siłę.
psz
Co do tej dokładności, to jest to odwieczny konflikt zysk/koszt, w końcu roboczogodziny programisty muszą się kiedyś zwrócić. Jednakże sam nie jestem przekonany, czy Open Source to aż tak wydatnie większa jakość kodu, po części masz rację, że ze względu na fakt, że robią to pasjonaci, to robią to z tzw. „sercem”, natomiast czasem aż nadto w niektórych kawałkach kodu widać brak podstawowej wiedzy uczonej na pierwszej lepszej uczelni.
Jednakże moja konkluzja jest dość zbliżona do Twojego morału, więc nie będę się tutaj niepotrzebnie powtarzał :)
weosły kosiarz
Muszę, się zgodzić, rzadko kiedy pasjonaci tworzący oprogramowania dbają o nie we właściwy sposób(choć niektóre projekty są pod tym względem w porządku).
Wiem jak to jest pisać program i nie móc się doczekać aż będzie można go uruchomić. Stąd się własnie biorą kobylaste projekty zżerające RAM.
Ryba
Tem…
Lezka sie mnie zakrecla.
To dlatego lubiles moje durne pytania :D


