Kryzys wartości - odsłona druga

Nie ma programu bez błędów — każdy, kto się zetknął z jakimkolwiek programowaniem czegokolwiek dobrze o tym wie. A jednak jest na takie buble popyt, więc z powodzeniem zajmujemy się ich komercyjną produkcją. Osobiście wątpię w uczciwość takiego zajęcia.

błędy są wszędzie...

Jeżeli dopuszczamy występowanie błędów w sprzedawanym oprogramowaniu, czyli zakładamy możliwość istnienia produktu o niepełnej wartości, to każdy komercyjny program powinien zostać opatrzony tekstem analogicznym do tego, jaki spotykam np. na paczce chipsów:

Dokładamy wszelkich starań aby nasze chipsy były zawsze pyszne i świeże. Jeżeli jednak produkt nie spełnia Twoich oczekiwań co do świeżości i smaku ZADZWOŃ 0-801-102-060 (opłata wg taryfy lokalnej) lub prześlij go do nas wraz z zawartością, a my odeślemy Ci nowy.

Abstrahując od tego jak bardzo taka deklaracja jest nieprawdziwa, dowodzi ona, że producent przynajmniej rozumie jakie są wobec niego i jego produktu oczekiwania. Natomiast przeciętny producent oprogramowania zobowiązuje się najwyżej do wytworzenia w bliżej nieokreślonym czasie i niekoniecznie za darmo poprawek do swojego produktu. I poprawek do tych poprawek. I poprawek do poprawek poprawek. Przecież nikt przy zdrowych zmysłach nie zadeklaruje dostarczenia programu poprawnego w 100%...

W efekcie — rynek oprogramowania „popularnego”, „biurowego” czy „desktopowego” jest pełen bubli. Tysiącom użytkowników każdego dnia jakich program „się wywala”, „się wiesza” albo na tysiąc innych sposobów „nie działa”. Każdy o tym wie i niewiele kto się przejmuje, bo przecież błędy są wszędzie...

...oprócz miejsc gdzie ich nie ma

Istnieje jednak inny świat, w którym odpowiedzialność producenta oprogramowania za jego produkt jest tak oczywista jak odpowiedzialność producenta samolotów — świat systemów przemysłowych czasu rzeczywistego.

Oprogramowanie sterujące jakimkolwiek poważnym procesem przemysłowym (typu automatyka w elektrowni) lub procesem, od którego zależy życie wielu ludzi (typu automatyka w samolocie) nie ma błędów, bo ... takie oświadczenie podpisał jego producent. Zamiast licencji typu „żadnych gwarancji” jest raczej postawa „wiem, że przyjmuję na siebie odpowiedzialność”. Bo tu nie ma „usterek” i „niedoróbek” — są za to awarie powodujące katastrofy.

A przecież to nadal jest program. Nadal podlega tym samym prawom i jest tworzony przez ludzi. Nie zyskał nagle nieograniczonego budżetu ani stuletnich terminów w harmonogramie. Jednak spróbuj podczas wdrożenia jakiegoś systemu przemysłowego czasu rzeczywistego opowiedzieć, że nie istnieje oprogramowanie bez błędów. Albo że w każdym wdrożeniu można się pomylić, że człowiek „jest tylko człowiekiem” i w warunkach stresu popełnia czasem błędy. Takie drobne przecież... Usłyszysz coś takiego [1]:

— Co mi pan tu gada za głupoty? O, tu pan podpisujesz, że to nie ma błędów, tu bierzesz odpowiedzialność za działanie i gwarantujesz całkowity brak awarii. Tu pan podpisujesz, że ten piec nie zostanie wygaszony nigdy. Nigdy. Więc o jakich błędach pan bredzisz??

I co, nie podpiszesz? Podpiszesz. I to jest jedna z niewielu uczciwych odmian tego zawodu...

[1] Cytat autentyczny, chociaż nie dosłowny.

Komentarze

