Traditionellen Vorgehensmodellen der Softwareentwicklung, wie dem (alten) V-Modell oder dem Rational Unified Process, wird oft Schwerfälligkeit und bürokratischer Aufwand vorgeworfen. Projekte werden über Verträge und Vorschriften geregelt, eine große Zahl von Rollen ist definiert, Arbeitsschritte sind im Detail festgelegt. Eine Vielzahl von Plänen und Dokumenten (Artefakten) ist zu erstellen. Abstimmungsprozesse sind reglementiert und dauern in der Regel lange. Diese Vorgehensmodelle werden daher, insbesondere wegen der umfangreichen Dokumentation auch schwergewichtig genannt.
Für sehr große Projekte oder Projekte mit hohen Anforderungen an die Korrektheit der erstellten Software, z.B. weil Menschenleben gefährdet sind, sind diese schwergewichtigen Prozesse erforderlich. Über Messungen, Regelungen und organisatorische Maßnahmen sollen wiederholbar verlässliche Ergebnisse erzielt werden (vgl. Das Capability Maturity Model (CMM)).
Um kleinere, weniger kritische Projekte schneller, flexibler und kostengünstiger bei gleicher Qualität abwickeln zu können, wird nach schlankeren Vorgehensmodellen gesucht. Vorgehensmodelle sollen gerade die Artefakte, Rollen und Abläufe vorgeben, die unbedingt notwendig sind. Idealerweise sollen sich die Vorgehensmodelle an die aktuelle Projektsituation automatisch anpassen, sie sollen adaptiv sein. Mit Anforderungen und Rahmenbedingungen, die sich rapide ändern, soll umgegangen werden können.
Mehrere Entwicklungsprozesse wurden publiziert, die diese Aufgabe angehen. Sie werden als leichtgewichtige oder auch agile (für beweglich, wendig, behände) Prozesse bezeichnet. Prominentester Vertreter ist das eXtreme Programming.
Agilität ist leider zu einer Mode geworden, so dass es mittlerweile eine kaum überschaubare Menge an Veröffentlichungen zu diesem Thema gibt. Die vorliegenden Wissensbausteine sollen Einstieg und Überblick vermitteln.