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