Wie ein guter Bildhauer oder Tischler wählen wir unsere Werkzeuge für die Softwareentwicklung sorgfältig und mit Bedacht aus. Mit Tools wie Balsamiq Mockups und Draw.io erstellen wir anschauliche Wireframes, die einen Gesamteindruck der Features, Funktionen und grundlegenden Navigationsstrukturen der Software vermitteln.
Wir programmieren bevorzugt in integrierten Entwicklungsumgebungen (IDE) für verschiedene Programmiersprachen, wie PhpStorm für PHP, Eclipse für Java und Visual Studio für .NET. Design, Dokumentation, Überwachung, Entwicklung, Build, Analyse, Bereitstellung und Instandhaltung können allesamt in einer IDE erfolgen.
Der Grundpfeiler jeder erfolgreichen Softwareentwicklung ist ein gutes Projektmanagement. Wir nutzen JIRA ,um Arbeitsabläufe zu planen, zu verwalten und nachzuverfolgen und Sie über den Fortschritt Ihres Projekts zu informieren. Wir schließen uns hier ganz dem JIRA-Motto an: “Die besten Teams liefern ihre Software frühzeitig und in kurzen Zeitabständen aus“. Für die Teamkommunikation ist die Chat-, Kollaborations- und Produktivitätssoftware Slack unsere erste Wahl.
Für die Speicherung des Codes und die Versionskontrolle nutzen wir den Branchenstandard Git VCS und speichern den Quellcode in privaten, sicheren Github und GitLab-Repositories. Um unabhängig von Größe, Komplexität und Umfang eines Projekts eine reibungslose Softwarebereitstellung sicherstellen zu können, nutzen wir Continuous Integration and Delivery-Tools wie Jenkins und Travis CI.
Das Einrichten der Entwicklungsumgebung für ein größeres Softwareprojekt kann mühsam und zeitaufwendig sein. Zum Verwalten der Entwicklungsumgebungen für alle involvierten technischen Fachkräfte nutzen wir Docker. Auch VirtualBox ist ein sehr nützliches Tool, zumal nicht alle Mitglieder unserer technischen Teams UNIX-basierte Betriebssysteme nutzen.
Im Rahmen der von uns eingesetzten agilen Entwicklungsmethoden verwenden wir DevOps-Tools und -Verfahren, die eine kontinuierliche Softwarebereitstellung, kürzere Markteinführungszeiten und das Entwickeln leistungsfähigerer und stabilerer Software ermöglichen. Außerdem arbeiten wir mit etablierten Hosting-Partnern wie AWS und DigitalOcean zusammen, um unseren Kunden vollständig maßgeschneiderte, leicht skalierbare Lösungen zu bieten.
Kubernetes kommt kombiniert mit Docker zum Einsatz, um Ökosysteme schnell bereitzustellen und zu skalieren.
Wenn in einem Softwareprojekt eine große Zahl an automatisierten Aufgaben (Cronjobs) ausgeführt werden muss, vertrauen wir diese Aufgabe Rundeck an, einem Planungssystem, das auch von weniger technisch versierten Personen problemlos genutzt und konfiguriert werden kann.
Für das Monitoring setzen wir je nach Überwachungsanforderungen und verfügbarem Instandhaltungsbudget NewRelic, Tideways oder Zabbix ein.
Wenn das Speichern von Anwendungsprotokollen in Dateien nicht infrage kommt, richten wir einen Graylog oder ELK stack ein, um allen Output der Systeme zu erfassen und auch in großen Mengen an Protokolldaten immer das Gesuchte finden und analysieren zu können.