What Do Lego Bricks Have to Do With It?
Lego Bricks are often used as an analogy to explain the way that an ExoBrain works.
I am pretty sure that most of you have some idea of what is meant by the Lego Brick references you see in the material you study. But let me give you a programmer’s viewpoint on this.
Before I joined ExoTech, for 25 years I was providing a service to small businesses by designing and building custom-made database systems for them. These systems replaced the more manual operations that many small businesses use, like paper invoices, Excel spreadsheets, and printed lists of people to contact.
So, I built systems that enabled them to manage their customers, and potential customers, and ferry them through the sales process. And then through the invoicing and management of the installation of their products, or services, and the follow-up and maintenance that is always necessary.
Now, you might think that I could simply build a standard system that everyone could use, but that’s not the case. Every business likes to do it their way! So, my specialty was to build a system that covers what they actually need in the way of functionality, and then to customise that system to exactly the way they want to use it.
This could mean that they want to be able to call prospective clients according to their street location, or their industry, or their age – whatever. And they want their invoices to look like this, or like that.
I always start with a basic structure that I have developed over the years, and I build that up to the way my client wants it to work. For example, I have a basic structure of how their customer details will be displayed and what information will be included.
And when I start to set up a system for a new client of mine, I take the standard Customer Details box I have used before and put that into their system. And then I customize that to make it look the way they want it to look, and to show the information they want to show for each of their clients.
I have standard units for all the different parts of my system; marketing, quotations, sales, invoicing, production, installation, project control, and on-going maintenance. You could say that each of these components is like a Lego brick for me. If they want me to include invoicing in my system for them, I start with the invoicing Lego brick and then customize that for the way they want to use it.
But you have to realize that what I am doing only works in the database program I am using. I cannot use any of my components to directly control other programs. I could (and do) write some limited software components that let me generate, for instance, an Email, or a Word document, from my database, but it is extremely complicated and does not work well.
And the reason it does not work well is that emails and Word documents are managed from different programs. Managing emails and Word documents is not a part of the functionality of the database program. So, I have to write all sorts of complicated instructions that go through yet another program, whose job it is to translate the instructions given by my program, to instructions that can be understood by the other program.
It’s a real mess. And it highlights just where we have arrived at with traditional computer programming. We have all these highly complex individual programming environments that have grown up, each in its own little world, and every one of them totally incompatible with any other program.
And now, along comes ExoTech. And now we have a single programming environment that covers everything. It doesn’t matter what type of data I am using, or what I want to do with it, I can do anything with any of the data I have.
I can generate an invoice. I can generate an email to send that invoice. I can generate a follow-up on my calendar to make sure I get paid on time. I can generate a welcome letter and send my client an instruction manual. Look at that! I have just listed several things I can do that, today, require several different programs: invoicing, calendar, documents.
But with ExoTech, these are now all in the same programming environment.
I can build a whole lot of standard items that I can start with and then customize them according to what is required by the end-user.
In today’s programming environment, if I need to use ten different programs to get the job done, then I need:
- 10 different Save functionalities.
- 10 different Open functionalities.
- 10 different Font-Selection and modification functionalities.
- 10 different Paragraph Structure functionalities.
- 10 different Page Style functionalities.
- And on and on for hundreds, of different functionalities.
I need 10 of everything!
But with ExoTech, the ExoEngineers build each basic functionality once and make it available to the ExoDesigners to use. That’s what I call a real “Logo Brick”.
Because, they build one Lego Brick to use when you want to Save something, and that’s all they need to do to cover all situations where something needs to be saved. The ExoDesigner has an email he wants to save – he simply takes the Save Lego Brick and uses that. Then he has a Text Document he needs to save, and he uses exactly the same Save Lego Brick as he used to save the email.
The ExoEngineer did not have to write a new piece of code to save the Text Document, and the ExoDesigner did not have to find a different Lego Brick to save his Text Document.
By comparison, if you look into my code on the databases I build, you will see hundreds of groups of code that I have had to write, just to save different components – even within the same database. So, there is some Save code for saving an invoice, and different Save code for saving a new customer record, and different Save code again for saving some notes about a phone call to a customer.
You may have heard of “code bloat”. Peter mentions it quite a lot, as do the ExoEngineers. And you can see how this comes about. Because, even within the same program, like my database systems, I have to write separate and different code for every piece of material I want to Save. And that’s just the Save functionality. What about all the rest? There are hundreds of them.
Well, the “Lego Bricks” that ExoTech uses do truly work in the same way as real Lego Bricks work. You pick one up and you can use it anywhere in any way you want. Therefore, you don’t need to keep reinventing new versions of the same thing, over and over again.
And that’s why the ExoTech code is dramatically smaller in volume and complexity than any other computer code, and that’s why it is faster and much easier to deal with. And that’s what the Lego Brick thing is all about.