Czy zapewniamy właściwą jakość?

Data: 2011-08-19
Autor: Sebastian Konkol

Czytaliście “The Big Switch” napisane przez Nicholasa G. Carra (tego od “IT Doesn’t Matter”)? Jak to w jego stylu, promuje on zmuszającą do przemyśleń wizję tego, co dzieje się teraz w IT, czyli – w mojej nomenklaturze – w informatyce użytkowej. Złożoność systemów informatycznych, ich rola i sposób, w jaki wchodzą w interakcje z ich użytkownikami ewoluuje przez czas liczony już w dziesięcioleciach. W efekcie tej ewolucji, podczas kilku dekad istnienia oprogramowania w cywilizacji ludzkiej, relacje między oprogramowaniem a jego użytkownikiem zmieniło się dość dramatycznie. Na samym początku tej drogi, zarówno programowanie (jako czynność tworzenia oprogramowania) jak i używanie go nosiły znamiona tajemnicy. Choć dzisiaj trudne to jest do zrozumienia, korzystanie z komputera wymagało głębokiej wiedzy inżynierskiej. Troszkę później, kiedy zamiast kart perforowanych były już urządzenia wejścia-wyjścia (klawiatura, stacja dysków), programowanie stało się odrobinę wygodniejsze, a w dziedzinie użytkowania programowania odczuwano nawet większe postępy. Tym niemniej, role twórcy oprogramowania i jego użytkownika były dość mocno rozdzielone. W dzisiejszych warunkach, te dwie role są coraz mocniej „zmiksowane”, istnieje coraz mniej zagadnień, które mogą być bezdyskusyjnie określone jako przynależące do domeny inżynierskiej, jaką nazywany software engineering.

To jest jednak trywiał. Ciekawsze jest to, że dzisiaj stykamy się ze znacznie bardziej kluczową sprawą: oprogramowanie stało się tak potężne i wszechmocne, że niewiele pozostało już zadań, w których nie może ono wyręczyć człowieka, całkowicie „eliminując” konieczność wkładania przez niego wysiłku w to konkretne działanie. Ta cecha oprogramowania jest powodem, dla którego relacja między oprogramowaniem (wytworem człowieka) a użytkownikiem (człowiekiem) odwraca się – zamiast tego, że użytkownik wykorzystuje oprogramowanie dla realizacji zadań wymagających wysiłku, to oprogramowanie zaczyna „wykorzystywać” ludzi w zadaniach, których nie jest w stanie naśladować czy imitować. Już dzisiaj istnieją systemy informatyczne, powszechnie używane, w których działania wykonywane przez człowieka reprezentują jedynie wykonywalne elementy włączone w większy system informatyczny. Systemy „wywołują” ludzkie procedury w miejscach, w których nie są w stanie wykonać tego same – zaczynają używać ludzi, jak urządzenia wejścia-wyjścia!

To odwrócenie relacji zmienia tak wiele paradygmatów rozwoju oprogramowania, tworzenia systemów informatycznych i zarządzania technologią, że bezwartościowym byłoby wymienianie ich tutaj. Niewiele ryzykując postawiłbym tezę, że zmienia je wszystkie. Na dokładkę, systemy informatyczne stają się coraz mniej kontrolowalne (bo już dawno przestały być zrozumiałe) z powodów ich elastyczności, konfigurowalności, rozszerzalności, wbudowywanych w nie języków skryptowych, API oraz możliwości „programowania myszką” udostępnianych nawet najmniej predestynowanym do tego użytkownikom (amerykanie mówią for dummies). Wszystko to czyni typowego użytkownika systemu informatycznego niemal tak wszechmocnym (w odniesieniu do tego systemu) jak jego programistę. Taki użytkownik pozostaje jednak kompletnie nieprzewidywalny.

Myślałem o tym w kontekście jednej konferencji z dziedziny zapewnienia jakości oprogramowania i jakości tworzenia systemów informatycznych. Konferencja miała być poświęcona ściśle pragmatycznym, praktycznym zagadnieniom. Wszystkie zagadnienia preferowane dla tej konferencji dotyczyły jednak nie tej relacji między oprogramowaniem a użytkownikiem, której powinny. Odnosiły się do relacji, jakie obowiązywały dekadę lub dwie temu. Biorąc pod uwagę fakt, że dla wypracowania skutecznych standardów działań w jakiejś dziedzinie (a szczególnie w ściśle anarchicznej sferze informatyki użytkowej) ludzkość potrzebuje dekady lub więcej, konferencje o jakości oprogramowania powinny dotyczyć kompletnie innych spraw. Pytania na dziś są następujące. Czy myśląc o jakości skupiamy się na właściwych rzeczach? Czy w ogóle wiemy, a przynajmniej podejrzewamy, na czym powinniśmy się skupić w najbliższych dwóch do pięciu latach? Czy w ogóle mamy podstawy twierdzić, że rozumiemy do czego zmierza ewolucja oprogramowania i metod jego rozwoju? A może jest to rewolucja, którą większość „specjalistów” przeoczyła?

Nie jestem technofobem (jeśli już to technofreakiem), ale sposób, w jaki np. algorytmy Google wykorzystują akcje użytkowników do „poprawiania” wyników wyszukiwania powinny dać wszystkim do myślenia. A Google wcale nie jest jedynym takim systemem na świecie…

Pozostaw komentarz