Unsere Software Entwicklung

Auf dieser Seite bieten wir einen kurzen thematischen Einblick in das Feld der Software Entwicklung. Da wir uns seit einigen Jahren mit diesem Bereich auseinandersetzen konnten wir viel Erfahrung in der Methodik sowie Best Practices sammeln.

software-entwicklung-unsere-softwareentwicklung

Dieser Erfahrung wollen wir natürlich in der Planung, Konzeption und Bearbeitung eines Projekts für unsere Kunden bereitstellen. Ob es eine Applikation für Windows, Mac, mobile Geräte (Android und iOS) oder eine Webseite ist – wir verfügen über die Expertise um Ihnen bei jedwedem Projekt fachmännisch zur Seite zu stehen und die beste Lösung anzubieten.

Wie diese durchaus komplexen Prozesse ablaufen, wird unten näher beschrieben.

Der Entwicklungsplan

software-entwicklung-entwicklungsplan

Wasserfall, Prototyping, iterative und inkrementale Entwicklungen, Spiralentwicklung und agile Methoden – Alles kann in der Praxis angewendet werden. In unserem Entwicklungsprozess stehen meist agile Entwicklungsmethoden wie Kanban an erster Stelle. Viele Frameworks haben sich im Laufe der Jahre mit ihren Stärken und Schwächen an verschiedene Methoden angepasst. Allerdings kann nicht jedes Software-Entwicklungs-Framework für alle Projekte geeignet sein. Unser Entwicklungsplan wird nach Diskussion mit dem Kunden und anhand der Projektgröße und der gewünschten Architektur entworfen. Dies definiert die Basis eines spezifischen Projekts, welches auf verschiedenen technischen sowie organisatorischen Projekt- sowie Teamüberlegungen basiert.

Unsere Softwareentwickler

software-entwicklung-softwareentwickler

Unsere Programmierer, oder besser Softwareentwickler, sind fest an die agilen Methoden gebunden. Ein Entwickler kann sich im Beispiel der Entwicklungsmethode „Kanban“ immer nur eine Aufgabe aus einem Pool von Aufgaben reservieren und diese abarbeiten. Dies sorgt für einen Fokus der nicht auf Multitasking ausgelegt ist, sondern konzentriertes Arbeiten ermöglicht. Zahlreiche Softwareprojekte erfüllen oftmals nicht ihre Erwartungen in Bezug auf Funktionalität, Kosten oder Lieferplan. Dieses soll von vornherein durch vernünftig gesteuerte Abläufe vermieden werden.

Ein Entwicklungsteam sollte sich auf jede Art von Entwicklungsumgebung einstellen können, um bestimmte Regeln oder die Wahl von speziellen Softwarebibliotheken oder Frameworks anzuwenden, die den Ablauf des Projekts effizient und budgetgerecht ermöglichen.

Die Ansätze der Programmierung

Typischerweise wird ein Ansatz oder eine Kombination von untenstehenden Ansätzen durch das Management oder das Entwicklungsteam ausgewählt.

Agile Software Entwicklung

software-entwicklung-agile

Die agile Softwareentwicklung bezieht sich auf mehrere Methoden, die auf iterativer Entwicklung beruhen. Hierbei werden Anforderungen und Lösungen über die Zusammenarbeit zwischen selbstorganisierenden, funktionsübergreifenden Teams entwickelt. Diese Methode befürwortet eine leichtere und teilnehmerbezogene Sicht auf das Projekt als traditionelle Ansätze. Agile Prozesse integrieren die Iteration und auch die kontinuierliche Rückmeldung der am Projekt beteiligten Personen.

Wasserfall Entwicklung

software-entwicklung-wasserfall

Das Wasserfall-Modell ist ein sequentieller Ansatz der Software Entwicklung, bei dem die Entwicklung stetig, durch mehrere Phasen wie ein Wasserfall, nach unten verläuft. Diese Phasen werden eingeteilt in: Anforderungsanalyse, Software Design, Implementierung, Testen, Integration und Bereitstellung. Im Nachhinein erfolgt dann eventuell auch eine Wartung und Instandhaltung der Software.
Ein Projekt gliedert sich in eben diese Phasen, wobei Überlappungen manchmal möglich sind. Die strenge Kontrolle wird über die gesamte Laufzeit des Projekts über umfangreiche schriftliche Unterlagen, Überprüfungen und Genehmigungen durch Nutzer und Management aufrechterhalten. Jede Phase muss ausführlich schriftlich dokumentiert werden.
Das Wasserfall Modell ist ein traditionelles Modell und der strenge Ansatz ermöglicht keine Wiederholung oder Überarbeitung einer früheren Phase, sobald diese einmal abgeschlossen ist. Die somit nicht vorhandene Flexibilität in einem reinen Wasserfall-Modell sorgte dafür, dass es oftmals schon in der Planungsphase durch agile Methoden ersetzt wird.

Spiralentwicklung

software-entwicklung-spiralentwicklung

Im Spiralmodell werden verschiedene Ansätze kombiniert um die Vorteile eines Top-Down Modells (vgl. Wasserfall-Modell) mit dem eines Bottom-Up Modells zu vereinen. Der Vorteil des Modells liegt in seinem Schlüsselbereich, der Risikoanalyse, der neuerdings speziell bei größeren Projekten zu einem der wichtigsten Faktoren zählt.

Die Grundprinzipien sind:

  • Der Schwerpunkt liegt auf der Risikobewertung und der Minimierung eines Projektrisikos, indem ein Projekt in viele kleine Segmente geteilt und eine leichtere Veränderung des Entwicklungsprozesses ermöglicht wird.
  • Jeder Zyklus umfasst die gleiche Anzahl an Schritten für jeden Teil des fertigen Produkts und für jede Ausarbeitungsebene.
  • Jedes Durchlaufen der Spirale erfolgt durch die vier Quadranten:
  1. Bestimmung der Ziele, Alternativen und Einschränkungen
  2. Bewertung von Alternativen, Erkennung von Risiken
  3. Entwicklung und Überprüfung der Ergebnisse aus der Iteration
  4. Planung der nächsten Iteration
  • Jeder Zyklus muss mit einer Identifikation der Stakeholder und ihren „Win-Bedingungen“ begonnen sowie mit Überprüfung und Engagement beendet werden.

Planloses Entwickeln?

software-entwicklung-planloses-entwickeln

„Code & Bugfix“, also einfach drauflos programmieren und Fehler mit kurzfristigen Lösungen beseitigen ist ein Anti-Muster. Die Entwicklung erfolgt nicht durch eine bewusste Strategie oder Methodik. Es ist oftmals das Ergebnis des Zeitplans, wobei von vornherein falsch geplant wurde und somit Druck auf Projektleitung und somit das Entwicklungsteam erfolgt. Irgendwann wurde ein Fehler durch zu spätes Testen festgestellt und kann nicht mehr vernünftig beseitigt werden, ehe das Projekt ausgeliefert werden kann. Dieses Muster vermeiden wir durch ausreichende und vernünftige Planung.

Fazit

Um einen individuell auf ihr Projekt abgestimmten Softwareentwicklungs-Prozess auszuwählen zögern Sie nicht, uns zu kontaktieren. Wir beraten Sie gerne bezüglich Vor- und Nachteilen.