<-Prev Next->

Are you short of time? Stressed out? Do you need more time for yourself and your family? If you are a software professional, an engineer who deals with software, or a software or engineering student who will be dealing with software in the future, this book is for you.

As a software development manager in 1973, I found myself struggling with customer demands that we produce software that was more reliable, built faster, and built cheaper. I didn’t want to work any more hours; I was serious about my profession, but I also wanted to enjoy life. The only way out that I could see was to work smarter. Why not work out a better way to develop software? And why not use engineering background to develop a practice that would be quantitatively based?
I quickly found that many other people shared this problem and this vision. Together we have put together and are continuing to grow software reliability engineering. The purpose of this book is to teach it to you quickly and efficiently.
Software reliability engineering is a skill that can make you more competitive in this environment of globalization and outsourcing. This is true whether you currently work with software-based systems or are a university student learning to work with them for the future. You can’t change the fact that customers want “More reliable software faster and cheaper.” Your success in meeting these demands affects the market share and profitability of a product for your company, and hence your career. These demands conflict, causing risk and overwhelming pressure, and hence a strong need for a practice that can help you with them.

Software reliability engineering (SRE) is such a practice, one that is a standard, proven, widespread best practice that is widely applicable. It is low in cost, and its implementation has virtually no schedule impact. We will show what it is, and how it works.
We will then outline the software reliability engineering process to give you a feel for the practice, using a single consistent example throughout the book. Finally, we will list some resources that will help you learn more about it.
I expect that the book will be of special value to you if you are a software developer, software tester, system engineer, system architect, acquirer of software, quality assurance engineer, reliability engineer, or development manager of a project that contains software; or, of course, a student preparing for one or more of these roles. It will help you as a text in learning the subject, a deskside companion as you start to apply software reliability engineering, and a reference in handling special situations you may encounter.

At this point, let me suggest that you turn to “How to use this book” so we can help you best match your needs to the structure of the book, which was specially conceived to provide this flexibility.