The myth of ideas

I’ve come to despise merely talking about ideas. Don’t get me wrong, ideas are essential to every meaningful thing that has ever graced humanity. But that’s like saying that the sun is the reason for to every significant thing that has ever happened in the history of mankind. No sun, no grass, no cow, no beef burger, no man doing something awesome.

People who are obsessed with ideation are like people who spend all their days staring at the sun and talking about the sun; only, ideas are far more enticing. The predominant hook that drags you along is you’ll is the word “potential”.

Potential, potential, potential. If your social group is anything like mine, you’ll be served a gratituous dose of Steve Jobbery, Mark Zuckerish and Googology on how an idea made them successful. If you’re a little more advanced in your years, you’ll have the likes of the 3M post-it and Kodak as references.

The enticement of ideas comes from simple math. Outcome minus cost equals gain. Result divided by effort equals degree of success. The again, divided by 0 is infinity. So apparent “potential” that comes from an idea is typically made out to be unreasonably and outrageously huge. Think of the phrase “it all started with an idea” for a moment, the way most people read it is “they started with nothing, and now they’re multi-million-billion dollar, userbase, bla bla bla…”. Dad always said that if it’s too good to be true, it probably is. He was referring to the oldest trick in the con-man’s manual, and he was teaching his kids not to be greedy and gullible.

Here’s what I think of the hyperbole of ideation.

It’s almost as though all the successful enterprises got together and conspired to hide the secret to their success. Everyone agreed never to tell of the blood, sweat, late nights, despair and agony it took to get there. Instead, they’ll all tell the same tale of how one fateful morning, an idea dropped in their mind, how fragile it was, how they almost missed it but a chain of fateful events caused them to revisit it; and that is how they became successful. Genius: because it will occupy the minds of every sucker in suspended disbelief, while the gap between watchers and mover-shakers widens.

It’s not like we don’t already know what it takes: one part inspiration, ninty-nine parts perspiration, make something people want, spend less than you get. But none of that is exciting; doesn’t sound “innovative” enough, because we want a magic pill served up on a silver platter, and a good story to tell our friends.

Well keep thinking that while the rest of us take our one part idea and mix it in with ninety-nine boring execution parts. You’ll be one less person standing in our way.

My TDD addiction

After over two months of deliberately attempting to adhere to the practice of Test-driven development (TDD), I started working on a sizable chunk of untested code. Here are some of my reflections on the contrast between tested and untested code.

TDD is an arduous process. When you’re coding up a solution, not only do you need to figure out what code needs to do, you are also forced to componentize the solution in a way that is unit testable, if only to make the test writing easier. This is especially annoying when you’re working on procedural functionality that doesn’t decompose naturally. This forced decomposition has its benefits, though, as it “encourages” one to produce simpler and more understandable code.

One of the other luxuries afforded by having tests is how easy it is to hand over code from one developer to the next. The test suite provides a very quick and comprehensive way to verify that existing functionality is not broken without the new developer having to be across the board with the codebase. Speaking of verifying functionality, the scaffolding provided by our test suite has allowed us to execute and complete major code refactorings in very little time.

But back to my experience with the untested piece of code. I couldn’t help feeling a sense of trepidation as I worked my way through. Maybe it was because it was unfamiliar territory for me. Perhaps it was because there was no way of me verifying that I hadn’t stuffed anything up without first fully understanding what it does.

But one thing is for sure, the last two odd months have made me very dependent on tests. Addicted even; which makes me wonder if that is a good thing.

Machine Jobs: career advice from a software developer

This Yesterday morning, I got out a little earlier than usual – combination of an early night before, and me wanting to beat the weather to work. It was so gloomy, the skies threatened to burst and pour down at any moment.

Coming up to a quiet traffic-lit intersection, it suddenly dawned upon me that once upon a time, a human being had to perform the very manual task of directing traffic at an intersection. Given that I was commuting to work, I couldn’t help but think of Mr. Expert Traffic Conductor waking up one fateful morning in 1868 to find that he wouldn’t be going to work that day because some machine with light bulbs had just replaced him.

That made me think of other such jobs were replaced such a long time ago, we forget that a human once had to devote his or her life to perform the task, day in, day out. One example is the elevator operator. A another one, the telephone operator.

