Prosto z inkubatora

Subskrybuj RSS A A A
27 lutego 2007
Piotr Kowalski

Wykształcenie programistów nie jest tym samym co hodowla drobiu. Mimo wszystko tworzy się różne inkubatory przedsiębiorczości, w których ma "wygrzewać się" między innymi młoda kadra informatyczna. I podobnie jak drób z naturalnej hodowli jest o niebo lepszy od tego inkubowanego, to tak samo bywa z informatykami.

Wykształcenie programistów nie jest tym samym co hodowla drobiu. Mimo wszystko tworzy się różne inkubatory przedsiębiorczości, w których ma "wygrzewać się" między innymi młoda kadra informatyczna. I podobnie jak drób z naturalnej hodowli jest o niebo lepszy od tego inkubowanego, to tak samo bywa z informatykami.

Od czasu do czasu podejmuję temat jakości pracy programistycznej świadczonej przez studentów bądź świeżo upieczonych absolwentów. Jeśli do tego dochodzi jeszcze wątek zdalnej współpracy, to efekt może być nieraz porażający. Przeglądałem niedawno produkt wykonany w środowisku open source, który został przez klienta instytucjonalnego zakupiony od pewnej grupy studentów, rodem z inkubatora przedsiębiorczości. Można powiedzieć, że w źródłach oprogramowania oraz w strukturach danych zawarta była prawie cała możliwa niewiedza reprezentowana przez zespół autorski. Ponadto, analizując komentarze w kodzie oprogramowania, widziałem jak na dłoni całą historię powstawania tego arcydzieła. Wynikało z tego, że kreacja oprogramowania zaczęła się od jednej osoby, aby potem, wraz z jego rozwojem, objąć zdalnie większą grupę twórców. Komentarze w stylu "k... więcej tego tak nie robić" wyraźnie wskazywały, kto w zespole wiódł rolę przywódczą oraz jakiego autoramentu byli podwykonawcy. Zresztą o umiejętnościach samego lidera grupy świadczy jakość całego produktu.

Można powiedzieć, że kod programu odzwierciedlał w zasadzie wszystko, czego nie powinno się robić. A więc znaleźć w nim można powielane po wielokroć identyczne fragmenty funkcjonalne, które w zasadzie mają realizować to samo tylko w różnych kontekstach. Jest to typowy przykład magii voodoo w programowaniu. Jeślibyśmy porównali to do techniki tworzenia serwisów internetowych (co jest przykładem chyba najbardziej czytelnym dla czytelników nie zajmujących się programowaniem), to wyglądałoby to tak, że każda strona serwisu, oprócz swojej właściwej zawartości, zawierałaby powtórnie przepisaną treść strony macierzystej. Nie dość, że denerwujące przy czytaniu, to zagmatwane przy wprowadzaniu modyfikacji. Do tego dochodził kompletny brak parametryzacji, pętle działające na wartościach bezwzględnych i tak dalej. Powodowało to, że nieraz nawet drobna zmiana kodu, na przykład wartości granicznych pętli, wymagała propagowania tych samych korekt w kilku miejscach i nikt chyba nie był pewien, czy czegoś nie opuścił. Zapis danych w bazie też okazał się dosyć nieregularny, bo ni stąd ni zowąd potrafiło pojawić się kilka rekordów niosących te same informacje. Był to bezpośredni skutek wielokrotnego uruchamiania się tych samych procesów w aplikacji, do czego jako żywo przyczynia się opisany sposób kodowania.

Tłumaczenie, że gdyby nie dostępność kodu źródłowego, to nikt nie dowiedziałby się, jakie śmieci on ukrywa w swoim wnętrzu, nie jest do końca prawdą, gdyż struktura danych w bazie jasno pokazuje z czym mamy do czynienia. Dobry jak i zły projekt poznać można między innymi po jakości tego istotnego elementu. Jeśli brak jest jakichkolwiek logicznych zasad w zaprojektowanych strukturach danych, to trudno spodziewać się czytelności i logiki w kodzie programu współpracującego.

