my blog. for you.

Let’s talk digital.

I’m an independent IT consultant and entrepreneur in the Internet and software business. I’m interested in design, enterprise applications, web apps and SaaS products. I design and develop business solutions and applications. I help companies in terms of software quality and knowledge transfer, e.g. with Angular and Spring Boot.

Jeremy Keith @ beyond tellerrand 2017 – Evaluating Technology

Jeremy Keith @ beyond tellerrand 2017: Evaluating Technology – Jeremy Keith – btconfDUS2017 from beyond tellerrand on Vimeo. Read more

Designing Delivery and Moving Beyond Products

I'm a frequent attendee at Lean DUS, a regular event organised by the fantastic folks of sipgate. At LEAN DUS #23 earlier this year Jeff Sussna gave a talk on moving beyond products and unifying design and operations. Jeff runs a consulting company called Sussna Associates, which aims to help businesses to establish a comprehensive, continuous service delivery process. He also condensed his expertise in a book called Designing Delivery, which outlines a continuous value creation process involving design thinking, agile software development ... Read more

Using Swagger to Generate Client SDKs for REST APIs

These days Swagger is a popular, easy-to-use tool for (semi-)automatically documenting REST APIs on-the-fly. For example, in order to document a REST API created with Spring Boot and Jersey literally all you have to do is add these two entries to your Maven pom.xml: [xml] <dependency> <groupid>io.springfox</groupid> <artifactid>springfox-swagger2</artifactid> <version>2.6.1</version> </dependency> <dependency> <groupid>io.springfox</groupid> <artifactid>springfox-swagger-ui</artifactid> <version>2.6.1</version> </dependency> [/xml] You'll then get a ready-made documentation for all your REST API endpoints. An example of how this looks like can be seen here. While this already is very useful in that it helps with properly documenting your software, especially ... Read more

Testing REST Services with REST Assured

RESTful service testing can be unwieldy and difficult to get started with. Providing a REST API implies using a variety of technologies and techniques such as HTTP, JSON, authentication, various payload transfer mechanisms and content types. This is where a tool that abstracts over these technical details and facilitates their application comes in handy. REST Assured is a high-level DSL for testing REST APIs. It draws upon behaviour-driven development (BDD) and hence makes for readable test descriptions. A typical acceptance test with ... Read more

What Causes Over-engineering and How Can You Prevent It?

Last year software engineer Fagner Brack wrote an interesting and thoughtful article on "How To Accept Over-Engineering For What It Really Is" The article is very much worth the read in its entirety. There are a few key takeaways though I derived from it personally: I like the definition of over-engineering (quoted from Jeff Sternal) as "Code that solves problems you don’t have.". Fagner's conclusion is that what constitutes over-engineering depends on both context and the people involved. Over-engineering is usually brought about by unclear ... Read more

Clear Acceptance Criteria: The Key to Good Software Quality Right from the Start

Actually it should come as no surprise that clear acceptance criteria are a quintessential prerequisite for high quality software that meets both design requirements and customer demand. All too often however, acceptance criteria for software products are either non-existent or vague and ambiguous at best. Who hasn't come across 'acceptance criteria' such as "The app should have a modern UI." or "The application should be easy to use."? What do bromides like that amount to? Not much, unfortunately. Elena Kulik of RubyGarage wrote ... Read more

‘Agile’ isn’t a new way of doing software development, it’s the normal way

Recently, during a conversation on software development "methodologies" (just the word "methodology" makes me cringe because it's a needlessly convoluted and complicated notion) one of the participants said something along the lines of "'Agile' isn't for everyone. Most people just aren't cut out for doing software development that way.". I strongly contest that notion. 'Agile' has become some bullshit bingo term that's slung around in order to perpetuate precisely those misconceptions the Agile Manifesto intended to upend. 'Agile' unfortunately is often seen ... Read more

Keeping database schemas up-to-date with Flyway

At least ever since Ruby on Rails' Active Record Migrations put an emphasis on keeping database schemas consistent with your software's source code both during development and in production database migration tools have become a staple in modern software development. Database migration (or database refactoring as this technique is sometimes called as well) tools allow you to apply data definition language (DDL) statements like "CREATE TABLE ..." or "ALTER ..." to databases in an automated, consistent and traceable manner instead of either ... Read more

RunKit: Instant, reproducible JavaScript playgrounds

I'm a huge proponent of the idea that programming tools should directly interact with coding and provide immediate, responsive feedback to changes. RunKit is such a tool that offers a comprehensive JavaScript / Node.js prototyping environment. The service supplies you with instant, sandboxed Node.js instances called "notebooks" that allow you to experiment with the whole gamut of NPM modules. Moreover, "from graphs and maps to low level hexadecimal inspectors" RunKit offers data visualisations for immediate visual feedback. Once done you can showcase your ... Read more

Interactive Flowcharts with code2flow

Visualisation often helps immensely when trying to understand complex systems and interactions. Visualising these systems and their behaviour can be a daunting task though: Covering each and every path a workflow or process might take can be quite arduous. In many cases it's not even possible to comprehensively describe a system that has not yet been implemented. Edge cases frequently only tend to surface once a software has been tried out under real conditions. Software in turn needs to adapt quickly, which all ... Read more
« Previous PageNext Page »