More currently, I’m inclined to believe the reason a good portion of the human workforce still have their jobs isn’t because machines can’t yet perform them, but because the economics still swing in favour of hiring a human being over building and employing a machine equivalent. ‘Still’ being the operative word.

This is why it puzzles me when someone aspires to be more machine-like with their work.

Granted, I’m not unfamiliar with the fact that the more work one is able to perform per unit time generally translates into higher productivity which, in most cases, increases one’s income. Also granted, I’m acutely aware that every higher-up dreams of commanding a cohort of machine-like human beings; so for an underling, the contortion one’s humanity often presents itself as a wise career move, until you realize you’re just a stop-gap while the real machines creep within range of the corporate budget.

Still, the days of such “machineable” careers are severely numbered. You can trust me on that because bringing such a reality to past is implied in my job description as a software developer.

On the surface, it says “make better software to empower human beings”. What it really means is “make software so that we don’t need to pay that guy to sit there all day and click his mouse”. True story.

So if one is to derive any stone cold career advice out of this, it is to steer clear of the competition.

Instead of aspiring to be more machine-like, seek to be less. Spend time cultivating the things that are uniquely human – traits like creativity, beauty, vision, intelligence, compassion, inspiration. While this almost precludes you from scoring a mindless, well-paying, short-term job, at very least you won’t be out of one when a machine does better.

Why I’m not running Ubuntu yet

I’ve been waiting for many years now to be able to run Ubuntu on my primary machine which is usually a laptop. My previous laptop was a Lifebook T5010. My current one, a Thinkpad X201.

As part of the waiting process, I’d set aside a small partition to install the latest release of Ubuntu, and try to use it for a few days. My most recent endeavour saw me booting up a copy of Ubuntu 11.10.
And here are the reasons why it’s still not ready for me, and why Windows 7 is still my best option.

‘Suspend’ is unpredictable It’s been the case a few times now, where I’d quickly close the lid and slide my laptop into my bag to get off the train or something. Only to find later on, the machine still running, and the fan going full blast to keep the temperature under control amidst the thick padding.

Monitor switching I’ve got a docking station with 2 external monitors set up at home. When I dock the machine, I expect the desktop to quickly detect that it has docked, the laptop lid is still closed, and there are two external monitors that it should use for display. Same thing for undocking. It should figure out that the monitors have disappeared, and it’s time to switch back to the laptop screen.

(nice to have, but not deal breaker) Evernote on Linux, please.

And that really is why I’m still stuck with bleepin’ Windows 7, because it works so well with the hardware. Not a day goes by where I dream of a real shell and proper virtual desktops.

No, and I’m not getting a mac.

Apprenticeship and making it in digital media

The practice of apprenticeship has become something of a lost art in the digital media industry.

It seems every other digital media graduate wants to start their own thing, go the freelance route, and expect work to come knocking on their doors. The prospect of such a trajectory is not completely unfounded. From a cost perspective, it is relatively easy to set up shop, and start doing business. But the reality is, where barrier of entry is low, many other invisible forces come into play, leaving only the super talented, hardworking and lucky ones really making it right off the bat. For everyone else (including yours truly), It. Is (was). Tough.

To gain any headway into the industry, it almost requires putting oneself out there and asking to work for very little remuneration, in exchange for the opportunity for some experience. Sadly, as far as I’ve observed, there have been two ways this process has been bastardized.

First, opportunistic, conniving, cheap-ass individuals looking for free work under the pretense of “you could make it your portfolio piece”. For a plethora of reasons, you’ll rarely get a good portfolio piece out of such an engagement, and you’ll learn nothing that directly enriches the practice of your craft.

Second, agencies who s/apprentice/cheap labour/g without providing any real guidance and opportunity for growth.

There’s a lot to be said about how convoluted the industry is, as is every other industry, but when one is dealt cards, it is still up to one to play the best hands possible.

One of the better hands one could play, is to eat humble pie, seek out a well respected digital craftsman that one deeply admires, and offer to work for him or her in exchange for invaluable on-the-job experiences. Heck, offer money for the opportunity to work. I reckon it is a worthwhile investment that will pay for itself many times over.