Sunday, January 24, 2010

The agile kitchen

Last year I posted about why successful restaurant kitchens are more Agile than many software 'kitchens'. Tonight, I'm posting more about this topic.

A good software developer is disciplined, just like a good chef is disciplined. Both will put extra effort to make that application or dish 'hit that sweet spot' nom nom nom. Both will cook stuff up that will add value, and not just because they can. The average chef will say "Yes" to every customer request, the good chef will use common sense and say "No" to some i.e. "No I will not put extra sauce in your lasagna because blah blah blah" - after all, this chef knows more than me and I trust their judgement. Certain requests are accepted right away - no discussion - like "sure I'll hold the nuts".

Now imagine the restaurant owner, they're not a chef, they're a manager. At the end, they are concerned about making money; after all it is a business and they didn't open this restaurant to just provide this excellent chef with a job. If the customer wants extra sauce, the manager's response will most likely be "Sure, thats X dollars extra" - the famous "change request", but thats another day's topic.

A Waterfall kitchen

Consider a "waterfall kitchen". The manager needs to know exactly how many people are seated, what each one of them are ordering, how complex each order is and how many chefs are in the back before scheduling any one order. In reality, most kitchens don't operate that way because you can't keep everybody waiting until all the orders have been taken. Finally, when the orders come out, some may be cold because of waiting so long and will be returned for re-heating. While re-heating, chef will notice that the broccoli doesn't look fresh anymore and needs to boil some new ones. Other orders will come back because they were incorrect. The chefs held the nuts on the wrong order and now a diner is choking outside. Now, all the chefs are waving their hands over their heads that it wasn't their screw up, the Manager is looking at the wait staff and developers to find someone to blame. The wait staff can't remember the details of the order they took 5 hours ago and then the customer mentioned they are allergic to nuts 15 minutes after that. The chefs say they cooked what is on the ticket...

So, clearly this "waterfall kitchen" can't work, why would it? The other problem with this kitchen is that by nature it will resist change. Because dishes are cooked at the same time, and the head chef inspects them at the same time, and waiters serve them at the same time, a change will wreck havoc.

But when can it work? That model would work when food is delivered. A catering service can't send each dish down on its own - obviously that won't work. There is only 2 trucks and they have two parties to cater to so all the food for one party needs to be delivered together to save delivery time, gas, etc. As for change, this model still works here because there are usually different varieties of food, and if you are a vegetarian or allergic to nuts the responsibility falls on your host to have something available for you - not on the caterer or their kitchen.

Anyway, I'll leave you with Chef Ramsay now and one my favorite episodes of Kitchen Nightmares - the case of the authentic Indian restaurant that served french fries and do-it-yourself curry...

Kitchen Nightmares - The Curry Lounge (sorry embed disabled for this video, and can't find one that can be embedded...) My favorite part starts at 5:40.

Sunday, January 10, 2010

Blast from the past - Team Athena

Back in 2005-2006 when I was finishing up my Software Engineering degree, we had to build an autonomous search and rescue robot using the Lego Mindstorms kit. Here is a video I found this morning of our robot "Athena" - the lean and mean machine - saving a poor, helpless, and yolk-less egg...

Sunday, January 03, 2010

Two Thousand & Ten

I'm going to go a little off track with what I'm going to post this time. I'm not going to talk about technology, Google Maps, web applications, software, photoshop, SEO, or how tos or any other "geeky" stuff. Its the start of a new year, a new decade, and hence I'm going to post about something different.

All in all 2009 was an interesting year, and good end to this decade. 2009 started out with a merger between the company I first joined - Pentura Solutions - after completing my masters and Thinknostic another company based out of Ottawa. Both companies have a very interesting past, they both are "re-births" of a previous company "Montage". I heard that name many times over the past 3 years, and today many of my colleagues were part of Montage in the past. Today this new company is known as ThinkWrap Solutions.

My start with Pentura was interesting. I was first interviewed in December 2005, and besides getting lost finding the office and arriving late, it went rather well I think. Unfortunately, at that time they were looking for someone to start right away, and I still had 6 months to go to finish my degree. Also, being an international student I couldn't just start working part-time without the necessary immigration papers. Fast forward to July 2007 and I completed a masters in computational engineering and thought of e-mailing Marc (the owner who interviewed me in 2005). Fortunately this time, they were hiring and I started that month. And that is my beginning with this great company; ThinkWrap. Its a great place to work, filled with talented people to work with and learn from. I think I'm one of the lucky ones who get a great job and a great place to start a career straight out of university. The funniest part is there is quite the McMaster alumni population at ThinkWrap - our ratio got a little diluted after the merger though. :)

