The Lego Theory of Domino Development
Having done some googling I've found that the name of Lego is derived from the Danish words "LEg GOdt", meaning "play well". However, it also means "I study" or "I put together" in Latin. For years I had always thought it was Latin for something along the lines of "I search, I gather, I build" and this is what I base my Lego Theory of Web Development upon. Yes, it's been way too long since I posted one of my flakey analogies for you to ponder. Here goes.
Now, I know it's the British reserve to play down ones abilities but I do think I am a really good web developer. What I am not is a really good programmer. I have no real formal background in computing and I couldn't sit down and get involved in an argument, for example, about which is the better of Java and LotusScript. Nor do I care to a certain degree. What I do know is when one is more useful than the other. Each has its strengths and this is what's important to know, and appreciate. The same goes for other technologies on the net. It's important to know when to use what and how to use it.
Let's think about building with Lego. You might have a strong opinion on whether to use a green brick over a blue or a long brick over a short, but that doesn't help build the finished structure. If you have as much Lego as I did as a child then it really was a case of searching for the right bricks. The internet is like my pile of assorted bricks and most Domino databases like the finished "structures". I used to search, gather and build with the bricks in the same way I now search, gather and assemble various method and techniques in my database structures.
This is what I think makes a really good developer. There may be those who pride themselves on their in-depth knowledge of one particular language but can they cut the mustard when they have to juggle the various skills required to be a web developer. I've seen databases built by code gurus that look awful and have a really poor interface. Ok, the code might be amazing but what does that really matter to the users?!
Yesterday it was seven years to the day since I graduated, with a non-IT degree, and started my struggle to build a career as a "computer programmer". Since then I have been searching for and gathering the skills needed to survive day to day as a Domino/web developer. I've still had no formal training in any discipline. The only skill you really need as a web developer is the ability to dig out useful widgets of code and have the insight to know how, when and where you can successfully apply them. Once you have a decent pile of bricks, there's nothing you can't reasonably build.
So, now you know. If ever you meet me don't expect hours of discussing whether or not global variables are a good or a bad thing. I might well ask for a brief explanation of the pros and cons, on which I can base an opinion. But, any more than that and you'll soon see my eyes glaze over and my attention drfit...
Hi Jake!
A small addition of my own: Leg Godt! is actually pronounced lego in Danish (the dt at the end of godt is not pronounced). So it is not really an acronym.
Sorry for that, I just *had* to nitpick!
Andrew
Thanks Andrew. I love knowing stuff like that. One day it will come in useful and I can amaze people with my knowledge of the Danish tonque ;o)
If you're not a good programmer, that makes me useless!
Hi Jake!
Your description of web development is exactly how I feel. Although it has taken me a LONG time to work it out.
I graduated in 1995 with a degree in Computer Science. I scraped through mind and felt extremely conflicted with the field. I loved the creative side of things... the "building of the lego" but the degree I did was almost down to the level of what type of plastic were the bricks made of!
I went to Sweden for 8 years (as you do) and ended up trying the following:
C Programmer : Boring
Notes Devloper: Well it was version 3 then just flippin @functions.
Technical Architect
Business Process Analyst
And finally Domino consultant...
What Ive have had to accept is that Im just not interested in heavy coding .. Like you said "one's eyes glaze over". I am interested in design, building applications and web development.
It feels right now.. That's why I am interested in learning about the other bits of lego that i don't know much about.. Now its just to work out which lego bricks i might need..
Coldfusion?
PHP?
.Net?
Funny how life works though. Its very healthy to reflect on why you are not happy with something. Especially when you like some parts of a field and not the others. Identify the bits that bore you, avoid them if you can and develop the bits you enjoy and are good at.
Anyway.. good article..
A.
Ah your sh*tting me - no programming talk - how dull! ;)
Jake,
Your spot on regarding the meaning of Lego! Lego is probably the best toy ever conceived by adults. Lego renders itself useful in many analogies regarding the way Northern Europeans thinks.
As a native Dane I must comment upon Andrew Magermans (a German or at least a person with a German e-mail) post about the pronunciation of "Leg Godt" in Danish. It’s wrong in this case at least. Andrew is right thou, that "dt" is often soft or not pronounced, but it’s not possible to apply this fact to all word with "dt" in the end. You have to be a native Dane or live in Denmark for a substantial time, in order to learn this.
I will not deny, that if you overhear drunken Danes or some Danes talking in the local dialect (there is a lot of local dialects, even thought we are a small country) you might conclude, that we are "careless" regarding the pronunciation of our language. But it’s not the case, it’s in fact one of the reasons why the Danish language is considered hard to learn by foreign people.
Sorry about this off-topic comment.
I've been reflecting on this recently, and I've come to the conclusion I've never actually enjoyed programming, what I've enjoyed is the result of the solution being applied.
I want to have a good, general grounding in what the technologies can deliver, but over the last 3 or so years I've become someone who wants to ensure the solution is right, and gets delivered, but someone else can code it.
I'm not seeing coding as something I want to go back to.
It was an interesting realisation.
I stand corrected! (munching humble pie)
I suppose that the pronunciation would be then something like leggott, hmm?
Unskylld Christian, jeg snakke ikke godt Dansk!
Andrew
It's something i've been reviewing of late aswell...I graduated 3 years ago with a software engineering degree and been using Notes ever since.
Now wanting new bricks but struggling to decide upon the right ones, and how/where i'm going to get them.
Nice blog.
Jake,
I grew up with a more chewable type of red plastic bricks and afterwards went straight to steel with the Meccano construction set and my trusty steel Tonka trucks.
While no fan of current Lego sets as they spoon feed finished models for kids to build, there is some merit as it gives new shapes and colours to experiment with. If this is a good comparison to the widgets in your blog, then is there a good widget 'wishlist' that the coders can refer to and keep the solution at the component level for imaginative re-use? I like Openntf.org, but I prefer to use bits and pieces rather than an entire app.
Michael
Jake,
I feel more inspired reading that you graduated with a non-IT related degree. I've often been kidded by my peers for my degree (Comparative Literature/Ancient Greek).
Your analogy fits very well with the way I view development. Nice read!
IMHO I've found that IT-related degrees and/or formal training can sometimes hinder someone. Going with the Lego analogy:
If you get a Logo construction kit with directions to builds a racecar, and all you ever do is build/rebuild that racecar... all you're ever going to get is a racecar.
I've found that developers with degrees/formal training "stick to the directions" and rarely go off the hip. It's the ability to think outside of the box or at least see things from a different angle (untrained eyes, etc.) that's the stuff of legend.
For the record - no formal training on this end either, and I have my degrees in Criminology and Psychology!
Degrees? I'm a high-school drop-out. I've taught at colleges and Uni, but I've never actually ATTENDED one....
ahh. The old 'comp sci vs. non-IT degree' debate and who makes the better developer.
To me, programming/developing lies somewhere between engineering and computer science. Jake, you're more of the engineer, you know the tools you have available and how to use them. You prefer to deal with high-level concepts that offer benefits to your clients, you/they don't care how it works as long as it works. This makes you a good engineer.
However, there are times when a good programmer comes into their own. Who writes low-level code that allows your mobile phone to communicate without audio delays? Who designs the compilers that convert your verbose LotusScript into efficient machine code? I certainly wouldn't trust most Domino/web developers to do these sorts of programming tasks.
You are correct to say that you are a good developer because you are the right type of developer for your projects. The code gurus you mentioned who have no concept of interface design should stick to the low-level stuff that they are trained to do best and then they too would be good developers.
In short, its horses for courses and in development, there are many different types of courses!
Notes is probably the only common technology that crosses the IT/Non-IT gap for so many. You can "Lego-lise" alot and use a variety of concepts, but you cannot go all the way to OO or other paradigms, because of the restrictions of the technology.
So i take a best fit approach, by understanding a particular paradigm, (ie OO), and only apply what works. Don't try and jam it in if the technology doesn't support it.
I come from an IT degree and have learnt the hard way that in Domino/Notes you should not get hung up on the "purist point of view". You WILL end up in a quagmire of workarounds to the point that you will have un-manageable solutions.
I certainly agree to a point, but I also think that as far as Notes/Domino development goes - that's often the problem! I have an IT degree - but not computer science, so while I did some programming at uni, I also did alot of business related subjects. I hated programming with a passion, and never thought I would end up a programmer/developer. I stumbled into Notes and moved from Admin to Admin/Dev, to developer/architect. I love the way that both Notes and Web development allows for an appealing mix of UI/backend coding.
My biggest problem with people who want to be "developers" but not learn to code properly is that you up with systems that work (for the most part) but are based on such poorly coded solutions that any maintenance or enhancement is usually "it will be easier to just start again"! Just because something works for the user doesn't always mean it's the right thing to do!
PS. Jake I've been following your site for a long time and don't consider you to fall into this category - your solutions have always been great, and certainly very helpful!
It sounds to me like we want our cake and we want to eat it, Admitably I feel same...
Web Development is fun, coding is slightly boring as there are no visual treats and creativity involved.
Its like a builder and an architect, coder = Builder(heavy and slugish work)
webdeveloper = Architect (draws beautiful plans and has ideas)
I think its just natural that we all tend to enjoy/devote more time to The pretty things...
Im just thankful that there are many coders out there keeping up their good work....
Im rambling again... ;)