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, Groovy, Objective-C, Ruby, Scala and Swift
  • We know uncommon languages such as Haskell and Rust

Web technologies

  • Frameworks such as Angular, React and Vue.js, Flux/Redux, Ember
  • Java-frontend technologies such as Spring MVC, JSF and JSP, JavaFX, SWT, Swing and Vaadin
  • ASP.NET and Node.js
  • Grails on Groovy, Rails on Ruby, Python with Flask and PHP with Symfony
  • CSS with Less and Sass, PostCSS and CSS-in-JS

Frameworks

  • O/R-mapping with Hibernate/JPA, Doctrine and Entity Framework
  • Inversion of Control with Spring, CDI, Simple Injector and Unity
  • Application development with Spring Boot, .NET Core, Micronaut and Quarkus
  • Enterprise integration with Apache Camel and ESBs, TIBCO
  • Messaging with Kafka, ActiveMQ and RabbitMQ
  • Stream programming with Apache Flink and Spark
  • Rule engines with Drools
  • Reactive applications with Akka, Spring and Reactive Streams
  • Component models with OSGi and Java modules
  • 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 and OData
  • API management with OpenAPI and Apigee
  • Event-driven architectures, event sourcing and CQRS
  • Serverless architectures
  • Responsive web design, progressive web apps & user experience (UX)
  • Documentation with JGiven and arc42-templates
  • 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, Jest, 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, Azure, Google Cloud Platform, OpenShift 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