Skip to main content

About Building Blocks Concept

Background

The reason for the building block approach is to create a system where different use cases / features are combined and can easily be reused. For example your organization creates multiple applications but all of them use the same login mechanism. This login mechanism is therefore the perfect candidate for a building block that other developers can easily integrate and use. But the same applies to user interfaces that you create for your applications. Often customers want to see the same information on multiple different pages. Therefore smart components are also often a good candidate for a building block.

Building Blocks Concept

A building block approach is often linked to a library approach. You have a set of building blocks that you can use in your applications. The library solution allows that different teams work on a set of features and also maintain them. In return it reduces the time it takes to implement a new feature because you can reuse existing building blocks. It also hides a certain complexity that certain building blocks are based on. For example a login mechanism can be quite complex and therefore it is good to have a team that maintains this building block.

Many teams often prefer to maintain these things on their own but this often leads to a lot of duplicated code and therefore a lot of maintenance effort. Also when multiple teams use the same building block it becomes easier to resolve security issues since a single update is enough instead of many teams finding and trailing the same issue. The building block approachs also tends to improve the building block code base since multiple teams are using the same block and issues are found faster.

Other alternatives for a building block is a collection of API calls that can be used to create a certain feature. Multiple features are based on the same API endpoints but display the data in a different way. A API building block therefore allows multiple developers to access the same data layer but work with the same data in different ways.