mobrec

My Personal Infocloud

So
Seeing this article about Google and their recruiting and hiring practices reminds me of an observation that has been backed up by experience over the years.  That observation is that intelligence does not lead to effectiveness.  In fact, it can lead to some of the more misguided actions and conclusions that I have ever seen. The seed of this observation came when I was working at a small consulting firm that had an external consultant as it's chief technology person.  This guy was incredibly bright, but had created a system for merging and reporting on data using flat files that was very nearly unmaintainable.  Since the task of maintaining this train wreck was passed onto me when I was hired, I immediately started looking at ways to make the process more automated.  It seemed a natural fit for importing the data into a database and driving the transformations and reporting from there.  Here is where the fun started, I mentioned my plan to bright-guy and he launches into this red faced tirade about how it will never scale and database b-tree algorithms were too inefficient, he knew because he had written his own b-tree algorithms, etc.  This rant went on for at least ten minutes.  While he was ranting away (and in between mildly disagreeing with him) I was typing away in r:base (of all things) and knocked together a prototype that basically proved, well, he was demonstrably, dead wrong.  He poked and prodded on the prototype for about a half hour, then finally conceded that 'things had changed with data algorithms in the last few years'.  Indeed. Intelligence is great, but it needs to be pragmatic and relevant.  When I discuss this with others, I usually take it to a non-technical domain, just to remove any of the techno-zealotry that surrounds most of software and technology.  For the pragmatic developer, if you ask them to make mashed potatoes, they will either know how to do it or consult a cookbook for some reasonable guidance on how to achieve the desired outcome.  The bright-guy, will likely produce some studies around the required crushing force of a potato, white papers on starch combinations, argue that beans are more appropriate for mashing and possibly even conclude that mashing potatoes is not possible.  I'll take the pragmatic guy and his results any day.  He will achieve a quality result in the amount time the bright guy spends on arrogant tirades and irrelevant research whose aim is to refute your request rather than respond to it. Another great example, is then I was hired into a financial services company that up until my arrival were utilizing high priced consultants from Microsoft.  Nine months before, there were given a somewhat simple task — to take a set of financial formulas and create a DLL that would allow a suite of financial planning tools to use a common implementation of these formulas.  Three guys (1 PhD and 2 MS degreed bright guys) worked on this for nine months.  Nine months. What they came back with was the proclamation that it was impossible to implement all of the calculations in a single function call.  Not only was this not what they were asked to do, how they could have ever reasonably conceived that implementing calculations in that manner was a good idea was beyond me.  When I gently pointed out the problem with their approach, the response was an unapologetic  'you think you can do a better job, fine...but just look at our stock price!'  No mashed potatoes for that company.  The good news was that after a few more months of my mopping up their crap and making much more progress than they had in nearly a year, they were (finally) shown the door.  They were even ethically challenged enough to try to recruit me before they left.  No thanks. On another occasion, I was the tech lead at a consumer electronics manufacturer.  I successfully migrated them from a load of mini computers to a client server based environment, got them connected to the Internet and built a web site for them back in the days when Mosaic was THE browser and Mozilla (soon to be the Netscape browser) was a rumor being discussed on Usenet.  I digress.  When I left, the CEO of the company proclaimed that he was going to get a real bright guy 'to take them to the next level'.  So he went to Carnegie-Mellon and hired a MSc grad. What an unmitigated disaster.   I kept hearing from people who where still there that this guy would do things like reboot production servers, power off network hubs and other clueless activity.  After less than six months, they let this bright guy go (apparently with a lavish severance package to keep him quiet and avoid embarrassing the company and the CEO any further). I have also had occasion over the years to interview Computer Science PhD grads for various tech positions in business.  Inevitably, I'll ask what their thesis topic was and then ask how that it could be applied in business or industry.  It is frightening the number of blank stares that simple question receives.  It is always a bit telling when the answer is that it has no application in business.  It is even more telling when I suggest a few applications that make them sit up in their chair and an sheepishly admit that they never thought of applying their work in that manner. Lack of relevance is also the problem with asking cute little problem solving questions in what are supposed to be technical interviews.  This seems to be a cliquish thing that really has no bearing on software engineering-type problem solving.  I don't solve word puzzles for fun, because frankly, at the end there is no result (the term 'mental masturbation' comes to mind here).  However, solving a technical or business problem is enormously satisfying because in the end there is a tangible, relevant achievement.

technorati tags: intelligence, hiring, jobs, problemsolving

