Rapid Development: Taming Wild Software Schedules, by Steve McConnell
This is an older book now, but I still refer to it from time to time and like it a lot. Lots of good info here not just on rapid software development strategies, but also on efficient strategies. As McConnell writes, do well at efficient development before you dive into rapid development — you’ll probably find efficient development will be fast enough, at least a whole lot faster than the thrashing development too many of us experience too often.
Good info here on software development fundamentals, classic mistakes to avoid, risk management, lifecycle planning, estimating and scheduling, motivation and teamwork, rapid development best practices, and more.
I think a lot of the info in this book is compatible with, or at least not contradictory of, today’s agile development practices, and some of the best practices approach agile strategies, like Evolutionary Delivery and Evolutionary Prototyping.
Software Project Survival Guide (Pro — Best Practices), by Steve McConnell
This book was written a couple of years after McConnell wrote “Rapid Development”. There’s a fair amount of overlap with his earlier book, and if I had to choose just one, I’d choose Rapid Development.
This book discusses the Staged Delivery Plan, which is an iterative type of lifecycle, in which each stage of a project is fully designed, implemented, and released. There’s some good info here and you could do much much worse than follow McConnell’s advice, but I think Agilists will find this book out of date.
Code Complete: A Practical Handbook of Software Construction, by Steve McConnell
A really excellent book on the nitty-gritty of software construction, discussing things such as cohesion and coupling, naming conventions, defensive programming, modularization, and much more. I’d say a must read for those producing code. I have the original 1993 version, and I see McConnell wrote a second edition in 2004, which is what I’d get now, of course.