Vergleich des V-Modells und der agilen Softwareentwicklungsmethodik

Martin Tesař

Technischer Direktor

Unsere Erfahrung in der SW-Entwicklungsmethodik

Bei der Softwareentwicklung haben wir Erfahrung mit verschiedenen Entwicklungsverfahren. In den letzten Jahren haben wir uns hauptsächlich auf zwei verschiedene Softwareentwicklungsprozesse konzentriert: einen auf dem V-Modell basierenden und einen auf Agile basierenden Prozess; für Agile haben wir sowohl mit Scrum- als auch mit Kanban-Modellen gearbeitet.

No items found.

Software-Entwicklung auf Basis des V-Modells

Prozesse, die auf dem V-Modell basieren, werden sehr häufig von größeren Unternehmen benötigt, die streng vorhersehbare und nachvollziehbare Pläne benötigen, die in klar definierte Arbeitsschritte unterteilt sind.

Prozesse auf der Grundlage des V-Modells:

Definition von Anforderungen

Unser Team von Embedded-Software-Ingenieuren sammelt die Anforderungen des Kunden, überprüft sie und klärt mögliche Spezifikationslücken.

Systementwurf

Beim Systementwurf entwickeln wir Ideen und überlegen, wie die Funktionalität auf Hardware- und Softwareressourcen verteilt werden soll. Folglich definieren wir Schnittstellen und Datenbeziehungen im Voraus.

Architektur Design

In dieser Phase analysieren und bewerten wir verschiedene Ansätze auf hohem Niveau, die zu der einfachsten und schnellsten Entwicklung und den geringsten Kosten führen. Wir teilen das Systemdesign in einzelne Module auf, die sich in ihrer Funktionalität unterscheiden.

Modul-Design

Ein Modul- oder Einheitsentwurf ist eine detaillierte interne Entwurfsdefinition auf einer niedrigen Ebene, die sich auf die Kompatibilität zwischen den Modulen konzentriert.

Codierung

Je nach Vereinbarung mit dem Kunden folgen wir entweder den Best-Practice-Richtlinien oder den Standardrichtlinien des Kunden. Code-Reviews und Code-Optimierung sind ebenfalls ein unvermeidlicher Teil dieser Phase.

Einheitliche Prüfung

In diesem Prozess werden Modul- oder Unit-Test-Skripte implementiert und durchgeführt. Sie erkennen den größten Teil der Fehler in einem frühen Stadium.

Integrationsprüfung

Beim Integrationstest werden die Koexistenz und die gegenseitige Kommunikation der Module geprüft.

Systemprüfung

Bei der Systemprüfung wird die Funktionalität des gesamten Systems und die Kommunikation zwischen dem System und externen Systemen überprüft. Auch die Kompatibilität von Hardware und Software wird in dieser Phase geprüft.

Abnahmetests

Das gesamte Softwareprodukt wird anhand der geschäftlichen Anforderungen in der präfinalen Benutzerumgebung getestet. Hier werden schließlich sowohl die Benutzerfreundlichkeit als auch die Systemleistung getestet.

No items found.

Software-Entwicklung auf Basis von Agile

Agile Softwareentwicklung ist ein evolutionsbasierter Ansatz, der sich in viele vertikale Integrationskampagnen aufteilt. Er unterstützt die kontinuierliche Verbesserung durch selbstorganisierende Teams, die eng mit dem Team des Kunden oder den Endbenutzern zusammenarbeiten.

Wir verwenden weitgehend eines der beiden Softwareentwicklungs-Frameworks:

  • Scrum - ein Rahmenwerk, das auf kurzen Sprints basiert (jeder wird in der Regel in zwei Wochen durchgeführt) oder
  • Kanban - ein Rahmenwerk mit kontinuierlichem Arbeitsablauf. Im ersten Schritt wird das Backlog mit den Epen/Stories/Problemen/Aufgaben gefüllt, und alle Elemente werden geschätzt.

Typische Scrum-Ereignisse in unserem Team sind:

Sprint

Ein Zeitfenster von in der Regel zwei Wochen, in dem das Entwicklerteam ein brauchbares oder freizugebendes Produkt (oder dessen unterscheidbaren Teil) fertigstellt.

Sprint-Plan

Eine Aktivität, die vom gesamten Team durchgeführt wird und einen machbaren Teil der Arbeit für den Sprint abdeckt.

Tägliches Scrum

Ein tägliches Stand-up-Meeting, um dem Team die Möglichkeit zu geben, den Stand der Dinge zu besprechen, wenn jemand nicht weiterkommt, und welche Probleme das Team gefunden hat.

Sprint Rückblick

Ein Treffen am Ende des Sprints, bei dem die Teammitglieder ihre jüngsten Erfahrungen mit dem Projekt austauschen, die noch nicht abgeschlossene Arbeit überprüfen und mit den Stakeholdern sprechen.

Rückblick auf den Sprint

Eine Gelegenheit zur Selbstverbesserung des Teams.

Andere interessante Themen

Eine andere Art, von zu Hause aus zu arbeiten

PCB-Designer aus Consilia arbeitet von seinem Gartenhaus aus.

Der Weg von seinem Elternhaus dauert nur etwa 10 Sekunden, aber er trennt symbolisch seine beiden Welten. „Es ist ein echter Job, nur ohne das tägliche Pendeln, das mich etwa drei Stunden pro Tag kosten würde.“

Was bestimmt ein Leiterplattendesign für die Automobilindustrie? Zuerst die Robustheit und dann der Preis.

Was macht die Arbeit als leitender Leiterplattendesigner bei weltweit führenden Automobilherstellern zu einer Herausforderung?

Wir fragten Petr Horák, den Leiterplattendesigner der Firma Consilia. „Die Automobilindustrie ist sehr speziell, da alle Produkte mindestens fünfzehn oder sogar zwanzig Jahre halten müssen."

Ich brauche ständig neue Impulse. Es würde mir keinen Spaß machen, die gleichen Boards immer und immer wieder zu machen.

Petr Horák mag es nicht, glatte Wege zu gehen.

„Ich mag es, in Projekten zu denken und mich auf eine bestimmte Sache zu konzentrieren. Aber gleichzeitig muss ich nach einer gewissen Zeit einen anderen Gang einlegen und mich auf ein ganz anderes Segment konzentrieren. Deshalb arbeite ich sehr gerne an verschiedenen Projekttypen“, sagt der Leiterplattendesigner, der seit sechs Jahren für die Consilia tätig ist.

TETRA-Basisstation, die bis an die Grenzen der physikalischen Möglichkeiten geht

Die TETRA-Basisstation am Boden, an deren Entwicklung wir zwischen 2012 und 2017 gearbeitet haben, steht dank unserer Oszillatoren in Verbindung mit einer hervorragenden energetischen Effizienz immer noch an der Spitze der Produkte, die mit aktuellen Technologien hergestellt werden können.