2.1. A kezdetekben

iDevice ikon

A szoftverfejlesztés kezdeti időszakában - a 1960-as évek végén - a programozás legtöbbször egyszemélyes feladat volt, és az elkészült programkód logikáját gyakran csak az alkotója értette. A hatvanas évek végén felfigyeltek arra, hogy a szoftverfejlesztők az esetek többségében minden előzetes idő és költségkeretet túlléptek, a fejlesztések mintegy háromnegyede kudarcba fulladt, az elkészült szoftverek nem feleltek meg az elvárásoknak, és gyakran a minimális használhatósági szintet sem ütötték meg. Egy 1979-es vizsgálat eredménye szerint a megkezdett programok fele elkészült, de sohasem használták, negyede el sem készült, negyedét többszöri módosítással tudták csak használhatóvá tenni. Akkori tapasztalatok szerint a hibajavítás a programozási idő 80 %-át teszi ki. A vizsgálatok során feltárt hibák: 

  • túl hosszú a fejlesztési idő - időközben az eredeti elképzelés elavul vagy érdekvesztés történik
  • hibás költségtervezés, a tényleges ráfordítás gyakran az eredeti költségvetés többszöröse,
  • a kidolgozott rendszer rugalmatlan, az apró változtatások erőforrás igényesek
  • a végtermék nem tesz eleget a felhasználói igényeknek,
  • a termék redundanciát tartalmaz (többszörös adattárolás, hasonló algoritmusok sokasága),
  • az új rendszer a hagyományos (régi) rendszer hiányosságait nem küszöböli ki (a teljesség hiánya),

A vizsgálatok szerint a magyarázat a szervezés és fejlesztés módszerességének hiányosságaiban keresendő. Egyértelművé vált, hogy a fejlesztéseket új alapelvekre kell helyezni, átgondolt tervezésre, korszerűbb tervező és fejlesztő eszközökre - hatékonyabb programnyelvekre - van szükség. Új, rendszerszemléletű tervezési és fejlesztési módszereket kellett kidolgozni, amelyek bizonyos mértékben átveszik az ipari termékek fejlesztésének technológiáját: kialakulnak a szoftverházak, ahol a programozás már nem a „művészi" munkához, hanem a gyárakban folyó tevékenységekhez hasonlít. Az évtizedek során megfogalmazott szabályrendszerből lassan intézményesen menedzselt komplex módszertanok alakultak ki. 

A szoftverfejlesztési módszertan szabályok, eljárások, módszerek összessége, amely a célokról és követelményekről való információk rendszerezésével és elemzésével, az egyes lépések következetes meghatározásával, illetve a szabványosított eljárások bevezetésével minimálisra csökkenti az esetlegességet, és ezzel garantálni igyekszik a sikeres kimenetet

A hetvenes évek kudarcaiból tanulva világszerte megkezdődött egy új szoftverfejlesztési technológia kidolgozása, amely biztosítja az erőforrások (a meglévő szakértelem) hatékony és gazdaságos kihasználását, képes garantálni a végtermék jó minőségét úgy, hogy eközben minimálisra csökkenti a szállítónak való kiszolgáltatottság mértékét. Az új fejlesztési módszerek fejlődésének fontos előzményei: 

  • a strukturált programozási nyelvek megjelenése (1972),
  • adatbázis-kezelő rendszerek alapelveinek lefektetése, a relációs adatmodell kidolgozása (E. F. Codd, IBM, 1970),
  • a szoftverfejlesztési ciklus elemzése (vízesésmodell, 1970),
  • strukturált tervezés, elemzés (software engineering) kialakulása,
  • a szoftverfejlesztés munkafázisait automatizáló CASE eszközök (Computer Aided Software Engineering) megjelenése.