Recommended Book Reading List

- The Phoenix Project: This book is equally enjoyable (and beneficial) to read by both folks with and without engineering backgrounds. It explains Kanban and Devops concepts through a very engaging fictional story. An excellent read.

- Creating a Software Engineering Culture: This book is a must read for CEO’s, COO’s, team leads and even software engineers. Like the title, this is about creating an organization where engineers thrive and are happy. Ever wonder why you have a high turn over rate? It’s not because Lebanese employees are not loyal, it’s because you have a crappy culture. This book shows you how you can create one. One of the best parts about the book is how it discusses how it’s necessary for an organization to go through several stages of maturity, and what are the details of each stage. It shows how change takes time, but it also shows you the steps necessary for change to happen.

- The Pragmatic Programmer: Really lays down the basic habits that engineers should have in order to really become world class engineers

- Head First Design Patterns: Design patterns is a very important skill for engineers.. but few have learned it in a structured/formal way.. the head first series is a very fun yet informative read

- Code Complete: Brought to you from the Microsoft library.. this book really teaches engineers how to treat their profession with respect and just be excellent coders.. has very practical advice with code at the grass root level (ie HF design patterns is more higher level.. and is a prerequisite for architects/seniors.. whereas Code complete is something that can be put to use even by juniors almost immediately)

- Lessons Learned in Software Testing: This is an amazing handbook for QA staff and the QA lead. Many people look at the QA profession (especially if they are not software automators etc) with a whiff of contempt. This book takes that attitude and throws it right on its head. There is so much to QA in terms of technique, strategy and practice, and this book demonstrates how much help (or damage) QA staff can do to the overall success of a software project. It is broken down to very short lessons (each lesson not being much more than a page or so). And it has a lot of counter intuitive lessons. For example: automated testing is not always good, and no, it does not, cannot, and will never completely manual testing. I didn’t know that or at least thing of it that way until I read this book.. did you?

- Software Requirements: This book should be a required reading for any BA (Business Analyst), project manager, or even any software engineer or QA staff for that matter. It talks about documentation in depth.. it talks about how you can map the relationship between documentation levels starting at the top with business requirements, going down to user stories, and ending with the grass root functional requirements. Ask 99% of engineers (or PMs for that matter) about the difference between a functional requirement and a use case, and they’ll look back at you with a blank stare. Yet that should be a basic piece of info for anyone in the software field. Read it now.

- The Cucumber Book: While this book talks about BDD (Behavior Driven Development) which is a very advanced topic (most software shops don’t even have unit testing, let alone TDD (test driven development) implemented, and BDD is kinda a step on top of that (again the book Lessons Learned in Software Testing explains brilliantly why it’s just a bad idea to have BDD without TDD). Anyways, the point is that I recommend this book not to implement BDD in your org.. that’s an advances step, but the takeaway from this book is it’s thorough explanation of the gherkin syntax. Which is a golden syntax that really makes reporting of user stories very structured with almost a non-existent learning curve, and is especially useful when working with remote teams.

At Toters we have a continuous improvement program for all our staff, engineers and non-engineers alike. Part of this program is to encourage them to read and apply concepts taken from the above books. Our staff have access to a shared Kindle account where they can see and access the comments written by other staff on the same books; allowing them to learn from the experience and wisdom of each other.