Strona główna Kontakt Jogger

Bazylowy Jogg

O makach, życiu i innych pierdołach

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

Skomentuj:

Nick
URI
Kod: code