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. |
|
|