2009 was also the year I finalized my immigration status in Canada and became a permanent resident. What does this mean for me? It means I have almost the same rights as a citizen, minus voting. I hear many Canadians don't vote so there you go. To me this means I don't need to apply for another study or work permit to stay in this great place called Canada. And in two years I get to apply for citizenship - then I'll vote for sure! I've been here since 2001 on numerous study and work permits. I really believe that over the years dealing with immigration, renewing papers, etc. I have gathered enough experience dealing with this to become just an average immigration lawyer - not that I would ever want to do it again, but my success rate is 100% : )
For 9 years I did it all myself, and haven't paid a penny to a lawyer to do it for me. Honestly, I never saw a reason why to, the documentation is there for you to read, the forms are online for you to get. Do it yourself.
However I do have to thank my student advisor at McMaster, my bosses at my jobs at McMaster, the guys and gals at Pentura and ThinkWrap for being there when I needed a signature or a letter, and my friends for maintaining my sanity. Without all these people, it wouldn't have been possible. Thankyou.

This decade is also an important one because I graduated high school in 2001, graduated from McMaster in 2006 and 2008. For that I have to thank my parents first for sending me half way across the world to study and supporting me throughout. I used to live in Abu Dhabi an hour or so away from Dubai, U.A.E - yes its a long way away from here. And second all my friends, without them I wouldn't have that many memories of this decade. Finally, as this decade is over, it means 2011 would be my 10yr highschool re-union.

Finally, this decade I also met this special somebody, 5 years ago. She bought me ice cream after a hiccup with my study permit. Now that I'm a permanent resident, she doesn't need to buy me ice cream anymore, but I'm still grateful I have her in my life. Thank you Carmen.

I'm a big Italian soccer fan, and when Italy is playing I'll be there cheering. This decade included the year Italy became the champs in the 2006 world cup. Last time they did that was the year before I was born - 82.

Y2K. Hey we survived what was hyped as doomsday. I think the only reason cell phones, phones, and even the internet hiccuped that night was because of all these people checking if we are still "online".

Here's to a great past decade, on to the next one. I just keep wondering, how will people refer to the past decade? The 20 zeros just does not sound cool enough.





Saturday, December 05, 2009

I would pay for personalized news delivered to my [insert gadget name here]

After reading a post by Kevin Kelleher on Gigaom titled "Does Google Event Understand What News Is" and Schmidt's opinion on the WSJ this week titled "How Google Can Help Newspapers" I came up with some comments on this.

I agree that Google is forcing a new business model down old medias' throats (such as the newspaper), and I agree with Kevin's comment that Murdoch is merely testing how much he can get away with in this 'new world'. However, Google did cave in and closed a 'loophole' in this free access to paid content on News Corp.
But I do differ on the point about Schmidt's fantasy '..suggests ignorance of what news actually is...'.

Schmidt's 'fantasy' is 3 fold:

Know who I am


Personalization starts with this. For any recommendation based service one must know who you are delivering this recommendation to, by definition a recommendation is personalized or customized.
Knowing "who I am" is not limited to knowing my name, or date of birth for example. It can include many other things that span where I was born, my current and past fields of work, where I went on vacation, my blog, my twitter, etc. Odds are "privacy" comes to your mind right now, but if you are a member of any online network you are already sharing more about yourself today, than you ever did in any other form in the past. Think about your Twitter account, Facebook profile, Amazon, Flickr, eBay, MySpace, Hi5, blog, RSS feeds you subscribe to, etc. etc. Why not put "your lack of privacy" to a good use? such as receiving better news.

Know what I like


You buy a newspaper today and you get a dozen different sections, all of which you have technically paid for but in reality you might not read them all. You get the main paper, the financial pages, sports, entertainment, comics, health/living.
I never read anything past the main page of the financial times, I never read the health/living pages, I never read non-football (or soccer as it is called in this part of the world) news - why should I pay for them? I rarely buy a newspaper, I read it online, why should the online version be modeled exactly like the paper version.

