Agile Softwareentwicklung

Lorenz Kofler

„Der Kunde regiert, der Entwickler reagiert“…

Auch wenn dieses selbsterfundene Zitat vielleicht etwas überzogen klingt, so sagt es doch genau das aus, was agile Softwareentwicklung ausmacht. Der Kunde ist hier stets mit in den Entwicklungsprozess einbezogen und kann dementsprechend sofort bekannt geben, was missfällt und was gefällt. In ersteren Fällen ist es dann die Aufgabe der Entwickler, auf die Wünsche der Kunden einzugehen, auch wenn diese vom eigentlich ursprünglichen Plan abweichen. Gerade das zeichnet diesen flinken oder beweglichen Softwareentwicklungsprozess aus.

In den allermeisten Fällen ist es schwer, und ich glaube so geht es beinahe jeder Person (sollte dies bei Ihnen nicht der Fall sein, so verraten Sie mir bitte Ihr Geheimnis!), schon von Anfang an genau zu wissen, wie das zu entwickelnde Produkt schlussendlich aussehen und funktionieren soll. Natürlich haben wir alle stets ein Bild vor Augen, mit vielen Visionen, Ideen und Vorstellungen, manchmal sind diese sogar ziemlich detailliert und ausgeprägt, doch dennoch zeichnet es sich doch meistens ab, dass man vielleicht doch nicht alles bedacht hat, dass vielleicht doch etwas Unlogisches oder gar Unmögliches dabei ist, oder dass einfach etwas ganz Wesentliches im Ursprungsplan fehlt …

In solchen Fällen steht man bei einem rein klassischen Softwareentwicklungsprozess, wie es beispielsweise das Wasserfallmodell ist, gleich einmal an. In solch einem Prozess definiert man im striktesten Fall zuerst das Lastenheft mit den Anforderungen, dann plant man die Softwarearchitektur und legt diese fest, anschließend wird die Software entwickelt, getestet und schließlich noch in Betrieb genommen beziehungsweise gewartet. Wie man unschwer erkennen kann, ist es in solchen Fällen zumeist der Fall, dass anschließend Folgeaufträge mit weiteren Änderungen folgen werden, denn wie bereits oben erwähnt, kann man einfach nicht alles von vorne herein definieren, wissen und verstehen. 



Der agile Weg ist hier ein komplett anderer. Man entwirft ein Grundkonzept, versucht so schnell als möglich eine Mindestversion der Anwendung zu veröffentlichen, um schließlich gleich vom Kunden Feedback zu bekommen und sofort auf etwaige Änderungswünsche reagieren zu können. Gerade das zeichnet diese Vorgehensweise aus – kleine Arbeitspakete, welche in kurzen Iterationen abgearbeitet werden und danach sofort vom Kunden bewertet werden können. Natürlich ist es für den Kunden eventuell während der Entwicklungsphase etwas aufwändiger, da er stets seinen „Senf“ dazugeben muss, aber ich denke, dass es leicht verständlich ist, dass kleine Senfportionen besser und effizienter zu verarbeiten sind als eine auf ein Mal komplett entleerte Senftube …

Wir halten also fest, dass im agilen Softwareentwicklungsprozess das frühe und stete Deployen der Software höchste Priorität hat, um sofort Feedback zu erhalten und sofort zu sehen, ob man den richtigen Weg geht oder ob man doch noch mehr vom Ursprungsplan abweichen muss. Ob solche Änderungswünsche früh im Entwicklungsprozess erfolgen oder ob diese erst später erfolgen, ist in dieser Art der Softwareentwicklung eigentlich egal, denn was man zu dieser Zeit machen soll, wird „eh erst“ beim Sprint-Planning vor dieser nächsten Iteration definiert. Das ist ja auch ein Grund dafür, dass man immer gerne in die Arbeit geht. Man weiß zwar, dass man wieder vor dem PC sitzen wird und ein paar Befehle eingeben wird, aber man weiß noch nicht zu 100%, wie diese in der kommenden Iteration zu sortieren und niederzuschreiben sind … 🙂

Also – warten Sie nicht darauf, bis Sie Ihren Plan ins Detail erfasst haben, um diesen schließlich doch wieder komplett umwerfen zu müssen. Gehen Sie jetzt zu Ihrem Softwareentwicklungsteam des Vertrauens und arbeiten Sie mit ihm gemeinsam am nächsten Projekt, das sich durch eine agile Vorgehensweise verselbstständigen wird. Lassen Sie es nur zu … 😉


Suchst du noch die passenden Entwickler für die Umsetzung deiner Software-Lösung?

Melde dich bei uns!

Weiterführende Links

Weitere Blogbeiträge

Nativ, hybrid oder Web-App? Welche Variante soll ich wählen?

Hybrid, Nativ oder Web? Was sich für viele vielleicht wie eine Antriebsart anhört, ist für Softwareentwickler ganz klar – es…

Weiterlesen

Single-Page-Applications – Was ist das?

Was sind Single-Page Applications? Single-Page Applications (SPA) sind Webapplikationen, die zum Großteil mit JavaScript entwickelt wurden. Im Gegensatz zu herkömmlichen…

Weiterlesen

App-Entwicklung – Wo soll ich starten?

Du hast eine App-Idee und möchtest sie so schnell wie möglich umsetzen, weißt aber nicht wo genau du beginnen sollst?…

Weiterlesen
Arrow-up