2.1. A kezdetekben
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.