Software Engineering Books
Contents
Innovation of New Products Innovation
Management Management
Project Management ProjectManagement
Requirements Requirements
Architecture / Design Architecture
User Interface UserInterface
Programming Programming
Modeling Modeling
Guns, Germs and Steel - Jared Diamond
One of the best books about societal (company) organization and how that
relates to competition and survival.
The Sources of Innovation - Eric von Hippel
Poor Societal Decisions
How to Get Rich
This book is mostly about competition between rivals, and innovation by lead users.
Mastering the Dynamics of Innovation - James Utterback
Part of Sources of Innovation
When an innovative product is created, there is a period where many companies will present alternative ways of solving a problem. Eventually a dominant design will evolve. Then product development changes to focus on process improvement for this single design. During this phase, the number of companies usually drops.
Entrenched companies in previously existing technologies will be involved in defensive innovation. Typically companies that are not in a market will be the companies that have true innovation. An example is the mechanical typewriter. IBM was not manufacturing the mechanical typewriter, but eventually dominated with the electric typewriter.
The Innovators Dilemma - Clayton Christensen
There is disruptive innovation and sustaining innovation. Companies face a dilemma when a disruptive product has the future ability to replace the sustaining product. An example of a company that succeeded in this is HP. HP had laser printers and was developing technology for ink jet printers. Initially HP had them developed in the same division, but this was a problem because funding went towards the established product. Then HP moved the ink jet printer development to a different location and only then did the ink jet printer start to compete.
A disruptive product must be prepared for low margins and start with low market share. It is important the too much focus is not put on an existing narrow customer base, or other technologies can come along that solve problems for a larger customer base.
New Product Development - Robert J. Thomas
Essentials of Marketing Research - Vikumar, David Aaker, George Day
First, Break all the Rules - Marcus Buckingham, Curt Coffman
This book claims that 12 questions can be used to evaluate the workplace. These questions were derived from studies of 80,000 managers in 400 companies. It has unconventional ideas about how to select employees by talent and how to work with employees.
The twelve questions are:
Finding and Keeping Great Employees - Jim Harris, Joan Brannick
This book believes that the two reasons that an employee will stay are the immediate supervisor and the core company culture. A company that is aligned to a single one of four cultures will be able to find and keep employees. The four cultures are:
Operational Excellence is minimizing cost, maximizing efficiency, decreasing cycle time and standardized processes. A company with a culture of spirit is normally based on a social, religious or employee theme. These companies (Ex. Southwest Airlines) are still competitive.
Hiring should be a continuous process. The company culture should be used to recruit. This book has many practical ideas on hiring.
The first best practice is to engage the soul of the employee. There are many companies that are soulless and the employee will disconnect from the company.
Coaching for Improved Work Performance - Ferdinand Fournes
Understanding the Professional Programmer - Gerald Weinberg
The Deming Management Method - Mary Walton
The Control Theory Manager - William Glasser
The Mythical Man Month - Frederick Brooks
A classic describing the development of the IBM 360.
Rise and Resurrection of the American Programmer - Edward Yourdon
A retraction of his earlier book describing the fall of the American programmer.
Rapid Development - Steve McConnel
A Discipline for Software Engineering - Watts Humphrey
Mastering the Requirements Process - Suzanne Robertson, James Robertson
This seems to be a good book on the process to generate marketing requirements. It is a bit unorganized, but has useful information.
Large Scale C++ Design - John Lakos
An excellent book on large-scale software design. This has excellent information on minimizing external interfaces and layering of software.
Design Patterns - Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
A book containing many patterns in software.
Patterns of Software - Richard Gabriel
An artistic view of software development about the relationship of building architecture to programming.
Component Software - Clemens Szyperski
A difficult to read book that has some important ideas about component software.
The C++ Programming Language - Bjarne Stroustrup
The Design and Evolution of C++ - Bjarne Stroustrup
The Annotated C++ Reference Manual - Margaret Ellis, Bjarne Stroustrup
Effective C++ - Scott Meyers
Effective COM - Don Box, Keith Brown, Tim Ewald, Chris Sells
This book has valuable points, but it is important to remember that Don Box is not oriented towards actual product development. This means that he does not consider the costs of engineer training (ex: smart pointers) and sometimes does not consider real products (ex: dual interfaces).
The Unified Modeling User Guide - Grady Booch, James Rumbaugh, Ivar Jacobson
This book may become a classic on UML.
Real-Time UML - Bruce Douglass
UML Distilled - Martin Fowler, Kendall Scott
UML Toolkit - Hans Eriksson, Magnus Penker
Software For Use - Larry Constantine, Lucy Lockwood
This is a very good book about designing user interfaces. It discusses task modeling using use cases, workplaces or interaction contexts, and maps of use cases and contexts. It is a very practical book and suggests ways to postpone decisions to remain focused on a particular task. It also describes the principle rules to good user interfaces including choices of user interface widgets, screen layouts, etc. This book also describes how to measure the quality of a user interface.