"The Soul of a New Machine", by Tracy Kidder. Solving hard problems, dealing with (and balancing) both technical and business concerns, but with emphasis on getting things done over process and organisational concerns.
It's also extremely well written, and a great introduction to how computers work in the inside that can be understood by non technical readers.
It's also the only book which succeeded in expressing both the rollercoaster I feel when programming.