Agile Softwareentwicklung

Wir entwickeln seit 1996 individuelle und standardisierte Softwarelösungen für Unternehmen aus unterschiedlichen Branchen. Die vertrauensvolle und konstruktive Zusammenarbeit mit dem Kunden steht dabei für uns immer an erster Stelle.

Die Entwicklung eines komplexen Softwareprodukts benötigt einen geeigneten Rahmen: Ohne äußere Strukturen werden schnell falsche Wege eingeschlagen, Fehler bleiben unbemerkt, das Produkt wird „am Kunden vorbei“ entwickelt. Agile Softwareentwicklungsmethoden können helfen, diese Herausforderungen in den Griff zu bekommen und das Optimum für das Projekt herauszuholen. Im Zentrum steht dabei stets eine iterative Vorgehensweise, die flexible Reaktionen auf sich ändernde Anforderungen ermöglicht. Durch kurze Feedbackzyklen können Probleme häufig bereits im Keim erstickt werden.

Agile Vorgehensmodelle und die Nutzung von etablierten und neuen Rahmenwerken machen es uns möglich, die Anforderungen unserer Kunden zu erfüllen und dabei auch flexibel auf kurzfristige Anfragen und Änderungswünsche zu reagieren. Durch die Schaffung lauffähiger Produktinkremente in kurzen Zyklen können Kunden jederzeit den aktuellen Stand der Entwicklung testen und gegebenenfalls Anforderungen nachbessern.

Maßgeschneiderte Prozesse für unsere Kunden

Wir bei Knipp glauben an die Mächtigkeit agiler Softwareentwicklungsmethoden. Ebenso sind wir davon überzeugt, dass dogmatisches Handeln kreative Arbeit bremst und Prozesse schwerfällig macht.

Aus diesem Grund setzen wir nicht auf „die eine“ Softwareentwicklungsmethode, sondern überlegen für jedes Projekt aufs Neue, welche Vorgehensweise den jeweiligen Kundenanforderungen und dem jeweiligen Projektteam am besten gerecht wird. So kann sich vorhandenes Potenzial optimal entfalten – und so entsteht qualitativ hochwertige Software für zufriedene Kunden.

Pair Programming

Agil ist Teamsache

Ganz im Sinne agiler Prinzipien arbeiten bei Knipp hauptsächlich selbstorganisierte Entwicklerteams.

Die klassische Projektleiterrolle kann hierbei agilen Rollen wie Scrum Master und Product Owner weichen oder durch sie ergänzt werden. Technische Entscheidungen werden häufig nicht mehr von außen vorgegeben, sondern als Team gemeinsam herbeigeführt. Während einer Entwicklungsiteration ist das Team so weit wie möglich vor äußeren Einflüssen geschützt.

Zugegeben: diese Abweichungen von langjährigen Normen fühlen sich auch mal ungewohnt an. Aber letztlich setzen sie Energien frei und sorgen so für die Entstehung herausragender Produkte.

Entwickler-Team

Continuous Delivery

Durch kontinuierliche Integration und Auslieferung fertiger Softwarekomponenten erzielen wir eine hohe Codequalität und können den Kunden von Anfang an in die Entwicklung einbeziehen.

Softwareentwicklung im Team bringt viele Herausforderungen mit sich. Wenn mehrere Entwickler zeitgleich unterschiedliche Aspekte desselben Produkts bearbeiten, können Konflikte und Fehler durch moderne Entwicklungsmethoden auf ein Minimum reduziert werden – vollständig vermeiden lassen sie sich aber nie. Eine wichtige Aufgabe bei der Softwareentwicklung besteht daher in der frühzeitigen Erkennung und Behebung solcher Probleme.

Alle Entwicklerteams bei Knipp achten darauf, überschaubare Arbeitspakete zu schnüren und häufige Synchronisierungen von neu entwickelten Codefragmenten durchzuführen. Dies ermöglicht die Aufdeckung von Fehlern bereits in einem sehr frühen Stadium der Entwicklung. Durch den Einsatz von Source Code Management, Continuous Integration und Continuous Delivery können wir uns ganz auf die Softwareentwicklung konzentrieren, während Integration und Tests automatisiert stattfinden.

