Przed okresem dojrzewania

Czy mówienie o "kryzysie oprogramowania" jest rzeczywiście uzasadnione? Rozwój inżynierii oprogramowania można postrzegać jako burzliwy początek tworzenia nowego obszaru wiedzy ludzkości.

Czy mówienie o "kryzysie oprogramowania" jest rzeczywiście uzasadnione? Rozwój inżynierii oprogramowania można postrzegać jako burzliwy początek tworzenia nowego obszaru wiedzy ludzkości.

Inżynieria oprogramowania jest bowiem stosunkowo młodym i niedojrzałym obszarem wiedzy techniczno-inżynierskiej. Trudno jest znaleźć inną dziedzinę, która rozwijałaby się szybciej i w bardziej spektakularny sposób, przy jednoczesnej masowości zastosowań i dużej zależności od uwarunkowań zewnętrznych.

Aby zobrazować rozwój inżynierii oprogramowania, załóżmy, że za życia Leonarda da Vinci, w trzydzieści lat po pierwszych jego szkicach lotni, powstaje samolot odrzutowy. Wyobraźmy sobie również, że fabryki produkują samochody o parametrach dostosowanych do "indywidualnych potrzeb" klientów: dla Kowalskiego - szerokości 155 cm i silniku 1645 cm3, a dla Nowaka - 745 cm i 2876 cm3 (nie wspominając już o innych "modyfikowalnych" parametrach). Wyobraźmy sobie też, że te samochody są tanie, dobrze wykonane i niezawodne.

Nawet tak spektakularnych osiągnięć ludzkości, jak lotów kosmicznych czy inżynierii genetycznej, nie można porównać z osiągnięciami informatyki. Wzrost stopnia komplikacji statków kosmicznych może i dorównuje przyrostowi liczby linii kodu aplikacji, ale są to "wyroby" jednostkowe. Tymczasem produkty informatyczne są wdrażane masowo, a te jednostkowe - w znacznym stopniu uzależnione od innych działań, nie związanych z informatyką. To truizm, że "informatyzacja bałaganu potęguje bałagan", ale w rzeczywistości dzieje się tak bardzo często i nie jest to wina informatyki. Większość innych dziedzin ma w miarę stabilne i dość jednorodne pole działania. Tego nie można powiedzieć o inżynierii oprogramowania.

Produkt, jakość i koszt są nierozerwalnie związane ze sobą. Istnieje zatem pewna optymalna jakość każdego wyrobu (w tym i produktu programowego), akceptowana przez klienta. Jedni jeżdżą polonezem, inni mercedesem. Tak samo jest w informatyce. Jednych stać na opłacenie wysokich kosztów uzyskania wysokiej jakości (w tym i niezawodności) oprogramowania, podczas gdy inni wolą gorzej, ale taniej.

I na koniec dydaktyka, bo ta jest moim zawodem. Szkoły matematyki, fizyki, mechaniki czy chemii powstawały wiekami. I to przy stabilnym obiekcie badań. Szkoła inżynierii oprogramowania liczy sobie zaledwie 25 lat. To niezwykle mało. Ale jest i się rozwija, bo ktoś jednak musi przygotowywać kadry informatyczne. Jedną z form kształcenia jest dzielenie się wiedzą praktyczną. Trudno przyciągnąć praktyków w pełni sił wytwórczych na uczelnie, znacznie łatwiej na konferencje, takie jak I Krajowa Konferencja Inżynierii Oprogramowania, która odbędzie się w październiku tego roku (http://www.eti.pg. gda.pl/kkio/). Pierwsza, ale mam nadzieję nie ostatnia.

Dr inż. Marek Miłosz jest adiunktem w Katedrze Informatyki Politechniki Lubelskiej, wiceprezesem Polskiego Towarzystwa Informatycznego i członkiem Sekcji Inżynierii Oprogramowania Komitetu Informatyki PAN.