Niwot Ridge Resources

A Source of Information for Mission Critical Systems, Management Processes, and Strategies

Software Professional Reading List


Here are some books I would consider must read if one is to be called a software professional.

They are in no particular order.

Just Don't Do It!: Challenging Assumptions in Business

This is a book about the fundamental questions of business and how they can be challenged to reduce the footprint of non-value added processes.

This book contains many of the thoughts now being made popular in Agile processes. The primary one is the customer facing activities of the product development process. Although this book is now date (1997) it can be the core of many process improvement initiatives.

Beyond Programming: To A New Era of Design, Bruce I. Blum

This book examines the software development process and determines that it must undergo a fundamental change. This change starts with the search for first principles. The scientific foundations of computing. An alternate paradigm for developing software is presented. This process deals with "open requirements," based on "user centered" processes. A "minimum critical specification" approach is the foundation of these processes. This is a must read book for anyone claiming to be in tune with the current Agile processes.


Software Project Management, Walker Royce

This is a "source" book for managing software projects. It isn't a Agile book, or a Extreme book, or a "get it done easy" book. It is about building commercially robust software systems in a manner that  is know to work.


Adaptive Software Development, Jim Highsmith

If I were to recommend one book to start the "Agile" revolution with this would be it. The eXterme books, the other books with agile in the title all refer to this source. This is not a "programming" book, it is about thinking about the processes needed to be agile.


Practical Performance Analysis, Neil J. Gunther

This is the entry point for computer systems performance analysis. Anyone who states "this system will work with the a specific load," should be able to back up that claim with a performance model and field measurements to validate the model. There are numerous other books to read and digest, but this is a starting point.

Designing Object–Oriented Software, Rebecca Wirfs–Brock

This book changed my view of software systems design. The techniques used to isolate the objects during the requirements and design phase were eye opening. The technique of using CRC cards as a guide for this discovery is very powerful.


Bugs in Writing: A Guide to Debugging Your Prose

This is one of those books that must be on the shelf and must be well worn. Like the Chicago Manual of Style, anyone who writes for a living of for pleasure needs to have this book.

Software Assessments, Benchmarks, and Best Practices, Capers Jones.

This book contains data about the phases and efforts for a variety of software development domains. When a discussion starts regarding a specific process this is the place to start.


Managing Risk: Methods for Software Systems Development, Elaine Hall.

This book is a framework for discussing risk management in software development. Without some form of risk management development projects can not be a learning process and therefore any problem encountered are bound to be repeated.

Hall provides a development process based on "process, people, infrastructure, and implementation." P2I2, in which risk management is tightly integrated with the development process. This approach can be used on all types of projects, not just software development projects.


Home | Search |Site Map | Copyright