Bei PIT Solutions folgen wir der Agile Software Development Methodik, die sich auf eine Gruppe von Softwareentwicklungsmethoden bezieht, die auf ähnlichen Prinzipien basieren. Nach Wikipedia fördern agile Methoden im Allgemeinen:
Es gibt viele agile Methoden, von denen wir finden, dass Extreme Programming und Scrum die beiden Methoden sind, die für uns am besten geeignet sind, Ihnen den maximalen Nutzen zu bieten. Jede dieser Methoden allein hat inhärente Nachteile. Deshalb haben wir uns für eine hybride Methode entschieden, indem wir die Vorteile beider Verfahren miteinander kombiniert haben.
Unter den verschiedenen agilen Praktiken haben wir die testgetriebene Entwicklung und kontinuierliche Integration eingeführt. Auch hier schränkt eine dieser Praktiken allein die Flexibilität in einigen Situationen der Lösungsentwicklung ein. Wir haben uns also für die Zubereitung entschieden, die für unsere Konkurrenten nur schwer zu schlagen ist.
Scrum ist die andere agile Softwareentwicklungsmethode, die wir in Kombination mit Extreme Programming für unsere hybride agile Softwareentwicklungsmethode verwenden. Es handelt sich um einen iterativen inkrementellen Prozess mit klaren Richtlinien, einzuhaltenden Praktiken und vordefinierten Rollen. Die Hauptrollen in Scrum sind:
Die Methode hat inkrementelle Abschlussperioden, die Sprints genannt werden und deren Periodizität vom Team festgelegt wird. Jeder Sprint erzeugt einen Zuwachs an nutzbarer Software. Der Product Owner teilt dem Team während der Sprint-Planungsbesprechung mit, welche Artikel sich im Product Backlog befinden. Das Team analysiert und entscheidet, wie viel von diesem Rückstand für den nächsten Sprint gebunden werden kann. Sobald der Sprint abgeschlossen ist, erhalten wir eine brauchbare Erweiterung der Software, die dem Kunden vorgeführt wird.
Wir finden Scrum aufgrund seines empirischen Ansatzes eine vorteilhafte Methode für Sie - in der Annahme, dass die gesamte Lösung, die Sie benötigen, nicht zu Beginn des Projekts selbst vollständig und genau definiert werden kann. Stattdessen liegt der Fokus auf der Maximierung der Fähigkeit unseres Teams, schnell zu liefern und schnell auf Ihre sich ändernden Anforderungen zu reagieren. Wenn das Projekt abgeschlossen ist, bekommen Sie jetzt genau das, was Sie wollten, anstatt das, was Sie zu Beginn des Projekts dachten.
Extreme Programming (oder XP) ist eine agile Methode, die darauf abzielt, die Kosten von Änderungen, die ein unvermeidlicher Aspekt aller Softwareprojekte sind, zu reduzieren. Ihre Anforderungen werden sich ein wenig ändern, auch wenn wir gerade dabei sind, die Lösung für Sie zu entwickeln. Extreme Programming schreibt eine Reihe von Praktiken vor, die eingehalten werden müssen, um laufende Veränderungen reibungslos zu bewältigen und zu integrieren, ohne den Rhythmus des Entwicklungsprozesses zu stören. Indem wir die guten Aspekte von Extreme Programming übernehmen, betonen wir, dass wir verstehen, dass Änderungen in Ihren Anforderungen in jeder Phase der Lösungsentwicklung sehr wichtig sind, um Ihre Geschäftsziele zu erreichen. Diese Methode stellt sicher, dass Ihre Änderungen mit dem geringstmöglichen Kostenaufwand berücksichtigt werden.
Test Driven Development, auch bekannt als TDD, verwendet kurze Entwicklungsiterationen, die auf vorgefertigten Testfällen basieren. Die Testfälle definieren gewünschte Verbesserungen oder neue Funktionen. Jede Iteration führt zu einem Code, der benötigt wird, um die Iterationstests zu bestehen. Die Vorbereitung von Tests vor der Codierung unterstützt schnelle Feedback-Änderungen.
Ein typischer Entwicklungszyklus ist:
Bessere Software kann mit TDD schneller erstellt werden. Der Grund ist die Fähigkeit, kleine Schritte zu machen und auch sicherzustellen, dass der gesamte geschriebene Code durch einen Test abgedeckt wird. Eine Vielzahl von Tests hilft, die Anzahl der Fehler im Code zu begrenzen und diese frühzeitig im Entwicklungszyklus zu erkennen. Damit entfällt das langwierige Debugging zu einem späteren Zeitpunkt.
Continuous Integration, kurz CI, ist eine Softwareentwicklungspraxis, in der der Schwerpunkt auf häufigen Integrationen liegt - in der Regel integriert jede Person im Team mindestens täglich, was zu mehreren Integrationen pro Tag führt. Dies steht im Gegensatz zu der traditionellen Methode der Integration, die nur in den Endphasen eines Projekts stattfindet.
Die Überprüfung jeder Integration erfolgt durch einen automatisierten Build (einschliesslich Test), um Integrationsfehler so schnell wie möglich zu erkennen und zu beheben. Wir nutzen die Vorteile von CI, indem wir die Builds schnell halten, sie automatisieren, ein Code-Repository pflegen, etc.
Kontinuierliche Integration hat viele Vorteile:
Zurück zu Softwareentwicklungsprozess
Zurück zu Global Delivery