Kevin claims this will lead to tunnel vision, but on the other end of the spectrum I don't have time to digest 60 pages of news. I do see his point though, just because news about the Middle East is more often bad news than good, doesn't mean this fantasy gadget would block it from me. By knowing who I am personalizing my news would mean that news about the Middle East would bubble to the top of my reading list - maybe not your reading list.

I would also argue that the current model results in tunnel vision. Looking at the Toronto Start page today I see news about PM Harper's stop in China, Lessons of the Montreal Massacre, Michael Bryant, Pakistan troop surge, Russian nightclub, GM shakeup, violence and racial slurs in kid's hockey, etc.
Seems like tunnel vision to me. What I see is completely controller by the paper's editors, not me.

The only thing I clicked on that front page was the Montreal Massacre link, why? because I learned of it at McMaster were I studied.

Its not a lack of creativity, its a lack of courage and the ability to know when a business model has passed its final stretch. It was a good run. Move on.

Know what I have read


This one is the most important step, not because it decides what not to show me again, but vice versa. Knowing what I have read, helps identify what follow up stories I need to see. By reading about the real estate fiasco in Dubai the past few weeks, I would like to see what happens next.

Google can help newspapers


Yes, Google wants to do that, not because it wants to help them, but because it wants to shape them into a business that it can benefit more from. Asking them to share their 'treasure trove' i.e. access to users' data - for free - is absurd. But by investing in AdSense, the newspapers can gain access to this treasure. Why should Google give 'unrestricted access to the data of its users'? , they worked hard to get that, and provided a lot of free services to gain access to that treasured currency.

Murdoch Fantasies


Murdoch is a business mastermind, but I think he got this all upside down. People don't pay for content, and whether its on Google or on Bing I will get a link from Twitter that will point me to a 3rd party site that aggregates this news or some other way that bypasses the wall he is erecting around his content.
Can you really believe you don't need Google?
Ten years ago people paid for online content, only because it was a new way to deliver newspapers i.e. you didn't have to wait for it to be delivered, or end up with a stack of papers to throw out next to the shoe rack. People will pay for how content is delivered, but unfortunately delivering it via a browser is a decade old model. Today there are many other forms that people would pay for such as on your phone or Kindle. Its the same content though, and some might not want to pay for it. However, personalized news is yet another form, and personalized form delivered to your favorite portable gadget is yet another. Now that is something I would subscribe for or watch ads to read.

Saturday, October 17, 2009

Toronto Google Street View Time-Lapse

Its pretty exciting that Google Street View has finally launched across several Canadian cities.


What is more exciting, is finding myself standing outside the ThinkWrap Solutions office!


View Larger Map

Wednesday, October 07, 2009

Nicholas Zakas on "Writing maintainable JavaScript"

A great video on JavaScript best practices by Nicholas Zakas at Yahoo!


I think his best suggestions are:
  • don't put JS in CSS; its bad for performance as well
  • don't put CSS in JS; change styles by changing classes, and not actual styles.
  • don't put HTML in JS; this is rather tricky to avoid, but again if the markup changes, its really time consuming to change it in JS. I guess this one depends on whether you have a lot of markup that gets dynamically updated. One way I really like is how Dojo widgets go about this using HTML templates.
  • attach event handlers using JS, not within markup ex. "onclick". This is an odd one, but it really does make sense, what if the JS hasn't loaded when the click occurs?
  • event handlers shouldn't contain business and UI logic; makes a lot of sense since this way I could re-use my event handlers, and I can re-use my business / UI logic
  • don't compare against "null", compare against the type you actually want.
  • don't extend objects you don't own ex. Array and extending it with "indexOf" to fix a bug in IE. (Guilty as charged...)
  • least but not least, throw Errors within functions that can really go bad and you get a useless error like "undefined is undefined". At least now you can tell what went wrong.
Since I have not had enough time to blog about "My thoughts on technology..." I figure I can share videos on others' thoughts on web technology.

Monday, August 17, 2009

Why I use Twitter

I just read a post by Devin Coldewey about why he doesn't use Twitter. Of course everybody is entitled to their opinion on what they think about a product or service, hence this is my opinion on why Twitter has a place, adds value, and is as complete as a service really needs to be.

