Klasyczne podejście do wytwarzania oprogramowania jako podejście inżynieryjne nie do końca się sprawdza. Większość słowników podaje mniej więcej następujące znaczenie tego terminu: „działalność polegająca na projektowaniu i konstruowaniu obiektów oraz urządzeń technicznych z wykorzystaniem wiedzy naukowej oraz technicznej”. Niestety żaden słownik nie objaśnia na czym ma polegać owa działalność. Sam termin pojawił się w 1968 roku na konferencji sponsorowanej przez NATO. Termin ten ukuto w celu sprowokowania dyskusji na temat efektywnych sposobów wytwarzania oprogramowania w czasach ówczesnego kryzysu oprogramowania. Pomimo już ponad 40. letnich starań kryzys ten nigdy się nie skończył i trwa do dziś. Wszelkie starania sprowadzenia zagadnienia wytwarzania oprogramowania do ściśle określonego schematu również do tej pory się nie powiodły. Wystarczy zobaczyć różnorodność metodyk zarządzania projektami, sposobów projektowania i strategii wdrażania oprogramowani, aby się przekonać, że nadal nie znaleźliśmy tej złotej ścieżki.

Zatem jakie są głównie zarzuty do inżynierii oprogramowania? Po pierwsze, inżynieria oprogramowania Zaltronik nie sprawdza się w przypadkach najbardziej pilnych, które niosą najwięcej potencjalnych strat. We wszelkiego rodzaju trudnych i nieprzewidywalnych sytuacjach inżynieria nie oferuje prawidłowej odpowiedzi, nie wskazuje również prawidłowych wzorców zachowań.

Po drugie cały czas obracamy się w terminach informatycznych, które nie mają (i raczej nie będą miały) bezpośrednich przełożeń na świat rzeczywisty. W świecie rzeczywistym nie mamy kopiowania, poprzez same opisy słowne nie dostajemy siły sprawczej i wreszcie z reguły nie mamy dowolności w wykonywaniu prac projektowych. Wszystkie wytwarzane konstrukcje inżynieryjne z reguły mają ściśle określoną kolejność wykonywania.
Zarządzanie jako gra zespołowa

Co zatem można zrobić, aby zaradzić tym kłopotom w świecie wirtualnym? Przede wszystkim zmienić podejście do wytwarzania oprogramowania, a sam projekt traktować jako grę zespołową pomysłowości i komunikacji. Na ogół gry są różne: skończone, nieskończone, zespołowe, indywidualne itp. Wytwarzanie oprogramowania jest taką właśnie grą skończoną i przede wszystkim zespołową. W trakcie tej gry, aby wygrać, musimy wspólnymi siłami w skończonym czasie osiągnąć pewien cel.

Do czego można porównać tę naszą skończoną grę zespołową? Jednym z trafnych porównań jest porównanie do wspinaczki. Mamy zespół, w którym różne osoby pełnią różne funkcje. Jedni się wspinają, inni zaopatrują obóz. Jedynie wspólny wysiłek całego zespołu umożliwia zdobycie góry w określonym czasie. Jest też zmienność warunków i nieprzewidywalność. Jednak gra ta nie do końca dobrze opisuje możliwości i inności w wytwarzaniu oprogramowania.