Methodology

Methodology

Hexagonal Architecture: three principles and an implementation example

Documented in 2005 by Alistair Cockburn, Hexagonal Architecture is a software architecture that has many advantages and has seen renewed interest since 2015. The original intent of Hexagonal Architecture is: Allow an application to equally be driven by users, programs, automated test or batch scripts, and to be developed and tested in isolation from its eventual run-time devices and databases. To explore the benefits of piloting an application by automated tests, or developing and testing in isolation from the database, we recommend that you read…

Read more
Methodology

The Test Pyramid in Practice 5/5

In prior articles (1, 2, 3, 4), we’ve implemented isolated tests which offer us precise and reliable feedback - and are more or less fast depending on whether we’re running unit tests or component tests which need to load a Spring context. But these tests have their limits, precisely because they’re isolated. In this article we’ll deal with tests that are even higher in the pyramid: integration and end-to-end tests. This article originally appeared on our French Language Blog on 29/06/2018.

Read more
Methodology

The Test Pyramid in Practice 4/5

In the last article we described component tests: tests which are half unit and half integration test, that allow us to validate both integration within our application (via dependency injection) and also with peripheral components. All of which while remaining sufficiently isolated, to limit friction during execution. Because this isolation works perfectly, our API client tests suffer from a major flaw: if and when the supplier changes the service signature we learn about it much too late. This is what contract tests attempt to avoid,…

Read more
Methodology

The Test Pyramid In Practice 2/5

In the previous article, we discussed the theory of the Testing Pyramid -- a testing strategy to ensure our application’s quality at a reasonable cost. Notable, we discussed the notion of feedback, and the importance of having fast, accurate, and reliable feedback. Unit tests typically address these criteria for a modest investment. Through this article we’ll develop a concrete example to explore the use of automated unit tests and try to answer some of our readers’ recurring questions. This article originally appeared on our French…

Read more
Methodology

The Test Pyramid In Practice (1/5)

 If you read this blog or our publications, you know how much testing is tied to software quality and, if I may say so, to software success. I insist on this point because all too often our customers treat tests as the fifth wheel when it comes to development. You know the consequences: an astronomical number of design anomalies, pernicious bugs in production and, worse still, software which ossifies little by little. This article is the first in a series, and will mostly address theory.…

Read more
Methodology

Software Craftsmanship and OPS scripting: a love story

Alright, story time fellas. TL;DR; We’re working with Terraform, layering and workspaces. This makes the standard `terraform workspace select x` pretty cumbersome and dangerous. We wrote a Ruby wrapper using Test-Driven Development. It allows us to have a tested, maintainable and efficient solution to the aforementioned issue. You can find the actual project here: https://github.com/sebiwi/terraform-wrapper If you keep reading, we’re going to talk about scripting, Test-Driven Development, Terraform and Ruby.

Read more
Methodology

Accelerate Innovations by Blending the Best Practices of Three Models of Innovation Diffusion (Gartner, G.A. Moore , C. Christensen)

Introduction When building innovative products we draw upon several models to help us follow the cycles and gauge products’ maturity levels (technological, market and use). We noticed that 3 complementary, superimposable models converge and together provide a coherence that makes the most of the various recommendations and best practices of each innovation strategy. The 3 diffusion of innovation models we’ve identified are: The Gartner model and “hype cycle”  Geoffrey A. Moore’s Diffusion of Innovation model  The “Innovating over the Horizon” model, popularized by Clayton Christensen

Read more
Methodology

The Wizard: Scenarios

This is another episode of the “The Wizard” series. If you haven’t read the previous episodes, you can find them here and here. You just don’t know how to do it. You’ve been thinking about it for a while too. It’s an important issue. The crafting of the spell is the most important part. The journey is usually more important than the destination itself. But you don’t feel like you are doing it right.

Read more