Stuck in Code
pindancing.blogspot.com
pindancing.blogspot.com
These days I would just shrug and move on, but I remember I was very irritated with someone assuming that everyone wants to be a manager and that the failure to "move on from coding" was some kind of failure.
PostScript: the person I had the conversation with("Vivek" in the post) is "Director of Innovation" at an "Offshore Development Centre" here in Bangalore these days and he is leading a "strategic initiative" to "increase corporate innovation" (In private conversation he freely admits that he is just "pushing paper and attending meetings" and that his employer is hopelessly non-innovative and bureaucratic) while I am still coding in Haskell/C all day, working mostly from home, learning new things and working with smart people.
What is worse (from his pov) I still make more money than him which drives him a bit crazy but he consoles himself with "you are a unique kind of crazy guy". We have our differences of opinion but we are still friends (I think ;-) )
The value that is generated by different roles in software is generally measured by the amount of money that the market sets for it. In India, in general the market value of a developer is still lot lesser than the market value of a "manager", mostly due to the low value work done in India by the outsourcing companies. I am sure there are exceptions, but that is the general trend. Your assertion that you make more money than the "manager" indicates that you are an exception. I wouldn't fault the manager for a making an assumption based on the general trend though.
I don't think the perception of India as a land of (by and large) cheap semi competent (at best) devs with broken English will go away as long as outsourcing is a reality (and its champions, like Infosys, TCS, Cognizant etc are the folks with the most PR).
But that is all right really, at least as far as I am concerned. All the really sharp devs I know here in Bangalore have plenty of interesting and satisfying work to choose from and could move to the USA (or wherever) whenever they want. They just choose not to, which is a hard concept for people who'd kill to get on the H1B/Green Card/USA citizenship treadmill to wrap their heads around.
It is only the folks with somewhat "generic" skillsets that the bodyshoppers want, and with no unique knowledge or skill, who are really "stuck" in the outsourcing jobs and (in some cases) desperate to move on to some unarticulated "better job". And in most such cases the "better job" is management. Why waste time hacking on some nightmare enterprise legacy codebase no one in the West wants to work on anymore when you can politick and attend meetings and send meaningless emails for thrice the money? If I were working in some soulless "offshore development centre" I'd be a manager too. It is the lesser evil.
Even outside the bodyshopping fraternity there are a lot of people here who talk a lot about the latest kool aid fads - agile, lean startups, functional programming,what have you, but very few people who can actually get stuff done or code up something interesting or value providing. The folks who can are swimming in opportunity.
As Alex Feinberg (strlen here on HN) commented here the other day "Specialized knowledge is how you make your way out of the enterprise/web ghetto and onto much more fascinating problems". The "enterprise/web ghetto" is where all the outsourcing critters swim and there are plenty of warm bodies competing for those jobs. No Indian dev with any kind of specialized knowledge lacks for opportunity.
My personal belief is that if you have access to the internet and can afford a cheap laptop to install Linux on, your only limits on achievement (in software) are those you impose on yourself. And many Indian devs do impose many social limitations on themselves ("I want a 'good' arranged marriage" heh heh) which are fulfilled in dead end jobs and not in the riskier but more interesting opportunities.
There is nothing really stopping a guy in India from building good software. Sure you have to work harder/smarter if you are not in Silicon Valley/don't have an American passport/whatever but so what? The world was never "fair" in an absolute sense.
(I hope that wasn't too harsh but imho many Indian devs whine too much about lack of opportunity and don't code/learn enough).
I'm stuck in the enterprise rut at the moment, but I have personal projects on the side.
The interviewer said something like: "What are your prospects for the future?"
My response was something along the lines of coding until I die, since I love coding.
His response to my answer still baffles me to this day: "Nah, you will end up as a manager sooner or later." He said this with such a conviction, as if it was the ultimate goal of being a code monkey.
Thanks but no thanks, I think I will keep coding.
At ThoughtWorks, when I worked there, we had an inside joke. Every technical person would call himself "Just a Developer" and there weren't any hierarchies among developers except ones of peer acknowledged competence
"The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds castles in the air, from air, creating by exertion of the imagination. […] Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. […] The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be." -- Fred Brooks
Frighteningly, quite a number of people emerge from CS degrees with the idea that they need to absolutely minimize the time they spend programming and structure their careers to rise into management as quickly as possible.
This is sometimes carried to ridiculous extremes. I have seen a situation where a proto-manager type with specific experience with a given product delegated a critical, time-sensitive bug fix to a 10x less effective person (with very little specific expertise in the area). This was done largely in order so that the proto-manager didn't get accused of being an 'individual contributor'. Needless to say it didn't go well for anyone involved: company, customer or either of the people involved.
First off, I think it's very interesting that the blogger characterized the assumption of promotion to be a very Indian/Asian thing, because it's absolutely something that, in America, is considered a very American thing! The whole "Peter Principle" concept of being "promoted to incompetence" is lamentably American, and it certainly shows itself in things like The Office, which began in the UK, too.
The part about being "just a developer" at ThoughtWorks also seems very, very similar to the corporate culture at W. L. Gore and Associates[1], which Malcolm Gladwell discussed in The Tipping Point. At W. L. Gore, everyone is assigned the title of "Associate," and that's it. Same deal!
The developer/manager transition has always fascinated and confused me. I feel like the term "manager" is overloaded. To the extent that a manager's responsibilities are to shield his team from corporate politics, to make sure the code they're working on is solving the right problem, and to keep the dev team happy, I would say that going from developer to manager should not be a vertical move, but a lateral one. Writing code and managing a team of coders have nothing to do with each other.
On the other hand, the managerial position that I would describe as lead developer feels like a more appropriate "next step." A lead developer might not write much code (which is similar to a "manager"), and a lead developer might be called upon to evaluate and discuss business requirements (which is similar to a "manager"), but his concern is the technical repercussions of the decisions made in that space, not the political ones.
I'm sure that many people with far more experience have written much clearer explanations of this pattern, but it's what I have seen so far.
I've worked in the United States :-) (I am the blogger). Believe you me India takes Office politics to a whole new level that Americans can only dream of :-).
Partly this comes from the fact that the Indian managers of "offshore dev centres" don't have any real power to make decisions(as compared to their American counterparts). Besides, society is far more hierarchical than in America, which reflects in the work place. Etc etc but office politics is really bad in India. As an example one of my (Indian) friends recently moved back from Google Bangalore to Mountain View because he couldn't stand the level of politicking here.
This days the "technical managers" are needed less (of course there are exceptions to this rule) and less. You need a technical lead that can influence projects, make decisions based on experience, and act as a link between the developers and businessmen. Nowadays, I don't code all day as I also have some managerial responsibilities, but the bulk (say 80% ~ 90% of the time) I'm stuck in Vim pushing lines of code. I find that 10% ~ 20% of my time can be devoted to actual managing and it's more than enough.
Tip for the businessmen: Don't assume you need a bunch of managers to steer your project into blissful completion, you might very well get your best and most respected senior developer and ask him to act as a link between the task-force and the executives. You keep your best men coding or administering technology, keeping their morale high (don't underestimate having your cake and eating it too), and save money on hiring a paper pusher who is probably going to be a nuisance to the ecosystem.
Either that, or you have to go into technical pre-sales, but that's a different story. In the consulting/outsourcing case, anyway, it's about what the company can get its clients to pay for, and many just don't know any better.
I hope one day people will dread being called into their manager's office to be told that "I'm sorry, but you just can't code; you'll have to take up an administrative position".
You wouldn't, but look at the majority of Big Companies out there. If you see someone still coding at 50, 1% might be doing because they love it and are great it it, but the other 99% are doing it because that's the furthest they could get. Sad, but true.
I wonder if the perception is true in many cultures.
People think cleaning is menial work, that gardening is what you do when you're too dumb for college, and that secretaries are braindead.
Sometimes, yeah, it's true, but who knows what is locked up in those personalities and minds?