The Career Programmer: Guerilla Tactics for an Imperfect World

Here is something I learned over the last couple years, with the lessons mainly being conducted between the hours of 9 and 5: It rarely matters what is right or wrong. Decisions are not always based on logical thought. As a developer/programmer/software engineer/etc. you can say you just want to do your job and create software. The reality is that the work environment may not be entirely in agreement with your goals. Maybe other individuals/departments follow their own agendas at your cost and maybe you do not receive the freedom (and tools) to actually do your job. There can be many problems. Christopher Duncan's The Career Programmer: Guerilla Tactics for an Imperfect World is a book worth reading to understand your environment and deal with it more effectively.

From the book description:

The Career Programmer explains how the individual programmer or project manager can work within the existing system to solve deadline problems and regain control of the development process. Care is taken to offer proven, practical, and hands-on solutions that are designed to work when confronted with the political and chaotic realities of the business environment. Issues are addressed from the points of view of both the programmer and project manager, and steps are shown in all perspectives, from large-scale teams down to projects with a single developer. For the individual programmer or project manager, the end results are less overtime, less stress, higher-quality software, and a more satisfying career.

I first read this book a little over a year ago. Having skimmed through the table of contents again today, I am impressed by the amount of information that can be found here. This is one of those books, where you can easily augment a lot of the author's examples with your own as the years go by.

The book is divided into two parts:

  1. Software Development in an Imperfect World provides the foundation for the remainder of the book. The author talks about the challenges in software development that one might not anticipate at first glance. These are not technical, but rather include issues like mangement, internal politics, pecking order and the logic behind schedule definitions.
  2. Guerilla Tactics for Front Line Programmers describes in nine chapters how to play the game. The content is certainly not exhaustive, but topics are well chosen. How can we get management to be receptive to change? How can we ensure a decent design - even if we don't get the time to do it? What are reasonable ways to estimate the time needed for development work? What if you don't get the time you need? What if it feels like management is trying to undermine your efforts?

The tone is quite conversational throughout and at just over 200 pages, this book is a pretty quick and easy read. Office politics are a reality at many firms and environments can turn to be perceived as hostile. Add to that the fact that different groups within a company have different outlooks and often appear to speak different languages. A lot of conflicts can be borne of clashing attitudes or varying perceptions. I think this book has answers and some good advice. The author made part of the text available here.