#1 | 2004.12.24 18:14 | str()

Po drugiej stronie osi odpowiedzialności, lecz z tą samą (wysoką) uczciwością znaleźć można też trzecią drogę. Oprogramowanie wolne, którego autorzy choć asekuracyjnie zaznaczają, że no warranty i own risk, to jednak nie spuszczają klapy od fortepianu na palce pianis^Wkodera i pozwalają ulepszać swe dzieło. Lub "dzieło". Cieszy mnie, że ten model rozwoju softu staje się dość nośny i nawet nie-specjaliści, odbiorcy oczekują w niektórych przypadkach takich fair reguł postępowania.

Osobiście na prawdę czuję się twórcą oprogramowania bardziej niż inżynierem, gdy piszę coś dla siebie lub od siebie dla populi. Lubię to. To hobby. W pracy zaś jestem robotnikiem. Tam produkuję kod, tworzę zaś niewiele. Czemu? Produkuję w oparciu o niekiedy kiepski projekt, ograniczające założenia, zgodnie z praktykami, które utrzymywane są tylko i wyłącznie dla zachowania konsekwencji, bywa, że głupiej.
Myślę, że nie są to jedynie moje odczucia. Nie mam jednak wyrzutów sumienia gdy user zmuszony zostaje przez "górę" do korzystania z tego softu. Mam na nich założony dość gęsty filtr, który 97.(3) % klasyfikuje jako zwykły idiota, wtórny analfabeta lub impregnowany z roszczeniami. Ja robię swoją robotę możliwie najlepiej balansując pomiędzy harmonogramem, spodziewaną funkcjonalnością i zdrowym rozsądkiem.

#2 | 2004.12.30 12:51 | shima

Czemu sprzedajemy (i kupujemy) w takim razie buble? Bo potrzebujemy towaru o określonej funkcjonalności i bierzemy ten najmniej zawodny. Nie zrezygnujemy z, dajmy na to, edytora tekstów i nie przesiądziemy się na maszynę do pisania, bo edytor raz na 3 tygodnie wiesza nam system. Umowa między twórcą i userem zakłada pewien margines, mniejszy (system kontroli lotów) czy większy (system miar Mars Lander-a ;-) ), ale zakłada. Kupując buty akceptuję fakt, że dostaję gwarancję na określony czas. Kupując (czy też pobierając) software akceptuję fakt, że w pewnych (teraz jeszcze nieokreślonych sytuacjach) będzie się on zachowywał nieco inaczej niż się spodziewałem. Czy w tej sytuacji gwarancja "czasowa", jak w przypadku butów, czy "procentowa" - używanie software'u, bardzo się różnią? I jedno i drugie jest kwestią wypracowanej umowy społeczniej.

Ale zgadzam się co do metodyki testów i systemu edukacji informatycznej. Przynajmniej z moich doświadczeń wynika, że są na poziomie, że użyję eufemizmu, nie najwyższym.

#3 | 2004.12.30 14:23 | MiMaS

Czy w tej sytuacji gwarancja "czasowa", jak w przypadku butów, czy "procentowa" - używanie software'u, bardzo się różnią?

Jeżeli byłaby przyjęta taka umowa, to owszem, różnica niewielka, ale... takiej umowy nie ma. IMHO zamawiający jakiś system informatyczny zakłada, że będzie to jego narzędzie jego pracy i jako takie będzie bezbłędne. Nie „dosyć dobre” ale właśnie bezbłędne. Natomiast dostawca zakłada, że sprzeda produkt z błędami, które jakoś nie będą odbiorcy przeszkadzać. I to w mojej wypaczonej opinii rzuca niemiłe światło na tą robotę.

 

Uwaga: Ze względu na bardzo intensywną działalność spambotów komentowanie zostało wyłączone po 60 dniach od opublikowania wpisu. Jeżeli faktycznie chcesz jeszcze skomentować skorzystaj ze strony kontaktowej.