Friday, November 5, 2010

The Lego Principle: How building from blocks, sets and platforms applies to software

Do you remember playing with Legos when you were a kid? I was thinking about my surplus of Legos the other day, and it got me thinking about software…

When I was a kid, I literally had tens-of-thousands of Lego blocks. It didn't start this way. I grew my collection from the first few space sets I could afford into a massive armada of ships and bases. With each set I added something new to the foundation of what I could already create with my current Lego supply.

Software developers do much the same thing, starting out with a few basic pieces. By learning and accumulating more interesting bits of code overtime, more designs and possibilities begin to emerge. Eventually developers collect a whole range of different building blocks that they can use and the number of possibilities skyrocket, which we refer to as exponential growth.

This phenomenon also occurs on a more local level at NCH Software. Our products are based upon blocks which can be built into a powerful conglomeration of tools. With so many software products, we often use blocks of code, or functions, from our library in multiple products and stack them together to add to the features.

One of the more banal examples of using these building blocks is in our dialog windows. Using the same code ensures that our software products will have a similar look and feel throughout. You wouldn’t want to build a castle with a mixture of Legos and Lincoln logs, would you? A more interesting example is our sound effect library, which is available in WavePad, VideoPad, and MixPad. Think of each of those applications as an already-constructed Lego spaceship, and the sound library is a fancy laser gun we’ve added to all three to make them that much more effective at what they do.

Yet another example is the weblet. In some programs, the weblet is where you go to run your business when you are away from home. In others, it’s where you configure the settings for your phone system, or where you test the video streams you are going to put on your website. The weblet is a foundation we lay down and build on top of to suit the needs of the individual program.

Lego has the right ideas – expandable and always interoperable. At NCH Software, we have the same ideas so that all of our products fit our users' needs. By making core features in our library, we gain a lot of dynamic power to make future products more robust, making our entire development team more powerful. And you can never have too much power.

1 comment:

  1. Software by Legos ?? Is it really works..Software developers really start an interesting project..

    ReplyDelete