The Pragmatic Programmers Interviewed
jpkunst writes "An interesting interview at the O'Reilly Network with Andy Hunt and Dave Thomas, authors of The Pragmatic Programmer, who recently started their own publishing company. Many topics are covered. Dave has this to say about outsourcing: 'To get job security, developers need to position themselves as highly effective business-value generators, working with the rest of the company to solve common goals. If you sit in your cube waiting for a spec to be thrown over the wall, then you may be in for a wait -- that spec might be in an envelope on its way to Bangalore'"
It's inspirational to realize that software consultants actually do what they do for money.
"Don't repeat yourself"
Durr.
"Think about the kind of work that can be effectively outsourced (where "effectively" is used in the context of some manager's opinion). Can they ship stuff offshore that can be specified down to some fine level of detail? Yup! Can they send repetitive, rule-based, highly constrained stuff overseas? You bet! The stuff that will stay is the stuff that involves more intuition, and more interaction. To get job security, developers need to position themselves as highly effective business-value generators, working with the rest of the company to solve common goals. If you sit in your cube waiting for a spec to be thrown over the wall, then you may be in for a wait -- that spec might be in an envelope on its way to Bangalore."
It's fun maintaining code from India. It's also fun to tell your customers and your boss what the program should do. You should try both sometime.
"Explain how agile processes can reduce risk. Explain how lightweight approaches can earn value faster. And explain how they should outsource the mundane stuff, and leave their talented pool of in-house developers free to work on the next revolutionary change to the company's business."
These are the same people that advocate nightly builds and all that other crap that just gets in the way. All you have to do to make a software project successful is have at least two people who don't suck at life working on it, and have them delegate the boring work to the people who thought going into computers would make them rich - all consultants do is take common sense and dress it up so it sounds good to management, and in turn, management gives them a shitload of money. I've never heard of a software house suddenly turning around and not sucking because "we hired a consultant, and his strategy was fricking awesome, and suddenly we were making products that like didn't suck, and it was pretty cool." Managers only hire consulants if their teams aren't making the numbers they should, so they can therefore justify the lower productivitivy of their teams by saying that they're "adapting to the new vision/strategy/paradigm," and that's usually enough to buy them a year of suckage until upper management wises up - and knowing upper management, that rarely ever happens.
Performance really doesn't play an issue in outshoring to India - if your job's so simple a monkey could do it, your job's going to get outsourced, regardless of your performance. You can't really match cost efficiency of someone who lives in a country with 1/10 the per capita income. All you have to do is pray for the language barrier and hope the companies who are employing offshoring all get burned when they need to maintain the code - I think it's a fad, but I've been wrong before.
We hired some chimps from a huge international consultancy. The document they produced is so piss-poor we are on our sixth draft. In the time this has taken (2 months) with two very expensive consultants working full time and two in-house developers checking their work part-time, we have
The threat of offshoring has been massively over stated. More and more companies are seeing that this process (send the requirement to India) is simply not cost-effective. It may take some time for all PHBs to see this but it will happen. That's business.
There is (hopefully) a happy ending. The outsource providers tendering for this gig are charging in the region of 700UKP/day (about $1200/day) for a Java programmer with about 3 years experience (I'm not making this up). Most say that they can cut that cost by about a third if we offshored. Well, gee, that's still more expensive than hiring some local contractor with 7 years experience who can sit down and talk to the business people. We're getting "buy-in" from management to save money and not offshore. We'll have a decision soon and it looks good.
Agile methodologies will be the saviour of the Western programmer.
--- "We've always been at war with Eastasia."
I got hired by a large software company to perf/stress test the app that was a mix of windows app and a webapp (very complex DHTML, custom ActiveX controls in some places, can run in online or offline mode, the latter is integrated with Outlook).
So I was a low level guy, and a new guy on the block to boot. I've done a quick evaluation of available tools and the only thing that could accomplish the task the way I liked it (and the way it made sense) was Mercury Interactive Load Runner. The only problem was - it was $150K for a license, and nobody was going to spend this kind of money on performance.
So after whining to the management for a while, I sat down and wrote my own replacement for this $150K tool that did all I wanted.
You know what happened next? You've guessed right, I got attacked by the management, Dev manager in fact (I hope he burns in hell when he dies). And dev manager and product unit manager were pals, so no matter what I did, the Dev manager would have his smalltalk with PUM and bring whatever I was doing to a grinding halt.
I've done this thing anyway (weekends, overtime) and shipped two versions of this god damn product with it. Dev manager eventually got fired for not being careful enough with his language when talking to customers.
My career got screwed, though. I only got one promotion on that team despite busting my ass REAL hard and delivering world-class "business value".
The moral of the story - you either fuck the product and do what the management says, or you fuck the management and yourself and do the right thing. There's no third way out. The way I see it, it's always better to get fired for doing something than for doing nothing.