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.

Nonsense We Put up With: Complexity, Agile Gone Wrong and Enterprise Decision Making

Recently, I've come across a few articles that - although about ostensibly different subjects - share a common theme: When trying to create business value through software and devising the structures required to do so we all too often put up with wasteful processes, politics and toxic behaviour patterns that not only do not contribute to our goal but are downright detrimental. First, there's this transcript of a talk Martin Fowler gave at Agile Australia this year: The State of Agile Software ... Read more

RxJS: Observables, Observers, Subjects …

When developing web applications - or in fact any kind of application that involves interaction via a user interface - we inevitably have to deal with asynchronous events, perhaps even streams of such events, e.g.: mouse clicks asynchronous HTTP calls and subsequent display of data push notifications Because events are such an essential part of both the feature set and the user experience of many, if not even most, user-facing applications frameworks such as Angular treat them as first-class citizens and provide developers with ... Read more

Things to Consider When Creating a New Business App: A Checklist for Setting up a Java-Based Software Architecture

Software developer Tom Hombergs - a former fellow student of mine - published this useful checklist for setting up Java applications on Reflectoring: A Checklist for setting up a Java-based Software Architecture It covers a wide array of both high and low level aspects of server-side and client-side development as well as architectural concerns. Furthermore, the checklist also has sections on operations, the development process and testing in particular. While some of the details may vary depending on the type of applications you create, ... Read more

JSON Schema to TypeScript declarations: Keeping Client and Server Models in Sync with Spring Data REST and Typescript

With web applications a separation between client and server is commonplace nowadays: While the server (also often called back-end) deals with the underlying model, data storage and the predominant part of the business logic, the user interface and user-facing behaviour in general is realised with JavaScript, HTML and CSS on the client (also referred to as front-end), i.e. the user's browser. Frequently, frameworks such as Angular are used in order to facilitate development and make code easier to read and generally more ... Read more

Keep it simple, stupid

As something of a follow-up on my article on using boring solutions from two weeks ago I'd like to point you to a blog post by Justin Etheredge, cofounder of software development company Simple Thread: Software Complexity Is Killing Us In this post Justin outlines in which ways software development has become easier in the past few decades and also points out the ways in which it hasn't. Most of the complexity of software applications accumulates in the layer that deals with business processes. ... Read more

Use Boring Solutions

Often when working with both startups and project teams at larger, more seasoned companies I encounter a variation of the not invented here syndrome. This usually starts with the well-intentioned idea that in order to build the actual product you need ancillary services A, B and C in order for the product to work. However, more often than not instead of building the 'perfect' solution for your product yourself it might be a good idea to take a step back and think about ... Read more

Alexandra Leisse @ RuhrJS 2017 – Death by a thousand paper cuts

At RuhrJS 2017 UX designer Alexandra Leisse talked about her personal experience with designing user experience for enterprise applications and how to deal with the continually growing complexity involved in that process: Read more

Dimensions of Software Quality: Outcomes, Continuity, Cohesion and Coupling

IT consultant Erik Dietrich wrote this interesting article about his approach for evaluating software quality from a business perspective. He suggests these 2 questions as the main business considerations when it comes to software quality: Does the software do what it’s supposed to do? Can I easily change what the software does? In other words: Software quality is determined by both outcome and continuity (the extent to which software allows for changing circumstances, see Jeff Sussna's book Designing Delivery for more information on this matter) The ... Read more

Microservices and Decoupling Front-end Components

Microservices have become a common design pattern for splitting up and modularising monolithic applications. The indiscriminate application of this particular design pattern is quite a bit worrying, though. A few months ago I gave this answer to the question what the biggest struggle with Microservices is: Convincing people that microservices are not a cure-all but just another design pattern. You have to start out with a monolith and only if you realise along the way that some components might work better as a ... Read more

More on JSON and REST API Specifications

Expanding on my previous posts about annotating and validating JSON data structure with JSON Schema defining and documenting REST APIs using Swagger I have two additional suggestions for tools that help you define and build HTTP-based APIs in a less haphazard, more deliberate manner: JSON API: While JSON Schema allows you to annotate and validate JSON-based data types JSON API gives you clear, opinionated guidelines for structuring JSON API responses so you don't have think about those implementation details yourself. Having uniform guidelines for API ... Read more
« Previous PageNext Page »