Króliki z kapelusza

Na każdych targach komputerowych i wystawach specjaliści od marketingu firm software'owych demonstrują sztuki magiczne: w ciągu 5 minut wyczarowują kompletną aplikację wykonującą skomplikowane przeszukiwanie danych z bazy i prezentującą je w eleganckiej formie na ekranie.

Na każdych targach komputerowych i wystawach specjaliści od marketingu firm software'owych demonstrują sztuki magiczne: w ciągu 5 minut wyczarowują kompletną aplikację wykonującą skomplikowane przeszukiwanie danych z bazy i prezentującą je w eleganckiej formie na ekranie.

Wprawdzie nie chwalą się przy tym, że tę sztukę ćwiczyli wczoraj do upojenia cały wieczór i pół nocy, aby mieć kompletną pewność, że niczego nie zapomnieli z umiejętności, które rozwijają od miesięcy, ale wrażenie jakie czynią na niewtajemniczonych jest imponujące.

Popatrzmy na półki z czasopismami w wielu portach lotniczych świata i specjalistycznych księgarniach. Pełno w nich czasopism o szybkich metodach opracowania aplikacji (Rapid Application Development - RAD), systemach klient/serwer, technikach obiektowych czy metodach składania aplikacji z elementów. Można by odnieść wrażenie, że nowe technologie pozwalają na natychmiastowe opracowanie aplikacji, bez wysiłku i ponoszenia kosztów. Prasa komputerowa też zresztą nie bez winy. W każdym ze wspomnianych pism pełno opisów sukcesów - np. jak to zespół dwuoosobowy w ciągu weekendu przeniósł kompletne dane z mainframe'a na system sieciowy i dołączył je do aplikacji klient/serwer, opracowanej w piątek po południu.

Czytelnicy ani dziennikarze nie są jednak tak naiwni, jakby można sądzić z podanych przykładów: marketing to marketing, rzeczywistość zaś to świat jakby nieco z boku, rządzący się własnymi prawami. Obecnie także prasa komputerowa zaczyna dostrzegać te aspekty opracowania aplikacji, które przedtem pomijała: rozmiar przedsięwzięcia, koszty, przekraczanie terminów i budżetu, kłopoty z przenoszeniem aplikacji z dużego komputera na system sieciowy, a nawet pokazuje, że samo przeniesienie danych nie jest tak proste, jak to wygląda na pierwszy rzut oka.

Jednak opisane sukcesy w opracowaniu systemów klient/serwer dotyczyły na ogół prostych systemów o niewielkich wymaganiach, to wiele osób wyrobiło sobie nieuzasadnione przekonanie, że wszystkie systemy klient/serwer są równie proste. Tymczasem przejście z prostej aplikacji demonstracyjnej do poważnego systemu przetwarzania transakcyjnego to wielki wysiłek - wręcz zupełnie inne zadanie.

Popatrzmy zresztą na inne dziedziny działalności inżynierskiej - ostatecznie informatyka to też taka dziedzina inżynierska. Profesjonaliści ciężko pracują nad przyrostowym polepszeniem jakości swych produktów i nie oczekują od razu cudów. Tymczasem od informatyki często oczekuje się tych cudów. Zupełnie jakby informatyk - niczym prestidigitator - był w stanie sięgnąć ręką do kapelusza i wyciągnąć cudowny lek na wszystkie bolączki i problemy.

Zbyt wiele osób związanych z wykorzystaniem informatyki nie widzi prostej analogii między działalnością inżynierską w dowolnej dziedzinie a inżynierią oprogramowania. W działalności inżynierskiej buduje się modele (i wiele z nich odrzuca), potem prototypy, sprawdza jak wyglądają, testuje się na nich pomysły, aby w końcu dojść do końcowego produktu. I nie projektuje się od nowa każdej potrzebnej śruby, podkładki czy elementu; korzysta się z gotowych podzespołów.

Tak długo dopóki nie uświadomimy sobie (i innym), że informatyk to po prostu inżynier, tak długo nie usuniemy z ich świadomości przeświadczenia, że ma on w zanadrzu cudowny zerojedynkowy przycisk, produkujący systemy informatyczne na poczekaniu.