Agile Softwareentwicklung

Hier geben wir einen Überblick über die von uns angebotenen Dienstleistungen im Bereich Softwareentwicklung.

Implementierung & Wartung von großen Softwaresystemen

Programmiersprachen

  • Wir arbeiten hauptsächlich mit Enterprise-Java sowie C++, C#, JavaScript / TypeScript, Kotlin, PHP und Python

  • Wir arbeiten auch, aber seltener, mit C, Go, Groovy, Objective-C, Ruby, Rust, Scala und Swift

  • Ungewöhnliche Sprachen wie zum Beispiel Haskell kennen wir aus Freude daran

Webtechnologien

  • Frameworks wie Angular, React und Vue.js, Flux/Redux, Ember

  • Java-Frontendtechnologien wie Spring MVC, JSF und JSP, JavaFX, SWT, Swing und Vaadin

  • ASP.NET und Node.js

  • Grails auf Groovy, Rails auf Ruby, Python mit Flask und PHP mit Symfony

  • CSS mit Less und Sass, PostCSS und CSS-in-JS

Frameworks

  • O/R-Mapping mit Hibernate/JPA, Doctrine und Entity Framework

  • Inversion-of-Control mit Spring, CDI, Simple Injector und Unity

  • Anwendungsentwicklung mit Spring Boot, .NET Core, Micronaut and Quarkus

  • Enterprise Integration mit Apache Camel und ESBs, TIBCO

  • Messaging mit Kafka, ActiveMQ und RabbitMQ

  • Streamprogrammierung mit Apache Flink und Spark

  • Rule Engines mit Drools

  • Reactive Applications mit Akka, Spring und Reactive Streams

  • Komponentenmodelle mit OSGi und Java Modules

  • GUIs mit Qt

Werkzeuge

  • Search-Engines & Tools wie ElasticSearch/Logstash/Kibana und Solr/Lucene/Hibernate Search

  • Shellskripting mit Bash, Zsh, Powershell

  • Compilerbau mit Yacc/Bison/JavaCC/ANTLR and f/lex

  • Komplexe E-Commerce Lösungen auf Basis der hybris Commerce Suite und des hybris Commerce Accelerators

Architektur & Design

  • Domain Driven Design (DDD), objektorientierte Analyse und Design (OOAD)

  • Verteilte Systeme mit REST & SOAP, GraphQL und OData

  • API-Management mit OpenAPI und Apigee

  • Event-getriebene Architekturen, Event Sourcing und CQRS

  • Serverlose Architekturen

  • Responsive Web-Design, Progessive Web Apps & User Experience (UX)

  • Dokumentation mit JGiven und arc42-Templates

  • Architekturregeln mit ArchUnit

Automatisiertes Testen & Qualitätssicherung

  • Testgetriebene Entwicklung und Testautomatisierung mit Continuous Integration Systemen wie Jenkins und Bamboo

  • Test-Tools: JUnit/TestNG/FitNesse, Hamcrest/Mockito, Concordion, Behat, JGiven, AssertJ & FEST, Selenium/Geb, Jest, Mocha und Jasmine, Spock und Behave

  • Qualitätsmanagement mit SonarQube™, PMD, FindBugs/SpotBugs, CheckStyle, *Lint

  • Code-Reviews und Softwareverifikation

  • Performancetesting & -tuning, Analyse von Nebenläufigkeit- und Speicherleck-Problemen

Betriebs- & Entwicklungsumgebungen

  • Java-Applikationsserver: WebLogic, Tomcat, Jetty, WebSphere und Wildfly

  • Portalserver wie Liferay

  • Betriebssysteme wie Linux, Unix, macOS, Windows

  • Buildsysteme wie Gradle, Maven, Ant, Ivy, npm, Gulp, Phing, Composer, yarn, CMake, NAnt und NuGet

  • Versionsverwaltung mit Git (GitHub/GitLab/Bitbucket), SVN, ClearCase, Mercurial, TFS, Jazz

  • Artefaktverwaltung mit Nexus/Artifactory

  • Wikis und Bugtracker wie Atlassian Confluence und Jira, Jetbrains YouTrack, Trac, MediaWiki

  • IDEs wie Eclipse, IntelliJ, PHPStorm und CLion

  • Entwicklung für mobile Endgeräte auf iOS und Android

  • Cloud- und SaaS-Plattformen wie AWS und Azure, Google Cloud Platform, OpenShift und AppExchange

Leistungen, Prozesse & Anforderungen

  • Best Practices-Softwareentwicklung mit Scrum und Kanban, skaliertem Scrum (SAFe, LeSS), sowie Techniken aus Extreme Programming / XP

  • Unterstützung als Scrum Master und Product Owner

  • Sprach- und werkzeugunabhängige Implementierung von Geschäftsprozessen

  • Restrukturierung von laufenden Drittprojekten sowie Fehlersuche und Refactoring von Legacy Code

  • Agiles Requirements Engineering, User Stories/Story Mapping und Event Storming

  • Feuerwehreinsätze

  • Schulungen, Workshops und Know-how-Transfer

IT-Sanierung

  • Bestandsaufnahme, Due-Diligence-Prüfung

  • Roadmap zur Modernisierung: Auf die Kunden zugeschnittene Modernisierung mit verschiedenen Technologien in unterschiedlichen Branchen

  • Beratung zu Modernisierungsstrategien, z.B. nach dem Strangler Pattern oder mit In-Place-Modernisierungen

  • Unterstützung in der Priorisierung existierender Business Features

  • Herstellen von Cloud-Readiness

  • Intelligente Konzepte für den Umbau: Temporäre Adapter, die die Migration für Client-Systeme verstecken

  • Paradigmenwechsel und Einführung von Best Practices in der Softwareentwicklung und im Anforderungsmanagement

  • Qualitätssicherung und Risikominimierung durch Erhöhung des Automatisierungsgrades