Generalnie system taki sprzedano klientowi, pewnie niejednemu, przez co inkubator się wzbogacił, mogąc kontynuować swą działalność hodowlaną i wypuszczać na rynek coraz więcej takich programistów, projektantów i ich produktów. Czego się czepiam? Przecież ludzie muszą gdzieś nauczyć się fachu. Owszem, tylko że w ten sposób nauczą się, iż można za zły produkt dostać sowite wynagrodzenie. Z drugiej strony, jeśli klient to kupił, to znaczy, że odpowiadała mu funkcjonalność produktu. Po co więc wnikać, jak było to zrobione i jak prezentuje się wewnątrz. W sumie to już sam nie wiem, czy tworzyć oprogramowanie solidnie, czy tylko tak więcej powierzchownie.

Oceń artykuł

średnio: 0 liczba ocen: 0

Komentarze (1)

godot

26-02-2007 20:38

W sumie, to powinno się tworzyć oprogramowanie, które działa i jest poprawne. Na pocz±tek wystarczy. Problem jako¶ci i innych warto¶ci dodanych nie zniknie nigdy o ile (zakładaj±c, że sama jako¶ć edukacji jest już dobra) nie zostanie zasypana przepa¶ć pomiędzy teri± informatyki a porażaj±cymi praktykami w naszej rzeczywisto¶ci. Gdzie "szybciej" zwycięża "lepiej", "taniej" pokonuje "dokładnie", "nowe" zabija "dobre" a z wszystkiego innego ¶mieje się marketing i polityka tam nie ma miejsca na jako¶ć i rzetelne wytwarzanie oprogramowania. Tego nie uczy się się na uczelni a to moim zdaniem najpoważniejszy bł±d. Pozdrawiam,

Najnowsze

MAC, czyli ministerstwo reformowania rządzenia

Premier wspiera lojalnie w kryzysie najbliższego współpracownika, Michała Boniego, przyjmując na siebie atak oburzonych internautów podczas debaty o ACTA.

Nowe, unijne zamówienia publiczne

Komisja Europejska proponuje ważne zmiany prawa wspólnotowego w obszarze zamówień publicznych. Warto im się przyjrzeć bo to jeden z elementów nowej perspektywy finansowej UE. Warto zatem przyjrzeć się owej propozycji bliżej.

Bezpieczeństwo rządowych stron - analiza

Zespół zadaniowy ds. ochrony portali rządowych opublikował wytyczne. Trudno stwierdzić, że to najlepsze rekomendacje, jakie można było przy okazji zaistniałych ataków wypracować.

DEBATA: Kiedy walka polityczna w sieci przemienia się w cyberterroryzm?

Skuteczny atak cybernetyczny przyniesie opłakane skutki dla państwa i gospodarki. Boleśnie się o tym przekonaliśmy, gdy nie można było dostać się na strony internetowe najważniejszych instytucji w Polsce.

Czy MSW chce unieważnienia przetargu na pl.ID?

Rośnie ryzyko całkowitego unieważnienia przetargu na nowe dowody osobiste. Krajowa Izba Odwoławcza odrzuciła odwołanie firmy Sygnity, która nie zgadzała się na wydłużenie o trzy miesiące terminu składania ofert na dostawę blankietów nowych dowodów osobistych. Wydłużenie całego postępowania o trzy miesiące może spowodować skargi uczestniczących w nim firm, a w konsekwencji unieważnienie przetargu.

Garść rad dla roztropnego szefa IT

Trudne czasy w gospodarce to okres, kiedy szczególnego znaczenia nabiera hasło: Jak cię widza, tak cię piszą. Osłabienie rynku przekłada się na oszczędności w przedsiębiorstwie, a oszczędności najłatwiej szukać w działach, które, w opinii zarządu, nie są bezpośrednio związane z prowadzoną działalnością - czyli również w dziale IT.

Sprzeczne wizje e-dowodu

Koncepcja elektronicznego dowodu osobistego powstała w Polsce wiele lat temu. Starsze są koncepcje elektronicznego systemu świadczeń ochrony zdrowia. Mimo to, nadal są w trakcie budowy.

Rekomendacje

Serwisy IDG - Warunki obsługi - Kontakt - Redakcja - Regulamin - O nas - Polityka prywatności - Serwis zgodny z ASME
Reklama - Licencjonowanie treści
Computerworld Polska i Computerworld Polska online są znakami towarowymi IDG Poland SA.
© Copyright 2012 International Data Group Poland S.A. 04-204 Warszawa ul. Jordanowska 12 tel.(+4822)321-78-00 fax(+4822)321-78-88