I just finished one of the Pragmatic Programmer's endorsed books: My JOB Went To India (and all I got was this lousy book). My good friend Andrew recommended it to me. I'm going to give you, my loving audience, a quick book review.
Some Background Info
The author, Chad Fowler, is a veteran software engineer and manager who was sent to Bangalore, India to help build the foundation of an offshore development center for his company. I won't go into all of the details, but he interviews a whole bunch of Indian programmers and makes a lot of interesting observations about the software development industry in India. Then, based on those observations (among other insights), he provides 52 ways us dudes/dudettes here in the U.S. can attain leverage over our offshore competitors.
My Overall Opinion
You can pretty much flip to any page in this book, start reading, and get sucked right in. The focus of the book strays away from the whole overseas competition thing at about halfway and Fowler just details out a bunch of really insightful tips that any software developer can utilize. Although, if you want to learn some ways to keep your current job (especially if you work at a larger company), make it more satisfying, and perhaps move up in the ranks, then his advice will apply directly to you.
Favored Chapter: On Maintenance Programming!
The chapter I enjoyed most was about learning to love maintenance programming. Fowler claims that maintenance work is a blessing in disguise because, often times, maintenance programmers have the ability to show off their talents in a variety of ways. For instance, you can: slip in cool UI enhancements, clean up/remove old code, upgrade the project's code platform to the latest version, and improve performance. On the other hand, if you're working on a brand-spanking-new project, management will probably be much more scrupulous with the time and money they invest into the new project--and they'll probably keep a very watchful eye on you, the developer. A passage from the chapter...
"If I give you $1,000 and ask you to go get me a cup of coffee, I'm going to be very unhappy if you return with 1,000 less dollars and no cup of coffee. I'm going to be unhappy if you bring me plenty of really nice coffee, but it takes you two hours. If I give you $0 and ask you to go get me a cup of coffee, I'll be extremely appreciative if you actually return with the coffee, and I'll be understanding if you don't. Project work is like the first scenario. Maintenance is like the second."
Maintenance work is tantamount to my current job, where I've taken on the maintenaning/enhancing of 3 large applications. At first I didn't like it, but I've really grown to enjoy it. For my applications, I've been able to clean up their codebases significantly , upgrade them to the latest versions of their programming platforms (one is asp.net and the other java), and make the average user experience far, far better; it's a pretty satisfying deal for everyone.
I could go about what a good read this book was, but I'm going to cut myself off. If you want to hear more, go read it yourself!