Tuesday, February 28, 2012


In Science Fiction, there's really only two types of engineers that matter - embodied by Montgomery Scott and Geordie La Forge, respectively. (Sure, there's Kaylee from Firefly, R2D2 is good in a fix ... but you'll see where I'm going in a second).

You either get stuff done, or you don't. Anyone who doesn't get stuff done simply should not be calling themselves an engineer. And of those who do, you have the ones who say "It'll take a week" and then do it in an hour (the Scotty approach) and those who say "It'll take a week" and it takes a week (The La Forges).

While I have great respect for the Scot, that's simply not how I roll - padding my estimates leads to a scenario where all estimates are simply ignored, because everyone knows they are padded.

Which leaves me in the current situation, where nearly every estimate I give appears to be met with incredulity and ridicule - even when they are repeatedly borne out, as any later analysis can demonstrate.

So - how do you, as an engineer, handle your estimates? And when you give an estimate, and someone argues with the numbers - how do you approach that conversation?

Friday, February 24, 2012

Those who can, teach

I'm probably coming pretty late to the party, but I've been working through the Udacity online "Introduction to AI and Robotics" course ( http://www.udacity.com/overview/Course/cs373 ) the last few days, and it is, in a word, fantastic. This is truly the best way I've seen or found to learn something technical. The tools and website are absolutely fantastic. The first course unit takes a couple of hours to work through, and it is split up into bitesize (1-2 minute) youtube clips, interspersed with "enter your answer" pages and programming tests, in the browser IDE. Everything is done in the browser window. If you don't understand a section of the presentation - simply rewind or restart that youtube clip! If you need to refer back to a previous section - click on the link! If you don't get what's required for a test - look ahead, see the answer, then go back and re-take the test!

As a platform for education, it's a fundamentally revolutionary step - yes, I know, Khan academy is moving us in this direction, and MIT do online courses, etc - but try it, you'll see what I mean. However, this isn't the most important part of the course - the most important part of the course is the content and the teachers.

These courses are being taught (and introduced) by the people who are at the top of their field - literally the best people in the world right now to teach the material. For example, the CS373 course on artificial intelligence and robotics is being taught by Sebastian Thrun, who has been a driving force behind the Google AI car team and the Darpa challenge winners for automated vehicles. This potentially shifts the adage from "those who can't ..." to "those who can ...". It's a hugely efficient use of their time (given anyone in this situation will certainly be passing on some of their knowledge to their team and upcoming replacements at some point) to be able to, instead, pass it on to anyone in the world who wishes to learn from the masters of the art. This replaces books, written by people at the top of their game, hopefully disseminated to some degree (but invariably at cost in time, space and money) with a "record once, play back infinitely" course for all.

It's bleeding great.