Several months ago, as I was starting to play with the Ruby programming language just to see what all the hype was about, I found out that Ruby guru (and jazz musician) Chad Fowler lived here in Louisville. So of course, because I have this obsession with picking the brains of smart people, I sent him an email to see if he wanted to meet for a beer. Chad is somewhat of a polymath, so I had a good time and I learned a lot. (like the fact that Chad was in the process of moving away from Louisville for a Ruby job.)
I found out that Chad had spent some time in India, and had written a book, called My Job Went to India (And All I Got Was This Lousy Book). He sent me a copy and I just finished reading it. So here are my thoughts.
I really like that Chad doesn't pull any punches. Near the beginning of the book, he writes:
It's easy to demonize Big Money America or criticize the government for not protecting us. Or, for the truly adventurous of imagination, it's easy to believe that Indians have developed some sinister plot to maliciously rob_business us of our comforts. However, even if there is an ounce of truth in these sentiments, it is outweighed by the pounds of mediocrity underwhich our Western industry has languished for the last several years. It's understandable that forlorn programmers would dump their personal tragedies at the feet of anonymous companies and governing bodies. It's somehow comforting to drown one's fear or despair in a healthy helping of anger and strategically directed blame. And to make matters worse, media sensationalists such as Lou Dobbs prey on our fears, hyping up the problemand sounding a rallying cry whose primary purpose is to get better ratings. But ultimately, blaming corporations is a dead-end road. We can't change corporate America. And though we have democracy on our side, none of us can single-handedly steer this massive ship of a country. So though comforting in times of fear and uncertainty, this game of blamethe-big-guy is fruitless. We have no one to blame but ourselves.
A major part of his argument is that American programmers have become fat, lazy, and slow, and have spent years celebrating mediocrity. (I would say this applies outside of the programming world as well).
So what is a programmer to do? Chad says approach yourself like a business.
1. Choose your market. Pick the technologies and business domains you focus on consciously and deliberately. How do you balance risk and reward? How do supply and demand factor into the decision?
2. Invest in your product. Your knowledge and skills are the cornerstone of your product. Properly investing in them is a critical part of making yourself marketable. Simply knowing how to program in Visual Basic isn't good enough anymore. What other skills might you need in the new economy? How can you compete with both your offshore and onshore rivals?
3. Execute. Simply having employees with a strong set of skills doesn't pay off for a company. The employees have to deliver. How do you keep up the delivery pace without driving yourself into the dirt? How do you know you're delivering the right value for the company?
4. Market! The best product in history won't get purchased if nobody knows it exists. How do you get find recognition in both your company and the industry as a whole without "sucking up"?
Not only that, but each section of the book has action points – real things you can do to implement these ideas.
Chad praises generalists, because their "skill sets transcend technology platforms." I could say the same thing about generalists in business. He also praises specialists, noting that we normally don't use the term properly.
Too many of us seem to believe that specializing in something simply means you don't know about other things. I could, for example, call my mother a Windows specialist, because she has never used Linux or OS X.
I could go on and on about this book, because Chad looks at the world very much the way I do. He advises you to hang out with people much smarter than you are (don't most of us try to do the opposite?). He advises you to mentor people (because you learn soooo much by teaching). And of course, he talks about loving what you do.
When my wife and I moved to Bangalore, I was expecting to find likeminded technologists with a passion for learning. I was expecting a vibrant after-work life of user group meetings and deep, philosophical
discussions on software development methodologies and techniques. I was expecting to find India's Silicon Valley bursting at its seams with a an overlow of artsians, enthusiastic in the pursuit of the great craft of software
What I found were a whole lot of people who were picking up a paycheck and a few incredibly passionate craftspeople.
Just like back home.
And finally, Chad focuses on execution, advising programmers to track and measure their accomplishments, so that they do what they think they are doing.
So who should read this book? If you are a programmer, or a technologist in general, pick it up. I think you will love it.
If you are a business person that has even the slightest bit of tech understanding, pick it up. I think you will love it too. Almost everything Chad says can be matched up with any area of business. It's not too technical, and you will find yourself nodding and saying "yes, exactly" outloud, repeatedly.
If you don't at a minimum know that C++ and Java are two different programming languages, and those words scare you, you may want to pass.
Overalll I would say that this book is excellent, and Chad has the right combination of intelligence, skills, and experiences to bring this topic to life. Pick up a copy as a Christmas gift for the programmer you know. And Chad, if you read this, I hope you are having fun at your new job.