Die wesentliche Schritte bei der Softwareentwicklung sind trotz Scrum und Agile die gleichen geblieben. Bevor man mit dem Programmieren anfängt muss man zunächst die Anforderungen formulieren. Dies kann im klassischen Anforderungskatalog gemacht werden oder in einem Produkt-Backlog als User-Stories. Wichtig dabei ist aber immer, dass die Anforderungen klar verständlich für alle Beteiligten sind.

Je nachdem ob man mit Agile oder mit dem Wasserfallmodell arbeitet werden dann aufgrund der Anforderungen die ersten Entwürfe gemacht. Hierbei kann es sich um Teile der Software handeln, die schon funktionsfähig sind oder die nur teilweise funktionieren, beispielsweise um die Komplexität zu demonstrieren. Die Entwürfe werden dann implementiert, und diese Implentierungen werden dann getestet. Das Testen ist ein wesentlicher Bestandteil der Softwareentwicklung. Nur was erfolgreich getestet ist, kann weiterverwendet werden. In Scrum spricht man davon dass es die Definition of Done erfüllt, im Wasserfallmodell ist in der Regel ein Meilenstein erreicht worden. Eine Software kann nur dann ausgeliefert werden, wenn sie mehrfach getestet wurde und das Quality Management passiert hat. Oftmals wird heute dem User aber eine zu großen Teilen funktionsfähige Software gegeben und darauf gewartet, dass dieser eventuell auftauchende Fehler meldet, die dann in Updates behoben werden können.