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.
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...
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.
These Stories on Architecture & Development
Comments (1)