Unsere Ergebnisse sind integraler Bestandteil individueller Lösungen, die dem Kunden spürbaren Mehrwert bieten.
Ihr Softwareprojekt durch alle Phasen: Von der Planung bis zur Auslieferung.
Wir entwickeln maßgeschneiderte technische Lösungen für Ihre fachlichen Probleme. Von Drei-Schichten- oder Cloud-Architektur bis hin zu Microservices orientieren wir uns an Ihren Wünschen. Dabei unterstützen uns unsere Erfahrungen mit weit verbreiteten Technologien bei der Integration oder auch beim Aufbau der notwendigen Infrastruktur.
Wir evaluieren Ihre bereits bestehende oder geplante Systemarchitektur. Auf Basis der daraus gewonnenen Erkenntnisse und unserer reichhaltigen Erfahrung machen wir Optimierungs- und Modernisierungsvorschläge. Auf Ihren Wunsch hin unterstützen wir Sie auch gerne bei der Umsetzung der gemachten Vorschläge.
Agile cross-funktionale Entwicklerteams setzen Ihre Softwarelösung auf allen Ebenen um. Wir verfügen dabei über umfangreiche Erfahrungen sowohl in der Umsetzung der Präsentations- als auch der Domänenlogik sowie der Datenhaltung. Somit erhalten Sie eine Ihrer Bedürfnisse entsprechende Software aus einem Guss.
Wir automatisieren alle wiederkehrenden Aufgaben im Entwicklungsprozess weitestgehend. Hierzu zählen u.a. die Testdurchführung und das Deployment der Anwendung. Selbstverständlich berücksichtigen wir hierbei die Gegebenheiten und Anforderungen Ihres Unternehmens.
Wir setzen Ihre Anforderungen in agilen, cross-funktionalen Teams um. Dies garantiert, dass zu jedem Bereich die notwendige Expertise vorhanden ist. Durch diese Art der Teamzusammensetzung gewährleisten wir auch ein hohes Maß an Produktivität, was letztendlich dem Kunden zugutekommt.
Für ein frühzeitiges Feedback demonstrieren wir den aktuellen Stand der zu entwickelnden Anwendung nach jeder Iteration. Diesen Stand wollen wir den Endanwendern möglichst frühzeitig produktiv zur Verfügung stellen. Um die Qualität zu sichern, werden Tests erstellt und regelmäßig automatisiert ausgeführt.
Die Steuerung des Entwicklungsprozesses erfolgt entweder über die Atlassian Toolsuite, oder, falls gewünscht, über vom Kunden bereitgestellte Systeme. Zur Versionsverwaltung setzen wir vorzugsweise Git ein. Die Wahl des Build Tools wird hauptsächlich von den im Projekt eingesetzten Technologien bestimmt. Im Falle von Java empfehlen wir hierbei den Einsatz von Gradle.
Kein Projekt ist wie das andere. Daher hinterfragen wir den Entwicklungsprozess im Rahmen von regelmäßigen Retrospektiven zur Identifikation von Verbesserungspotentialen. Sollte die Notwendigkeit zu Verbesserungen an der Vorgehensweise oder an der technischen Umsetzung bestehen, führen wir die entsprechenden Anpassungen durch.
Jede Aktion, die mehr als einmal getan werden muss, kann automatisiert werden!
Jede Software muss gebaut und 'verpackt' werden. Continuous Integration Tools wie Atlassian Bamboo Server bieten eine perfekte Umgebung, in der Build Tools wie Gradle effizient gesteuert werden, um schnell und reproduzierbar Software-Artefakte zu bauen.
Manuelles Testen von Software ist zeitaufwendig und teuer. Vom Entwicklungsteam geschriebener Testcode lässt sich spielend leicht in einer bestehenden Build-Pipeline ausführen und verbessert somit die Qualität entscheidend.
Software wird zumeist nach immer dem gleichen Vorgehen installiert bzw. ausgeliefert. Automatisierungstools wie Ansible können alle diese Schritte zuverlässig übernehmen und reproduzierbar in beliebigen Umgebungen auf Knopfdruck ausführen. Dies erleichtert das Installieren und Ausliefern von Software erheblich.
Besucherspitzen und Softwarefehler bringen Systeme immer wieder ins Straucheln. Monitoring Tools wie New Relic können solche Situationen erkennen, bevor sie beim Kunden durchschlagen. Hier schließt sich der Kreis, denn die Delivery-Pipeline selbst bildet die Basis, um schnell Bugfixes auszuliefern oder die Last auf weitere Server adhoc zu verteilen.
Unabhängig von der Auswahl der konkreten Tools: Konsequent umgesetzt führt Automatisierung in Form einer Continous Delivery Pipeline zu messbarer Zeit- und Kostenersparnis. Das wird auch Ihre Kunden freuen, da jetzt mehr Zeit und Geld für neue Features zur Verfügung steht!
Kenne deine Anwendung!
Log-Dateien sind nicht nur während der Entwicklung wichtig, sondern auch im laufenden Betrieb. Kein Web-Tracking Tool kann so exakt arbeiten wie die Aufzeichnung serverseitiger Ereignisse. Diese Dateien werden in komplexeren Umgebungen idealerweise gesammelt, indiziert und zur Durchsuchung bzw. Reporting aufbereitet.
Der Blick von außen auf ein System schärft den Blick für Themen wie zum Beispiel Server-Antwortzeiten und die damit direkt zusammenhängende “Customer Experience”. Die Verletzung wichtiger Kennzahlen kann dabei Auslöser für Alarmmeldungen sein, die frühzeitige Maßnahmen erlauben.
Kritische Programmstellen können unerwartete Auswirkungen auf das Gesamtsystem haben. Um deren Performanz kontinuierlich zu überwachen, messen Benchmarks ständig mit, idealerweise als Teil der Continuous Delivery Pipeline. Diese Messungen können sowohl grob als Macrobenchmark als auch auf feingranularer Ebene als Microbenchmark erfolgen. Dabei kann die Veränderung dieser Messwerte als Qualitätskriterium im Entwicklungsprozess dienen.
Hat man einmal ein Performance-Problem identifiziert, ist der Grund nicht immer auf den ersten Blick ersichtlich. Nebenläufigkeit, Einstellungen der Laufzeitumgebung oder die Datenbank können die Ursache sein. Mit Profiling Tools kommen wir der Ursache auf die Spur und finden Lösungsalternativen. Dadurch lösen wir nicht nur das Performance-Problem, sondern erreichen auch eine kontinuierliche Steigerung der Anwendungsperformance.
Durch gezieltes Monitoring und Benchmarking lassen sich kritische Punkte identifizieren und so die Effizienz erheblich steigern. Denn viel hilft nicht immer viel, vor allem bei Serverinstanzen, die aufgrund von Performance-Problemen nur Geld verheizen und nicht mehr als heiße Luft erzeugen.
Platform-as-a-service Konzepte entstanden aus der Kombination vieler bewährter Tools, Frameworks und Best-Practices.
Cloud ist in manchen Köpfen gleichbedeutend mit: "Meine Daten liegen im Nirvana". Das muss nicht sein. Es gibt viele Wege, Cloud-Konzepte nutzbar zu machen. Die Entscheidung, ob im eigenen Rechenzentrum oder bei einem der großen Anbieter wie Microsoft, Google oder Amazon ist dabei zweitrangig. Wir zeigen die Alternativen, anbieterunabhängig!
Cloud-Native Applikationen folgen einem Regelwerk, das aus vielen Best-Practices besteht, die Sie alle schon einmal gehört haben. Zusammen und konsequent angewendet ermöglichen sie eine neue Sichtweise darauf, wie Applikationen heute betrieben werden sollten, um das Beste für das eigene Business herauszuholen. Auch Bestandsapplikationen lassen sich transformieren! Wir können Sie dabei unterstützen!
Wir setzen als Platform-as-a-service Lösung auf Cloud Foundry. Deshalb haben wir eine Taskforce ins Leben gerufen, die sich mit der Open Source Plattform aktiv auseinandersetzt und auf ihre Stärken baut.
Wir sind davon überzeugt, dass DevOps als Mindset und Cloud-Konzepte die Lücke schließen, über die in den letzten Jahren viele Unternehmen während ihrer agilen Transformation gestolpert sind. Wie sich diese Konzepte ideal ergänzen, erfahren Sie von uns!