A bridge and some houses in Karlskrona

Your system architecture could make or break your new initiative

Let us get you off to a good start – together!

We at factor10 have extensive experience with software and systems architecture and we are here to help you get off to a good start. In our Architecture Design offer, we will, together with you, develop an architecture for your system that is simple enough to be out of the way in the early stages, while still accommodating growth and evolution as the project progresses.

Houses by the water in Blekinge

Architecture is one of the most important aspects of your software system

The architecture of a software system has wide-ranging impacts on many aspects of an organisation and its business:

  • A poorly architected system means software development becomes needlessly complicated, resulting in longer time to market and more defects.

  • Poor architecture increases the risk of major outages and can require complex orchestration whenever deploying new versions of the software.

  • Good architecture means developers can focus on narrower parts of the system, resulting in higher quality code, shorter lead times and better quality software.

Architecture mistakes that hold systems back and what works

Two common anti-patterns we frequently see with system architectures are: Big Design Up Front (BDUF) and not revisiting the architecture as the system evolves.

Overarchitecting – designing everything up front

A BDUF is an attempt to see far into the future and anticipate every obstacle or development the project will encounter. As with any venture that relies on forseeing the future, it is bound to miss the mark.

A common culprit is the second system effect (Brooks, 1975), which means that we often overcompensate for the woes with our previous system(s) by overarchitecting the next. This often manifests itself by designing the architecture around popular technologies and patterns, not beacuse they solve actual problems, but because of their popularity.

There is merit to trying out new technologies and patterns, but it should be restricted to experimentation until one has gained enough understanding to incorporate it into the main system.

Underarchitectingsticking with the tried and proven

Creating a minimal architecture and sticking with it may sound simple, but not revisiting the architecture as the system matures likely means that the system will outgrow its architecture and be constrained by it instead.

This often results in huge monolithic applications whose source code are complex to work with and take hours to build and test, or a mess of microservices that all talk to each other without clear boundaries of responsibility.

Just the right amount of architecting

Like with Goldilocks, the right amount lies somewhere in the middle: designing an initial architecture that can support the system during the first stages, yet be flexible enough to grow and adapt as the system expands in size and functionality.

Small boats and a floating dock.

How factor10 can help

At factor10 we have decades of experience with a wide range of systems: from microservice deployments that handle millions of concurrent operations in real time, to monolithic on-premises servers run by local IT, and everything in between.

With our experience of architecture and your domain knowledge, we have a great combination for designing a suitable architecture for your system. An architecture that fits the early stages with an eye towards the future and what might be needed then.

An architecture should be ever evolving, which is why we prefer to work in increments and frequently revisit the architecture together to ensure that everything is on the right track, and that the architecture is not constraining any part of the system.

Let's talk

It all starts with a conversation. We'll discuss your architectural needs and how we can help you kick-start your next initiative.

Just a conversation, no commitments.

Jimmy Nilsson, CTO at factor10

Jimmy Nilsson

CTO & Principal Software Architect

Daniel Raniz Raneland, principal software architect at factor10

Daniel Raniz Raneland

Principal Software Architect