I recently bought a couple of new software development books from Amazon, including The Passionate Programmer, Programming Android, The Busy Coder’s Guide to Advanced Android Development, and The Nomadic Developer. Of these, the only book I’ve finished so far has been The Nomadic Developer, so I thought I’d write up a quick book review on the blog.
Why I bought this book
As an indie Android app developer, I have worked on a couple of apps that are selling in the Android Market, namely iSyncr WiFi and Cheetah Sync, as a software contractor for JRT Studio. I am very proud of these apps, and I enjoy adding new features and fixing bugs in them as they arise.
However, I get paid from these apps only when customers buy them, and while I could spend 40+ hours a week adding new features and fixing bugs, this won’t necessarily result in a dramatic increase in the number of people who buy these apps. In economic terms, according to the supply curve of labor, in general an increase in expected wages will tend to cause workers such as myself to supply more labor, but if the demand for the app remains relatively constant, my wages are fixed and so is my desire to trade off leisure time for labor time =)
What am I getting at? Basically, this year I’m looking to get into some paid, hourly contract / consulting work to supplement my indie app income, so that I could have some more control over the correlation between working more hours and earning more income. So I bought this book to see if it had any insights into the world of contracting as a “nomadic developer.”
Things I learned from this book
It’s embarrassing to admit, but before I bought this book I was a little bit confused about the difference between contracting and consulting. Before I started working on Android apps, I was employed full-time as a W-2 employee at National Instruments and then Microsoft, so I was painfully ignorant about the “other” methods of paid software development.
So, first and foremost, I learned that contracting typically means working on short-term software development projects as a “software mercenary” until the job is complete, and then you go back to doing whatever you were doing before. Whereas consulting typically means joining a consulting firm where you are expected to be work on projects to which you are assigned and you are expected to bill hours without spending too much time “on the bench.” Also, typically the scope of a software consultant goes much further beyond simply implementing software according to provided specifications – it often typically requires business acumen, people skills, and advising.
Because this book focuses exclusively on joining a consulting firm, I didn’t learn anything about what software contracting looks like or how to thrive in that environment, but I did learn a lot about what it’s like to work at a consulting firm, should I ever be interested in doing that in the future.
Things I didn’t like about this book
As I mentioned before, I initially bought this book because I thought it might have some insights into software contracting, so I didn’t realize when I purchased it that it was first and foremost a guide to surviving and thriving as a consultant working for a consulting firm. That was my mistake when I bought the book, but it meant that many of the chapters seemed completely irrelevant to my interests.
For example the chapter called “The Seven Deadly Firms” lays out 7 types of consulting firm personalities that are worth avoiding if possible when interviewing for a consulting job, and the chapter explains how you can identify these firms and avoid them. While somewhat interesting, it was pretty irrelevant to me. This also applies to “How Technology Consulting Firms Work”, which focused mostly on how to deal with the account executive, engagement manager, recruiter, consulting manager, etc., and the “Your Career Path” chapter, which focuses mostly on career paths inside of IT consulting.
Things I liked about this book
Now that I’ve got my complaints out of the way, I’ll focus on the things I did like about this book. There’s actually a lot of interesting insight in this book that’s really applicable to any software developer, not just consultants. Chapter 4, “Ten Unstated Traits That Technology Consulting Firms Look For”, is really a recipe for any software developer looking to become a valuable and well-known developer in their tech community. For example:
- Be good at being interviewed for jobs
- Always be learning
- Be active in your technical community / develop your network
- Work on your writing skills
Chapters 6 and 7, “Surviving” and “Thriving” are full of excellent advice for any developer as well, especially the advice to do what you enjoy, and that billing work = good work. After all, developers who create profit for a company don’t get fired.
Lastly, chapter 9, “Avoiding Career-Limiting Moves”, is a little bit silly, since it’s themed on the seven deadly sins, but it does offer some good (if obvious) advice about the traps that software developers often get themselves into.
Overall, I think that this book has a lot of insights for any software developer, especially those interested in becoming a software consultant, but if you’re not interested in doing consulting at a consulting firm then maybe this isn’t quite the right book for you. Many of the same insights and advice for surviving and thriving as a software developer are also in the similar book The Passionate Programmer, which is approximately half the cost and you won’t waste any time trying to read chapters that don’t apply to you =)