Agile Software Development

This is a summary of the services we provide within the software development branch.

Implementation & Maintenance of Large Software Systems

Programming languages

  • We work mainly with Enterprise Java, as well as C++, C#, JavaScript / TypeScript, Kotlin, PHP and Python
  • We also work, but less often, with C, Go, Perl, Groovy, Ruby and Scala
  • We know uncommon languages such as Haskell and Rust

Web technologies

  • Frameworks such as React, AngularJS, Flux/Redux, Backbone.js, also Ember.js, Ext.js and Vue.js, on the server side node.js
  • Java-frontend technologies such as Spring MVC, JSF and JSP, JavaFX, GWT, SWT and Swing
  • .NET Core, ASP.NET
  • Grails on Groovy, Rails on Ruby, Python with Flask and PHP with Symfony
  • CSS with Less, Sass

Frameworks

  • O/R-mapping with Hibernate/JPA and Doctrine
  • Inversion of Control with Spring, Google Guice, CDI
  • Application development with Spring Boot
  • Enterprise integration with Apache Camel and ESBs, TIBCO
  • Messaging with ActiveMQ and RabbitMQ
  • Stream programming with Apache Flink and Spark
  • Rule engines with Drools
  • Reactive applications with Akka
  • Component models with OSGi
  • GUIs with Qt

Tools

  • Search engines & tools such as ElasticSearch/Logstash/Kibana and Solr/Lucene/Hibernate search
  • Shell scripting with Bash, Zsh, Powershell
  • Compiler construction with Yacc/Bison/JavaCC/ANTLR and f/lex
  • Complex e-commerce solutions based on the hybris Commerce Suite and the hybris Commerce Accelerator

Architecture & Design

  • Domain-driven Design (DDD), object-oriented analysis and design (OOAD)
  • Distributed systems with REST & SOAP, GraphQL
  • Event-driven architectures with Kafka and Kinesis
  • Responsive Web Design & User Experience (UX)
  • Documentation with JGiven, arc42-template, Swagger/OpenAPI
  • Architecture rules with ArchUnit

Automated Test & Quality Assurance

  • Test-driven development and test automation with Continuous Integration systems like Jenkins and Bamboo
  • Test tools like JUnit/TestNG/FitNesse, Hamcrest/Mockito, Concordion, Behat, JGiven, AssertJ & FEST, Selenium/Geb, Mocha and Jasmine
  • Quality management with SonarQube PMD, FindBugs/SpotBugs, CheckStyle and *Lint
  • Code reviews and software verification
  • Performance testing & tuning, analysis of concurrency and memory leak issues

Operating & Development Environments

  • Java application servers like Oracle WebLogic, Tomcat, Jetty, WebSphere and Wildfly
  • Portal servers like Liferay
  • Operating systems like Linux, Unix, macOS and Windows
  • Build systems with Gradle, Maven, Ant, Ivy, npm, Grunt, Gulp, Phing, Composer, yarn, CMake, NAnt and NuGet
  • Version control with Git (GitHub/GitLab/Bitbucket), SVN, ClearCase, Mercurial, TFS, Jazz
  • Artifact management with Nexus/Artifactory
  • Wikis and bug trackers like Atlassian Confluence and Jira, Jetbrains YouTrack, Trac, MediaWiki
  • IDEs like Eclipse, IntelliJ, PHPStorm and CLion
  • Development for mobile devices on iOS and Android
  • Cloud- and SaaS-platforms such as AWS and Azure, OpenShift, Google App Engine und AppExchange

Services, Processes & Requirements

  • Best practices software development with Scrum, Kanban, scaled Scrum (SAFe, LeSS) and techniques out of Extreme Programming / XP
  • Language- and tool-agnostic implementation of business software
  • Restructuring of ongoing third-party projects as well as troubleshooting and refactoring of legacy code
  • Agile requirements engineering, user stories/story mapping and event storming
  • Firefighting
  • Trainings, workshops and know-how transfer