LEGO and Software Engineering
I'm very fortunate to have grown up playing with LEGO. I credit my ability to patiently work on a problem for long hours to all my childhood days creating Lego train tracks, castles, and cities with Lego Minifigures walking around. It also taught me the complexity of going from a vague idea in your mind to creating a real physical model, and all the re-thinking and re-working involved.
For example, I remember I wanted to create an infinity-shaped train track where the cross-tracks would be at different levels - some sort of a bridge. I ended up using a small table to elevate the track.
It all starts with an idea and a vague picture of how the final model will look. You look at how many Lego pieces you have and whether you have the key resources you'll need. You then start building and as you face challenges along the way you learn to re-route to overcome obstacles. Once you're done with a basic working model, you know all the challenges you faced and how you could build better the next time around. And this is exactly how Software Engineering works!
For example, I remember I wanted to create an infinity-shaped train track where the cross-tracks would be at different levels - some sort of a bridge. I ended up using a small table to elevate the track.
A track similar to this, except raising one of the tracks at the intersection.
It all starts with an idea and a vague picture of how the final model will look. You look at how many Lego pieces you have and whether you have the key resources you'll need. You then start building and as you face challenges along the way you learn to re-route to overcome obstacles. Once you're done with a basic working model, you know all the challenges you faced and how you could build better the next time around. And this is exactly how Software Engineering works!
- Start with a brief idea in mind. Discuss, make a plan and rough designs/sketches.
- Look at your available resources and try to foresee all the challenges that may be involved.
- Start working and overcome obstacles along the way. Re-design, re-work.
- Release a basic model, knowing better all the technical difficulties involved as compared to when you started.
- Work on the next version.
Comments
Post a Comment