Vergleich des V-Modells und der agilen Softwareentwicklungsmethodik
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.
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.
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
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."
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.“
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.
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.