Preface
As an award-winning mathematician, I don’t tolerate mediocrity. That’s what mathematics taught me—never stop until you get it done, and not just in a good way but in the best way.
When I started writing software, I found that the same principles apply. I knew some colleagues who were neglectful of their work, and I saw how their results suffered from that. They were impatient to finish their tasks, not worrying about the quality of the software they produced, let alone searching for the best possible solution. For those guys, reusing the same code meant simply copying and pasting it everywhere they needed it. I saw how being impatient to finish the task as quickly as possible led to that same task being reopened again and again, because of bugs and problems with the code as written.
Thankfully, those colleagues have been few and far between. Most of my friends were people that I could learn from. I had the opportunity to work for Hewlett Packard, not only with the technical team, but also with the project managers on every level, and from them I learned the secret of delivering a quality software product. Later, I became involved with the Apache Software Foundation (ASF), where I had the chance to work with some of the best software developers on the planet. I studied their best practices and habits of writing code, writing test cases and sharing information among ourselves, and I was able to apply the things I learned to projects for some of the biggest clients of HP.