Until February/March of this year I think, I didn't use Twitter nor believe in why I would but I then decided to give it a fair try.

Why Tweets have value?

At first, 140 characters may seem too little space to express any single idea, but after using Twitter for a few months I came to realize I really don't need that much more space to express any single thought. Think of it as an elevator pitch. If I can't grab someone's attention in the first 140 characters what makes me think I can in 4 paragraphs?
Twitter in my opinion makes you a better writer and teaches you to express your ideas in the most efficient way possible.

When I scan my feed on my phone or at a computer I'm not really reading every word in the tweet. I quickly scan through and stop when a keyword catches my eye. With a blog I have more text to scan, plus how would I even find the blog post in the first place? And with the shear amount of content on the web, I appreciate the fact that I am harvesting what others found interesting. I might not be interested in everything they tweet, but I followed them for a reason - i.e. I found them more or less interested in the same topics I am.

Twitter is as complete as it needs to be

Sure, people want A+B+C, but nobody said Twitter has to be everything for everybody. Twitter does A really well and leave B and C for others to do just as good. I am a strong believe that if you can't get the basics right, then there is no point to attempt at providing B and C. And when you have the basics nailed, why ruin it by expanding scope? Twitter is not fundamental, but it is simple and gets the job done. I used to scan blogs I follow in the morning before heading to work, now I am exposed to a larger base of articles and tweets where I am able to quickly pick out what I am interested in reading at that point. The problem with following blogs is that most of the time you won't find something interesting on them every day, you will on Twitter.

Why Facebook status updates are nothing like Twitter feeds?

This will probably change after the recent acquisition of FriendFeed by Facebook, but until it does Facebook status updates is very different and is used for different reasons. I would argue that Facebook in fact is pure vanity, I agree Twitter is too to some degree (i.e who has the more followers? who has the coolest background, who is a connector? whose got more RTs? etc.). I wouldn't scan Facebook updates on a daily basis, I would scan Twitter updates though. Twitter is kind of like a dynamic browser and social bookmarking tool. The similarity that I have seen between both is that people are using Facebook to share funny or interesting videos in my case. If I feel like watching a funny video, I would check what has been shared on Facebook.
Another major difference is that on Facebook your interests may not be aligned with your friends as much as they are with the people you follow on Twitter. For example, I got an iPhone a month ago and would like to know what applications people recommend I download. I can easily follow 20 people that talk about the iPhone and find out, how do I find such people on Facebook? and after I do I need to befriend them to be able to see their updates.

Twitter isn't supposed to replace anything, but it definitely adds a lot to certain people - and for me at least it replaced reading online news. Facebook's feed as this stage is nowhere near a competitor to Twitter. Their uses overlap in some areas but in my opinion are disjoint in most areas. Certain things are better shared on Facebook, ex. a picture of friends at your birthday party, other things are better shared on Twitter ex. a link to a specific topic that interests a fraction of your Facebook network, but much more on your Twitter network.

Twitter as a news aggregator

Twitter is a great aggregator, and works great aggregating news which explains why traditional media hopped on it. I didn't learn about Michael Jackson's death on Facebook, nor did I learn about it on CNN, I read it on Twitter. I confirmed it on CNN though and then on Facebook I saw friends' recollections of his greatest moments. On the Iran fiasco, I learned that through Twitter as well, unfortunately that weekend the media dropped the ball and I couldn't confirm any of it, but the fact that so many people were 'reporting' on it in real-time was enough to give it credibility.

Twitter became pure vanity

One thing that disappointed me about Twitter is how fast it got flooded with "experts" and "gurus", there is an expert on every imaginable topic on Twitter - obviously not all legit or credible sources of information. But I am guilty of this as well, I described myself as a "Google Maps Guru".
For me at least, I don't follow many people who just promote themselves i.e. the whole "I just ate an apple....yum" crowd - unless I know them in person or they usually share stuff that interests me. But this is the great thing about its simplicity, if I want to do some sort of social experiment about how often people post when eating an apple, Twitter would be my source for that info.

My daily dosage of tweets come from other Google maps developers, the different Google products teams, friends, legit SEO experts, news aggregators, the media and some miscellaneous people that I found interesting via RTs, FollowFridays or followers.

I agree, our attention is spread so thin these days, but because of that, if it weren't for Twitter's 140 characters could it have worked at all?