Blog & Articles

Blog Post

Test organization and naming

As our system grows, so will our test suites. For our production code, we have learned techniques to keep it maintainable. For example, we try to structure our logic into sub-aspects, put them in specific locations and give the units meaningful names. We want to achieve the same for our tests. One of the main goals is that a developer - or generally speaking, the person who has to maintain the test - knows where to find which test. We also want to understand as quickly as possible what the test is for and what might be the reason for a failing test.

Article

Accessibility-Mythen aufgeklärt

Wer sich mit der Barrierefreiheit bzw. Accessibility von Websites und mobilen Anwendungen beschäftigt, stößt früher oder später auf Mythen, die sich in diesem Bereich hartnäckig halten und eine weitere Verbreitung barrierefreier Designs erschweren. Wir greifen fünf dieser häufig verbreiteten Mythen auf und klären auf, warum sie nicht zutreffen.

Blog Post

What’s in a name: Legacy

Article

IT-Projekte: Kostenfaktor statt Wettbewerbsvorteil

Lange genug hat es geheißen, dass IT-Projekte einen Wettbewerbsvorteil versprechen. Schaut man der Realität ins Auge, wird ein IT-Projekt jedoch wie ein Kostenfaktor behandelt – nicht anders als Strom oder Miete. Dabei könnte es anders sein.

Blog Post

Test Strategy

In our previous posts, we focused on why and how we write tests. In most of our projects, there will be many of those tests. In the last post about tests granularity, we additionally stated that there usually will be different kinds of tests, on different levels of granularity. That leads to our next topic: which kinds of tests do we need and what is the ideal mix of them?

Article

Innovation on steroids - Teil 2

Mit DDD und ML Design Canvas Use Cases für Machine Learning identifizieren

Article

Stufe 3

14 Jahre nach Erscheinen von Scala 2.0 wagt die Sprache den nächsten großen Schritt. Wird Scala mit Version 3 so, wie es immer sein sollte? Ein Release Candidate steht schon in den Startlöchern und zeigt, wie sich die Scalable Language weiterentwickelt.

Blog Post

Decentralized Architecture: What’s Behind Blockchains?

Fueled by ever new highs in cryptocurrency prices, there is currently a lively debate about blockchains. Some praise the “self-sustaining” currencies as saviors in times of crisis, while others see their excessive power consumption as a climate killer.

Article

Smart Contracts programmieren in Ethereum

Gegenwart & Zukunft

Blog Post

What’s in a Name: Quality

We use the word quality colloquially for something “good” – but we usually leave open what exactly we mean by it. This article illustrates that we should be a little more precise in this regard.

Blog Post

Migrating the iSAQB® Mock Examination to AsciiDoc

The iSAQB(R) provides a mock-examination for the Foundation-Level certification. This post shows how we moved this exam from docx format to AsciiDoc, facilitating collaboration and enabling automated generation of the required multilingual document variants.

Article

Innovation on steroids - Teil 1

Mit Domain-driven Design, Event Storming und ML Design Canvas zu mehr Produktverständnis

Blog Post

Collaborative Learning with Mobshops

After a year with COVID-19 and plenty of online activities, I think we are tired with workshops that copy the offline world into an online setting. More interactive formats are needed. In this blog post, I briefly describe my learnings with a new format I’ve developed and piloted in practice: Mobshops.

Blog Post

The (new) Software Architecture Foundation curriculum

Want to learn Software Architecture? Look no further – the recently released iSAQB Foundation Curriculum covers all your needs!

Blog Post

Persistente fachliche Validierungen mit Rails

Teil 1 von 2: MVP

Blog Post

iSAQB Advanced Level examination anti-patterns

As the “crowning glory” of the iSAQB(R) Advanced Certification, you have to write an approximately 40-page-long paper (AKA architectural solution) to a given problem. During our 5+ years of experience in reviewing such papers, we found several anti-patterns. This blog post aims to help future CPSA-A aspirants to avoid these nasty glitches.

Blog Post

Evidenz aus Hirnstürmen

Evidenz aus Hirnstürmen? Und was haben Fische und Kartoffelknödel damit zu tun?

Blog Post

Just Add Code
(Part 2)

Using GitHub Catalyst for Progressive Enhancement with Web Components

Blog Post

Is Domain-driven Design overrated?

Domain-driven design (DDD) is a useful approach that provides excellent guidelines for modeling and building systems, but it is a means to an end, not an end in itself. While the concepts are valid, you lose a lot if you limit yourself to using them only: There actually is a life beyond DDD.

Article

What tracks do we leave behind with technology?

Bei INNOQ setzen wir uns immer mehr mit KI und Machine Learning auseinander, allerdings mit ihrem sinnvollen Einsatz bei unseren Kunden und Projekten. Beste Voraussetzungen also für einen spannenden Diskurs.

Blog Post

Just add Code (Part 1)

Using Hotwire Stimulus for Progressive Enhancement with Web Components

Blog Post

Kurzlebige Branches in Git

Während eines Kundenprojekts mussten fast durchgehend sehr umfangreiche Oberflächen mitsamt Backend implementiert werden, was zu Beginn in sehr großen Pull-Requests und Merge-Konflikten resultierte. Im Laufe der Zeit haben wir mehrere Branching-Strategien verwendet, um diese Herausforderungen in den Griff zu bekommen.

Blog Post

Turning a group of strangers into a team

A testimonial how five foreigners became a team via Remote Mob Programming in less than a day.

Blog Post

Defect Analysis using pandas

Using standard Data Science tools from Python to track bugfixing activities

Blog Post

Progressive Enhancement with Hotwire

A REST-based backend with a JavaScript monolith on top – that’s todays de-facto standard for web applications. With Hotwire you can build much more lightweight web applications, that both inherit the advantages of SPAs and avoid their disadvantages. In this blog post we’ll give an overview of Hotwire.