Qualität und Transparenz

Neben der Früherkennung von Fehlern bringt Continuous Delivery in Verbindung mit agilen Entwicklungsmethoden aber noch weitere Vorteile mit sich.

Da in kurzen Iterationen lauffähige Produktinkremente entwickelt werden, stellt Continuous Delivery immer ein lauffähiges Testsystem bereit, das in kurzen Abständen um neue Funktionalitäten erweitert wird. So können sowohl die interne Qualitätssicherung als auch externe Kunden das Gesamtprodukt jederzeit testen und Feedback geben. Die ständige Sichtbarkeit des Projektstatus sorgt nicht zuletzt für eine hohe Transparenz innerhalb des Unternehmens.

Sorgfalt und Sicherheit

So hilfreich Prinzipien wie Continuous Delivery auf der einen Seite sind, so sorgfältig legen wir aber auf der anderen Seite auch die Grenzen der Automatisierung fest.

Wenn es zum Beispiel darum geht, Produktivsysteme einzurichten oder zu aktualisieren, setzen wir auf manuelle Prozesse, die von erfahrenen Softwareentwicklern und Systemadministratoren durchgeführt oder begleitet werden. Die konsequente Anwendung des Vier-Augen-Prinzips schützt uns hierbei vor Fehlern. So können wir unseren Kunden immer gleichbleibend hohe Qualität liefern.

»Bei der App-Entwicklung für mobile Endgeräte gilt es, eine ganze Reihe von Aspekten aufeinander abzustimmen. Neben den Vorteilen des Geräts – wie zum Beispiel Touch-Bedienung und Sensoren – müssen auch die Nachteile – wie geringerer Datendurchsatz und niedrigere Speicherkapazität – berücksichtigt werden.«

Elisei Rotaru, Softwareentwickler

Mobile Lösungen

Egal ob Handy, Tablet oder Desktop-Computer: Wir entwickeln Software für alle Geräte.

Mobile Endgeräte wie Handys und Tablets sind aus unserer heutigen Zeit nicht mehr wegzudenken. Zusammen mit den klassischen Desktop-Computern und ihrer Vielzahl gängiger Bildschirmauflösungen ergibt sich so eine hochgradig heterogene Systemlandschaft. Für die Softwareentwicklung ist das Chance und Herausforderung zugleich: Zielgruppen können individueller angesprochen werden, aber an das moderne Design von Softwareanwendungen werden heute auch besonders hohe Anforderungen gestellt.

Bei Knipp berücksichtigen wir bei der Planung und Durchführung von Softwareprojekten von Anfang an das gesamte Spektrum der Endgeräte unserer Kunden. Je nach Anwendungsfall erstellen wir optimierte Anwendungen für bestimmte Endgeräteklassen oder universelle Anwendungen, die gleichermaßen auf allen Geräten verwendet werden können.

Laptop

Moderne Designtechniken

Je nach Anforderungen setzen wir bei der Entwicklung auf moderne Designtechniken für Webanwendungen. Gemäß dem Mobile-First-Paradigma konzipieren sowohl unsere Webdesigner als auch unsere Softwareentwickler eine Anwendung zunächst für mobile Endgeräte. Die Erweiterung für den Einsatz auf Desktop-Systemen folgt in einem späteren Schritt.

Bei Anwendungen, die ihr Layout selbst der verwendeten Bildschirmauflösung anpassen, kommt responsives Webdesign zum Einsatz. Erweist sich eine striktere Trennung der Geräteklassen als sinnvoll, entwickeln wir Anwendungen nach dem Ansatz des adaptiven Webdesigns. Dies ermöglicht eine optimale Nutzung der Vorteile jeder einzelnen Geräteklasse und Bildschirmauflösung.