REVIEW: The Career Programmer:
Guerilla Tactics for an Imperfect World

By Peter A. Bromberg, Ph.D.

Peter Bromberg  

When I first picked up The Career Programmer: Guerilla Tactics for an Imperfect World by Christopher Duncan, my initial thoughts went along the lines of "Wait a minute, this isn't even a book about programming!". However, after reading the foreword by respected Wintellect guru John Robbins (author of the insightful Bugslayer series on MSDN Magazine), I began to change my mind.

As Robbins so succinctly puts it, "... We'd love to say that we spend our days coding, but we really don't. Instead we spend much of it doing all the other stuff associated with getting our software released, like sitting in meetings and wondering what planet the marketing people came from."

If you've had anything more than one year as a developer in the software industry, then you are already painfully aware of deadlines that are declared in a most arbitrary fashion, managers that actually believe you get 8 hours of coding from a developer each day (and who base their sometimes ludicrous promises to clients on this), who don't really know much about development process models (not the least of which is what a testing and QA department is), and who cave in to time constraints by allowing the shipping of untested beta - level software based on their already unrealistic (sometimes naiively so) promises to the client. You've experienced the inevitable miscommunication and mismanagement of client expectations about the product, and you've certainly been called in to the inevitable "emergency meeting" when everything starts to blow up and you're told you have to work 70 hour weeks to "fix it".

Not only does this remarkable book go over, in gory detail, every one of these issues (and many more), but it does so with an experienced view "from the trenches" designed to empower us, the lowly developers, with the ammunition and knowledge we need to deal with these issues effectively, to become better software architects for it, and most importantly, to be able to defend our turf and our jobs.

In The Career Programmer, Duncan steps through the entire sequence in the development process, from the decision to create a new product to the end of the project. He dissects the process, explaining how the individual programmer or project manager can work within the existing system to solve specific problems and regain control of the process. Chris provides proven hands-on solutions that are designed to work when confronted with the politics of the business environment. He addresses Issues from both the programmer's and project manager's point of view and gives us a perspective - from large-scale teams right down to single developer projects. Everyone knows that management will never hand over the reins and allow a completely new and unfamiliar approach to be instituted. Building on this, Duncan shows us how to build on small, incremental successes that not only solve the problems at hand, but also work towards a gradual reworking of the development process by showing management a stream of results to which they can relate. For the individual programmer or project manager the end result is less overtime, less stress, better quality software and a more satisfying career. I found a number of useful points and strategies in my first reading of this books that will enable me to immediately focus on real issues at the company where I work, and offer constructive ways to effect change and improvement. Not that my company's development process is bad - it's much more mature than others I've worked at. But every company's process can be improved, and its up to both the managers and the developers to take on this responsibility and meet the challenges.

Christopher Duncan is a veteran contract programmer with more than a decade of experience in both small companies and large corporate environments, such as AT&T, Equifax, and Bell South. Irreverent, unconventional, and occasionally controversial, his focus has always been less on the academic and more on simply delivering the goods, breaking any rules that happen to be inconvenient. His last chapter, "Controlling Your Destiny", offers sage advice about job searching, goal-setting, and the "roles" associated with various software developer positions.

When I was younger, I once got myself into a legal hassle that necessitated the hiring of a lawyer. On the recommendation of a trusted friend, I went to visit a retired elderly lawyer by the name of Isidore Cohen at his home in Nyack, N.Y. one rainy afternoon. After we had concluded our discussion and Mr. Cohen agreed to represent me, he drew me aside and, looking directly into my eyes, said in a stern tone, "Son, I was a corporate lawyer on Wall Street for over thirty years. If there is one thing you take away from this little experience of yours, it's that you must learn to protect your ass."

Well, I never forgot Mr. Cohen's advice. We as professional software developers need to understand that our roles include much more than just writing good code. Software developers need to learn to protect their fannies too, as well as their integrity. Chris Duncan's expertly written book can help us gain the insight necessary to do that.

If you are a software developer, not only will you enjoy reading this book (in a way, you'll probably feel like Chris is sitting in your cubie with you at work), you will also gain a new perspective on the development process that would be impossible to get on your own because of the subjective focus imposed on us in the daily workplace as developers. If you are a project manager or department manager, my advice to you is go buy yourself a copy of this book immediately, drop everything, and start reading it. Once again, aPress has shown its ability to deliver unique titles that provide real world solutions.

 

 

Peter Bromberg is an independent consultant specializing in distributed .NET solutions in Orlando and a co-developer of the EggheadCafe.com developer website. He can be reached at pbromberg@yahoo.com

 

 
Do you have a question or comment about this article? Have a programming problem you need to solve? Post it at eggheadcafe.com forums and receive immediate email notification of responses.