
If your mind is empty, it is always ready for anything. In the beginner's mind there are many possibilities; in the expert's there are few.
Shunryu Suzuki (1904 – 1971)

For over two decades of my life I have been dedicated to the idea of improving software productivity and quality. I have traveled the globe consulting and studying software organizations that support just about every industry including banking, aerospace, retailer, animal food, telephone, consulting companies, healthcare, defense contractors, package delivery, automotive, travel, government agencies, and insurance. I have worked for organizations with only a few employees and others with billion dollar budgets.
Over the years, I have worked with government agencies and private companies in Europe, Asia, and the USA. I have consulted with organizations that create software to launch rockets and organizations that manufacture animal food. I have worked with just about every industry that uses software.
I have consulted on every continent except Antarctica. The circumference of the earth is about 25,000 miles, so I have circled the globe over 120 times collecting nearly 3 million frequent flyer miles. Over the years I have been on a quest to learn and understand software development and to move the industry and my clients forward. I have learned a tremendous amount from my clients. I have had the opportunity to work with the best in class and the worst in class software development companies. What I want to do is simple. I want to bring a level of professionalism to software development.
Over the years, I have not limited myself to just studying the software industry. I have tried to retrace the footsteps of other industries such as architecture, engineering, and medicine in hope of learning from their successes and failures. I have interviewed music conductors, architects, industrial designers, graphic designers, and others in the hope of gleaning information useful for my clients and the software industry as a whole. I reject the notation held by some that software is somehow unique. The more I study the problem the more I am convinced software is like every other industry.
I have not limited my studies to just industry. I am an active member of the Academy of Management the professional association of those who teach management at universities and colleges around the world. I participate in conferences and referee articles with the intent of understanding and sharing the best management practices with my clients.
I have not always been a consultant. I started this software journey as a programmer. My first software language was machine instructional cross assembler. It was basically hexadecimal machine language. I could really pump that stuff out. Early in my career I wrote Fortran code for theoretical physicists solving complex mathematical equations. Over my career I programmed in COBOL, C, C++, and Java. I actually co-authored a DOS 5.0 book that is obsolete now. Prior to becoming a consultant, I managed software developers, testers and production support teams. I have managed both technical staff and functional groups. I started out with punch cards and now I use a Mac.
This book is directed to the software development community and to those individuals who interface with software development. I hope students of software development will read this book because, it is really up to the next generation of software developers to move the industry forward.