Software Engineer. For updates follow https://twitter.com/ronnieschaniel

There are still some software companies that release their software to the users only every month.

Image for post
Image for post

In this article we construct a model for business value realisation and demonstrate based on it what such companies actually loose. We focus on this business value realisation and ignore for a moment other disadvantages of not releasing frequently. These would include: larger and therefore more riskier deployments, possible overload with productive defects, or later feedback.

Context: we assume that we’re having a team of 8 developers who are working on User Stories. These User Stories are done within 1 day and could potentially…


When we are developing software, most of the time we are not typing. Reading and thinking take the largest share. Nevertheless it makes sense to optimise the typing part. Because we want quick feedback if we have an idea. This is especially true in the red-green-refactor cycle of TDD.

So, lets have a look at what is offered by an IDE that could help us. Here we use IntelliJ (and Java) but every proper IDE should provide similar functionalities.

First, we have a look at creating tests, because this is the starting point in TDD. ⌘ + n (Mac) or…


Image for post
Image for post

The FizzBuzz task: Write a program that prints the numbers from 1 to 100. But for multiples of 3 print “Fizz” instead of the number and for the multiples of 5 print “Buzz“. For numbers which are multiples of both 3 and 5 print “FizzBuzz”.

Let’s solve this test-driven in Java using JUnit.

I don’t really want to test the console output (print). So, for simplicity I narrow down the problem. It should not print the numbers, “Fizz”, “Buzz” and “FizzBuzz”, but return the mapped output String for a single input number, e.g. “7” for 7.

Remember TDD, red/green/refactor. …


The article Getting Started with Cypress e2e Testing in Angular describes how to setup Cypress for an Angular project. In this post we go a step further and cover how to use Cypress for automated e2e testing in your CI/CD workflow.
Jenkins is used as automation server and I assume that you already have an instance up and running. Furthermore your application should be pushed to a VCS repository, e.g. GitHub.

First, we create the needed configuration in Jenkins, by creating a new pipeline:

Image for post
Image for post

The source code of our application should be coming from GitHub. So, we need to setup…


Testers who are manually going through web apps for testing are difficult to hire. Hence, automated e2e tests are more important than ever. Unfortunately they are usually time consuming in creation and execution.
We have a look at how cypress.io can be used for front-end testing in an Angular app to see how it compares to Selenium, Protractor and co. The Cypress website tells us it’s “A Test runner built for humans”. Let’s see if this claim is true.

We go through the process of integrating Cypress into an Angular project followed by writing and running a test. The example…


Image for post
Image for post

We have a look at the 23 Gang of Four design patterns for object oriented software design. While a lot of blog posts describe them using examples around concepts like Animal, Car or Pizza, we explain each of them by a practical example. It is certainly not wrong to learn design patterns with the help of real world analogies and then be able to apply them to software design problems. But it might also help others to see how they are applied in specific software design problems.

Creational Patterns

These type of pattern support the creation of objects. Because in certain situations…

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store