Software Development Pearls: Foreword
The author of Code Complete shares his thoughts on Karl Wiegers and the new book Software Development Pearls.
After Karl Wiegers received his PhD in organic chemistry, he took a job as a research scientist at Kodak in Rochester, New York. Karl had interviewed at Kodak before he accepted the job, and he thought he understood the nature of the work. He would be doing research related to photographic film, photo development, and related projects.
When Karl arrived at Kodak, he was escorted through a light lock, into the laboratory. A light lock is like an air lock in a submarine, except that it ensures that no light leaks into a room that is kept completely dark. After Karl went through the light lock, his eyes took several minutes to adjust to the barely lit laboratory. No one had told Karl that his research lab would be a photographic dark room.
Karl quickly realized he did not want to spend his career literally working in the dark, and so he transitioned to roles of software developer, then software manager, and eventually software process and quality improvement leader. Later, he founded his own company, Process Impact.
This practical book is Karl's attempt to lead others out of software darkness and into the light. As with his other books, there is more pragmatism than theory. The book concentrates on the areas in which Karl has direct experience: especially requirements, process improvement, quality, culture, and teamwork.
Karl doesn't explain why he titled the book Software Development Pearls. The process of growing a pearl begins when an irritant such as a grain of sand gets trapped in an oyster. In response, the oyster gradually accretes a substance to protect itself from the irritant. It takes a long time, but eventually the irritant results in a valuable pearl.
Karl is one of the most thoughtful software people I know. He has reflected deeply on the software development irritants he has encountered over his career, and this book contains 60 of his most valuable responses.