Wśród redakcyjnej poczty największą część stanowią prośby o poradę przy zakupie lub zamianie komputera. "Drogi BAJTKU"! Zamieniam AMIGĘ na MEGA ST [...]; "Mam Spectrum i chcę używać programów typu AutoCad [...]" - to typowe przykłady takich listów. Bardzo rzadko jednak trafi się list, w którym istnieje właściwy porządek - najpierw określam swoje cele, do jakich zamierzam stosować komputer, a dopiero później wybieram sprzęt.
Efekty odwrotnego postępowania wyśmienicie przedstawił R.L. Baber w książce "O programowaniu inaczej", wydanej przez Wydawnictwa Naukowo-Techniczne (ISBN 83-204-1072-X). Spróbujmy przeanalizować prawidłowy i błędny system postępowania.
Pan Bańbuła postanowił założyć własną firmę handlowo-usługową "WSZYSTKONARAZ Sp Z O.O.". Firma ta ma zajmować się handlem detalicznym i zarządzaniem małym składem celnym, jednakże w bardzo wąskim zakresie i za pomocą rewelacyjnej metody gwarantującej maksymalne zyski i minimalne podatki. Pan Bańbuła doskonale wie, jak komputer ułatwia (ale i utrudnia!) życie, lecz nie zna się na tym dostatecznie, z czego zdaje sobie sprawę (plus).
W pierwszym odruchu pan Bańbuła wpadł na pomysł udania się do swojego serdecznego przyjaciela Ekraniaka, cierpiącego jako fanatyk komputerów na głód klawiaturowy. Pan Bańbuła wie, że Ekraniak jest wyjątkowy, jeśli chodzi o łamanie gier, nie wie jednak, czy jest on w stanie napisać znacznie poważniejszy i trudniejszy program (drugi plus).
Pan Bańbuła wpada więc na lepszy pomysł: opiszę w normalnym języku swoją koncepcję, wszystkie powiązania pomiędzy programami zgodnie z moją metodą i udam się na konsultację do specjalistycznej firmy. Ekraniak co prawda odradzał, bo to niby duże koszty, ale co mi szkodzi...
Zlecenie pan Bańbuła sformułował następująco:
"Nie znam się na komputerach. Programy mają wykonywać następujące czynności (tu lista).
Zależności pomiędzy nimi muszą, być następujące (następna lista). Proszę o:
- precyzyjne określenie moich potrzeb sprzętowych,
- przełożenie moich założeń i potrzeb na język zrozumiały dla programistów,
- dobór najbardziej efektywnego języka i/lub oprogramowania dla moich potrzeb,
- określenie dodatkowych opcji oprogramowania nie uwzględnionych przeze mnie, a możliwych do zrealizowania,
- dokładny opis metod i algorytmów, jakich ma użyć programista podczas projektowania mojego systemu,
- zaprojektowanie systemu przystosowanego od początku do jego znacznego rozszerzenia w przyszłości w każdym z interesujących mnie zagadnień.
Przez n tygodni konsultanci biedzili się nad wymyśleniem najbardziej optymalnego rozwiązania dla pana Bańbuły; analizowano wiele różnych teorii, algorytmów, metod programowania, optymalnych struktur baz danych itp. Założenia zawarte na kartce wyrwanej z zeszytu zajęły teraz opasłe tomisko.
Po n miesiącach pan Bańbuła. uboższy o kilkanaście milionów, udał się do firmy produkującej oprogramowanie na zamówienia. Oczywiście wynikły na początku pewne tarcia, gdyż programiści tejże firmy mieli zupełnie inne zdanie na temat potrzeb pana Bańbuły; ponieważ jednak zleceniodawca twardo obstawał przy założeniach opracowanych przez firmę konsultacyjną, programiści skapitulowali i zamówienie przyjęli, podnosząc jednak nieco jego cenę.
Po kilku miesiącach komputer wraz z oprogramowaniem znalazł się nareszcie u właściciela. Zastrzeżenia umieszczone przezornie w kontrakcie i konsultacja wykonanego oprogramowania zmusiły twórców systemu do usunięcia szeregu drobnych błędów oraz efektów lenistwa i niedbalstwa, poprawienia wykonanej dokumentacji systemu i zmiany algorytmów czterech procedur jako niezgodnych z założeniami. Ostatecznie program został przyjęty dopiero po zapewnieniu konsultantów, że system jest CAŁKOWICIE zgodny z ich założeniami. Wykonanie tych operacji nie kosztowało Bańbuły nawet złamanego szeląga, gdyż wszystko to było obwarowane odpowiednim kontraktem, przygotowanym również przez konsultanta.
Wdrożenie systemu i wprowadzanie danych przebiegło bez większych problemów i zajęło dalsze dwa miesiące. System zaczął działać. Po roku pan Bańbuła zlecił jednocześnie: rozbudowę systemu i analizę ekonomiczną zysków, jakie przyniosło mu rozważne postępowanie w nieznanej mu dziedzinie. W rezultacie dowiedział się, że koszty włożone w konsultacje, sprzęt i oprogramowanie zwróciły się już po 7 miesiącach pracy systemu. Ponadto jego rozbudowa przebiegała bez zakłóceń, choć tymczasem pan Bańbuła sześciokrotnie powiększył swój skład celny i rozwinął handel na skalę ogólnokrajową.
Po kilkunastu miesiącach Ekraniaka o mało jasny szlag nie trafił, gdy zobaczył Bańbułę wysiadającego z nowiutkiego mercedesa. Po głębszym namyśle Ekraniak wymyślił jeszcze lepszą metodę od stosowanej przez byłego serdecznego przyjaciela Bańbułę; metoda ta dawała zyski większe o 45%.
Aby nie tracić czasu i pieniędzy, Ekraniak habył bez zastanowienia najnowszy model IBM PC 386, skopiował od zaprzyjaźnionego księgowego Pałuchy standardowe oprogramowanie i w ciągu dwóch miesięcy rozpoczął działalność. Niestety sprawy od początku szły nie najlepiej. Po pierwsze, zawartość komputera różniła się w sposób znaczny od zawartości samego magazynu (na skutek nie przemyślanej do końca struktury głównej bazy danych). Faktury system drukował poprawnie, zdecydowanie jednak nie chciał drukować nazwisk odbiorców zaczynających się na literę Z, ze względu na wadliwe indeksowanie zbioru danych. Ilość zakupionych za granicą telewizorów zgadzała się wszędzie co do joty, czego jednak nie można już było powiedzieć o magnetowidach, regularnie sumowanych z magnetofonami (zastosowany klucz indeksowy rozróżniał jedynie trzy pierwsze litery nazwy sprzętu). Co kończył się jeden problem poprawiany na bieżąco przez Ekrania ka, to natychmiast wyłaził nowy. 0 rozszerzeniu działalności nie mogło być mowy - już obecna sprawiała wystarczająco dużo kłopotów. Brak zasilania i brak rezerwowych kopii danych pozwolił Ekraniakowi spędzić urlop na wstukiwaniu ich od nowa.
Po roku pan Ekraniak, wykończony ciągłym poprawianiem i przystosowywaniem programów, poprosił o konsultację pociotka szwagra - programistę Gwizdałę. Po przeprowadzonych badaniach ten ostatni wykrył szereg innych poważnych błędów, wynikających przede wszystkim z zastosowania złych, nieprzemyślanych i błędnie dobranych do metody Ekraniaka algorytmów. Koszty doprowadzenia istniejącego oprogramowania do stanu podstawowej używalności Gwizdała wycenił na sumę prawie dwa razy większą od tej, którą zapłacił były przyjaciel Ekraniaka - Bańbuła. Pan Ekraniak skończył na zawał w karetce reanimacyjnej (o gorzka ironio!) marki mercedes, gdy ujrzał Bańbułę zajeżdżającego tym razem BMW serii 700, kupionym dla nieletniej córki.
Być może zapytasz, Czytelniku, co ta historia ma wspólnego z wyborem komputera. Owszem, ma, i to dużo. Po pierwsze, przemyślany do końca zakup zawsze przyniesie więcej pożytku aniżeli szkody. Chcesz kupić AMIGĘ 2000 ze względu na świetny dźwięk, wspaniałą grafikę i ewentualną możliwość dołączenia karty emulującej IBM? A może lepiej kupić w to miejsce po prostu IBM z kartą graficzną VGA i kartą MT32 firmy Roland zamieniającą komputer w profesjonalny syntetyzer? Drugi przykład: piszę program edukacyjny z matematyki w zakresie układu równań z dwiema niewiadomymi. Do tego nie potrzebuję IBM, wystarczy mi Spectrum. To cel ma uświęcać środki, a nie środki cel!
Odwrócenie tej kolejności prowadzi w wielu wypadkach do nieporozumień i znacznych strat finansowych. Jeśli chcemy odkręcić śrubę, to wiadomo, że potrzebne będą obcęgi; w przeciwnym wypadku trzeba zadać sobie pytanie: "Co mogę zrobić obcęgami?"
Przyjemnych rozważań.
Klaudiusz Dybowski
Bajtek, marzec 1991