Więcej inżynierii, mniej programowania

Na początku XXI wieku sytuacja w inżynierii oprogramowania jest pełna zarówno rozczarowań, jak i nadziei. Nadzieje są związane ze stale doskonalonymi metodami i narzędziami, które pozwalają tworzyć coraz lepsze systemy coraz mniejszym kosztem. Mimo to rozczarowaniem jest trwający kryzys inżynierii oprogramowania, który udaje się nam łagodzić, ale którego nie potrafimy raz na zawsze przezwyciężyć.

Na początku XXI wieku sytuacja w inżynierii oprogramowania jest pełna zarówno rozczarowań, jak i nadziei. Nadzieje są związane ze stale doskonalonymi metodami i narzędziami, które pozwalają tworzyć coraz lepsze systemy coraz mniejszym kosztem. Mimo to rozczarowaniem jest trwający kryzys inżynierii oprogramowania, który udaje się nam łagodzić, ale którego nie potrafimy raz na zawsze przezwyciężyć.

Lata 90. w inżynierii oprogramowania to era narzędzi i metodyk. Z początkowego chaosu wyłoniła się wreszcie jedna, dominująca metodyka: Unified Modeling Language wspierana przez Rational Unified Process. Wspomagana narzędziami powoli zaczyna dominować zarówno w biznesie, jak i na uczelniach, co wróży jej długi (jak na standardy informatyczne) żywot na rynku.

Dzisiaj punkt ciężkości powoli przenosi się z metodyki na proces. Informatycy dojrzeli wreszcie dostatecznie, aby stawić czoło biznesowym wyzwaniom związanym z inżynierią oprogramowania. "Tanieje" dziś (w sensie zarówno dosłownym, jak i przenośnym) wiedza inżynierów, coraz bardziej poszukiwana jest zaś wiedza z zakresu zarządzania informatyką, a wraz z nią ludzie, którzy ją posiadają. Należy oczekiwać, że ci informatycy, którzy już nauczyli się skrótów, takich jak SQL, UDDI, SOAP, CORBA, UML, XML itd., będą teraz uczyć się, co oznaczają CMM, TQM, ROI, NPV, EBIT. Stanie się tak, ponieważ najbliższe dwa lata rysują się jako "lata chude" w inżynierii oprogramowania i racjonalne zarządzanie procesem oraz ekonomika przedsięwzięć będą liczyły się bardziej niż nowe języki i architektury. Posiadanie standardowego systemu jakości stanie się nie fanaberią, a koniecznością dla kogoś, kto chce naprawdę zaistnieć na rynku.

Za tym pójdzie specjalizacja uczestników procesu - a więc analityków, projektantów, ekspertów dziedzinowych, programistów, kontrolerów jakości, specjalistów od dokumentacji itd. Symptomy tej zmiany już dziś można obserwować w dojrzalszych organizacjach, a w ciągu kilku lat rozpowszechnią się one w większości firm informatycznych.

Software jak wideo

Trend ku całościowemu podejściu do procesu i specjalizacja w jego poszczególnych elementach niewątpliwie wpłyną także na relacje między firmami informatycznymi oraz ich partnerami - klientami i podwykonawcami. Popatrzmy na inne dziedziny inżynierii, np. inżynierię budowlaną, przemysł motoryzacyjny albo elektronikę użytkową. Produkt, taki jak odtwarzacz wideo, powstaje jak efekt współpracy kilku czy wręcz kilkunastu niezależnych firm. Ktoś projektuje elektronikę (używając do tego standardowych komponentów, takich jak układy scalone), ktoś inny mechanikę, jeszcze inny tworzy design obudowy. Potem fabryki na Tajwanie wykonują urządzenie w milionowych seriach ściśle według dostarczonej dokumentacji, w tym czasie specjalistyczna firma marketingowa pozycjonuje produkt i planuje kampanię reklamową, a korporacja logistyczna zajmuje się jego dystrybucją do odbiorców. Klient nie musi wiedzieć, kto co dostarczył i jak to zintegrowano, otrzymuje działające rozwiązanie.

Marek Rydzy, odpowiedzialny za jakość w obszarze EMEA w firmie Motorola, przewiduje, że wraz z polaryzacją ról w przedsięwzięciu informatycznym nastąpi przeniesienie niektórych zadań do krajów, które mają dobrze wykształconą kadrę i niskie koszty pracy. Konkurencją dla informatyków z krajów wysoko rozwiniętych (do których, może nieco na wyrost, zaliczymy Polskę) staną się specjaliści z Chin, Indii i Rosji. Może się okazać, że za dziesięć lat kolejna zmiana w Ustawie o podatku VAT w Polsce wcale nie "napędzi" klientów rodzimym firmom programistycznym, jak dzieje się to dziś. Owszem, polscy analitycy przygotują dokumentację nowych wymagań i wyślą ją poprzez Internet do Petersburga lub Bangalore, tam programy zostaną szybko uaktualnione i automatycznie rozesłane do polskich klientów - a wszystko będzie firmowała korporacja amerykańska.

Zarządzanie takimi rozproszonymi przedsięwzięciami będzie już wkrótce całkiem nową dziedziną wiedzy. Narzędzia do wspomagania pracy zespołowej w firmie informatycznej przyszłości będą liczyły się nie mniej niż kompilatory i programy CASE. Kluczowe staną się standardy analizy, projektowania i dokumentowania. To dzięki nim oddalone od siebie zespoły i firmy będą mogły współpracować nad jednym zadaniem.

Nowy wymiar komunikacji

Inżynieria oprogramowania w przyszłości będzie musiała dokonać istotnego przewartościowania komunikacji z człowiekiem. Można powiedzieć, że od kiedy Macintosh i pierwsze Windows upowszechniły znany standard graficzny, w dziedzinie interakcji człowiek-maszyna nie stało się nic naprawdę ważnego. Nadal podstawą tej komunikacji pozostają klawiatura, myszka i monitor. Zdecydowanie nie są to sposoby komunikacji naturalne dla człowieka. Doceniając postęp, który zawdzięczamy temu standardowi i jego twórcom, wypada zapytać: co dalej? Czy w ciągu dziesięciu lat będzie można porozumiewać się z komputerami głosem, gestami czy wręcz... myślą? Czy zostaną opracowane nowe interfejsy użytkownika, integrujące w jakiś sposób rzeczywistość wirtualną?