So
Something that I have noticed working in IT for the last 20 or so years is that the critical thinking and problem solving skills appear to have diminished with the most recent crop of CS grads.  Perhaps this is an unfair characterization, maybe there is less emphasis on 'the fundamentals' in the current CS curriculum.  As an example, if you give a set of requirements to a recent grad, their first instinct is to go try to download something from the Internet and start customizing it.  While I applaud the apparent desire to re-use existing code bases, Im not sure that this practice makes them prudent or dependent on the work of others for productivity.  A similar issue exists when a problem or issue comes up — zoom, straight to Google.  If someone else hasn't solved the problem, well, then it must not be workable — better download someone elses work and 'fix' the problem that way.  The other symptom is that inevitably, when asked to do something new, the newbies will insist on having a training class on it.  Suggest picking up a book and building a prototype to learn and you will be rewarded with a grimace as if you had asked them to drink their own vomit. I contrast this with my education and career where I felt that I had a good grounding in fundamentals (how operating systems, programming languages, databases, networks and other building blocks work).  Having these in place, I have successfully been able to apply and extend by knowledge base without being dependent on someone else providing me with an answer.  I remember one of my first jobs, I showed up and was told, 'we just bought this minicomputer and we need you to set it up'.  Ok, hadn't done that before, but love a good challenge.  I took the manuals home, came in the next day, setup the mini, did development on it and it was solid for years.  This has been repeated over the years as, at various times, I was a database administrator, network engineer, computer operations manager, software developer, development manager and so on.  In each of these roles, building on the fundamentals and previous experience seemed natural to me — I wasn't dependent on someone else solving the problem for me. There also seems to be the glamor effect at play here as well.  Because there is so much access to so much 'stuff' via the Internet, new developers feel the need (if not the RIGHT) to only use the tools and practices that are cool at the moment.  The whinging that accompanies constraining the technology set can be deafening.  In retrospect, somehow I have managed to use the tools at hand to solve the problem at hand without needing to do it with the 'tool of the moment' or wasting time on 'if only...' .  Oh well, this presents the opportunity to mentor and lead by example.  Maybe an old dog can teach some (not so) new tricks.

technorati tags: problemsolving, education

So
This holiday season, I created my own little mashup by combining this web service (created by Ben Hammersley) to track a FedEx package via RSS and the Yahoo Alerts service to notify my mobile phone when the FedEx status was updated.

The combination worked pretty well (Yahoo Alerts sent several false/duplicate updates). It would be nice if all of the major shipping carriers provided this as a service. Tracking multiple packages via RSS is much simpler via RSS than having to go ping individual websites. The option to couple this with SMS notification is a big plus for critical, can't miss shipments.

technorati tags: yahoo, rss, tracking, sms, fedex

So
There is now an online version of the book Innovation Happens Elsewhere, which discusses using open source software as a business strategy. Even if you are developing your own 'proprietary' software, leveraging the sheer amount (and in most cases, quality) of open source software can provide for speedier startup and time to market.

If you are interested, the dead tree version was published in April 2005 and is available from amazon.

technorati tags: opensource, oss, books, business

So
Apple is making two videos available free via the iTunes Store. One is a Saturday Night Live skit and the other is special on the new Battlestar Galactica series to start in January 2006. These are the first free video offerings from Apple.

technorati tags: apple, itunes, video, ipodvideo

So
AjaxTrans is a very nifty utility that provides a similar service to BabelFish and Google Language Tools. Namely it translates text from one language to another. The twist is that it performs that translation as each word is typed (avoiding the page refresh).

English, German, French, Spanish, Italian and Portuguese are supported.

technorati tags: translation, ajax, language

So
Yahoo has made available a clearinghouse for programatic services on Yahoo for Javascript developers. Highlighted are interactions with Yahoo Maps, Music Engine, Widgets and Search including AJAX and JSON options and examples.

How get crackin' on those mashups.

technorati tags: yahoo, ajax, javascript, json, webdev

So
Safarilicious is a nifty little utility that allows you to export your Safari bookmarks to del.icio.us. It also allows you to only upload bookmarks that do not already exist on del.icio.us after your initial push takes place. Initial tagging of the uploaded bookmarks is driven from the folder structure of your Safari bookmarks.

technorati tags: safari, mac, delicious, bookmarks

So
Google has introduced a new Firefox extension that displays Blogger Web Comments for the site that you are currently viewing. This reminds me of an IE plugin from around 1996 that allowed you to view post-it note type annotations that were placed on websites and viewable through the plugin. It wasn't long before this became abused and if I recall correctly, the company went out of business. This approach seems to have only slightly more accountability in that it ties back to a blog. Then again, Blogger blogs have been notorious of late for their splog activity.

Google has also recently introduced some functionality to make it a bit easier to search for music on the Internet. According to the Google Blog, the search works only for well know artists by name and primarily for US based artists (though I did get results for David Sylvian, oddly enough). The results include links to reviews, lyrics and online stores to purchase some releases. Not surprisingly, I didn't see any purchase links to Amazon (though there were links to the iTunes store). It will be interesting to see how this evolves.

technorati tags: google, firefox, musicsearch, blogger

So
A very insightful post from David Leeson on how the emergence of High Definition Video (HDV)cameras may become a 'threat' to some photojournalist. David's stance is that frame grabs from HDV are of a quality that is perfectly acceptable for print use. An obvious advantage that video has is that you have a frame rate approaching 30 frames per minute, so if you are shooting action you stand a better chance of getting just the right moment.

He also delves into the attitude of some fellow photojournalists, that using frame grabs is 'cheating'. These sorts of comments can be traced back to any sea change in photography and concludes that HDV frame grabs are probably just the next step in the evolution of how images are captured and communicated.

Hat tip to Doug Alcorn for the link.

technorati tags: photography, hdv, journalism