Building Software like LEGOs

Trond Gjendem
1/23/18 6:25 AM

I loved playing with LEGO pieces as a child. I remember building specific things such as castles, vehicles and helicopters from the different shapes and sizes. I may have started to build those models a time or two according to the directions before I started using the blocks to build other things, things not imagined by the designers of the sets. The innumerable outcomes of creating things with LEGO blocks allowed me to imagine and design numerous 'products' for me and my friends. Building software like LEGO blocks

Fun Fact: Mathematics professor Søren Eilers calculated that there are more than 915 million ways to combine six, eight-stud LEGO bricks. 

The myriad ways you can combine LEGO blocks is similar to how we view our platform components. They start out with a particular problem or use case in mind, but end up getting used in many different ways by our solution teams. 

Decades after playing with LEGO blocks as a small boy, I have realized that the same open, flexible design pattern that attracted generations of customers to LEGO pieces also makes for a great software platform. As a product owner on our platform, I ensure our components are highly configurable to accomodate new use cases and easily extendable to include additional functionality to meet future needs. 

Don't Repeat Yourself

The cardinal rule in programming is Don’t Repeat Yourself (DRY). It says that developers should only implement a particular functionality within a project once. Doing otherwise is bad because it introduces technical debt and potential inconsistencies. But it often only applies within the scope of a project.

In the past, we contributed work to the platform hoping for some reuse. But more often than not, when we moved on to something else, we found ourselves recreating something we’d previously done in different projects, which obviously was inefficient. The technology may have been different on the new project, making it difficult to leverage that functionality that was implemented in the prior project, or the functionality was not easily extendable to accommodate a new use case. The challenges with applying DRY at this higher level - across projects, or enterprise wide - is something that most software development firms are intimately familiar with.

With our latest version of the platform this all changed. We are no longer building monolithic applications, as each platform component consists of one or more microservices. Now we can truly import the base functionality and focus on extending it to meet the specific solution’s need. We no longer reinvent the wheel. With the Kingland Platform, we build software with small, consistent components, much like LEGO components.

Use Software Blocks

Across our four platform suites, we have over 40 components that make up the basic software building blocks. Some examples...

  • The Workflow and Rules Framework in the Enterprise Application Foundation suite uses dynamic management of rule and workflow definition and robust workflow execution.
  • The Hierarchy Data Model and Services in the Enterprise Data Management suite boasts a high performing graph database. 
  • The Monitoring and Usage Analytics Framework in the Data Analytics suite provides rich workflow analytics dashboard widgets.
  • The Collector Framework in the Text Analytics Computing suite has the ability to mine or harvest data from a multitude of sources.

With components like these, we have entered a world of composing solutions from building blocks instead of compiling in code snippets as in earlier platform versions or building from scratch.

Learn more about the components and the different solutions we can build from the Kingland Platform.

You May Also Like

These Stories on Architecture & Development

Comments (1)

TRUSTe