Contact Information
Good Reads
(from the Recommended Books page)Recent Professional Books
This is a selection of more recently read books from my collection (2009 forward). As time goes by it will continue to grow and I will continue to add previously purchased books to the list as I re-read them.Recent Professional Books - Details
The Adventures of an IT Leader
Robert D. Austin, Richard L. Nolan, Shannon O'Donnell
Adventures follows the story of a business executive assigned to the role of CIO and the lessons and discoveries he makes along the way. The story points out the gap between high performing managers and technologists early, then takes a realistic character and bridges that gap. I highly recommend this book for anyone interested in IT management, business architecture, or even in a business managament role that will interface with IT. Not every approach is going to be right for every situation, but as the book so aptly points out, we need to have a variety of tools in our toolbelt and this book provides both more tools and mental frameworks for finding more.
Agile Estimating and Planning
Mike Cohn
Whether you are planning on using Agile on a project, already part of an Agile team, or simply want a different perspective on project planning and estimation, Agile Estimating and Planning will prove useful. The book covers techniques from high level project planning down to individual task estimation, factors to consider when sizing iterations, methods for evaluating project and feature ROI, and always the reasons behind the tools. Though many of the topics were already familiar to me, even those sections were valuable due to the way they were tied together and provided background and examples that can be used in disucssing them with others. Highly recommended to Agile team members, team leads, and project managers.
AI Application Programming
M. Tim Jones
AI Application Programming is a solid book that covers a wide breadth of AI topics. After a short history it dives in, delivering chapters that are each based around separate methods (back propagation, artificial life, agents, etc). Descriptions, illustrations, sample problems, and sample code do a good job of defining the various algorithms and methods. This was a book that I digested slowly, reading each chapter more than once and thinking in depth before moving on.
The Art of Unit Testing
Roy Osherove
A good end-to-end introduction. The book covers the basics of unit testing, using .Net and NUnit in examples, then piles on mocking frameworks, good habits, practices, common arguments for and against, test-driven-development, and a variety of other topics. About the only topic that didn't receive good coverage was some of the presentation layer patterns that are commonly used to improve testability at that level, though that should be taken as a positive concerning how much is included (there were a number of UI and web testing frameworks advanced). Overall a good book if you're thinking about starting to unit test, recently got started, or just haven't had time to get into some of the tools and practices that are out there.
The Career Programmer: Guerilla Tactics for an Imperfect World
Christopher Duncan
If I had to select a set of books that every computer science gradute or beginning programmer should read, this would be on that list. The book covers (or uncovers) a number of topics that will come as a surprise to those getting into the field. From office politics to the reality of design and QA time allotments, this book covers it all. While it is probably less relevant to me now that it was a decade ago, I still picked up a few thoughts, while also finfing a few places where I disagreed. I would consider it a must read for junior to mid-level developers and a good skim for anyone at the decade-plus mark.
The Clean Coder: A Code of Conduct for Professional Programmers
Robert C Martin
'The Clean Coder' outlines the qualities 'Uncle Bob' believes all developers should aspire to in order to consider themselves professionals. Readers of other books on pragmatism or craftsmanship will see many of these as familiar topics, such as managing schedules, estimating, the importance of quality and so on. 'The Clean Coder' brings another viewpoint and different set of anecdotes to these very important topics and even includes a few that aren't usually included in similar book (such as the idea of doing code katas). A good read for developers, but I think it can be equally helpful for development managers.
Code Complete: A Practical Handbook of Software Construction
Steve McConnell
Code Complete has been widely recognized for providing a comprehensive view into the topics around and involved with software construction. It provides information from across the whole spectrum of software development, from incorporating scientific studies that show the most effective way to reduce defect rates, to information on how to debug, to information on architecture and requirements. This book is relevant and highly suggested for anyone who develops software for a living, with chapters that are just as relevant to those who manage projects or software developers.
Continuous Delivery
Jez Humble, David Farley
Continuous Delivery helps outline processes and methods to produce a pipeline process that allows for easier, more repeatable delivery of code. Early on, the authors outline benefits of automated delivery, from risk reduction to cost benefits to greatly improved ability to respond to the customer. It provides a high level introduction into what a deployment pipeline looks like, but then goes deep into each potential stage, outlining methods that the authors have seen in production systems, risks and issues they have run into in various places, and practical examples of the benefits along the way. At no point do the authors claim that this is an easy process, but they do an excellent job of laying out the benefits as well as exploring the connections with Lean principles and flow.
Critical Chain Project Management
Lawrence P. Leach
Critical Chain Project Management (CCPM) outlines the concepts behind CCPM [the project management method] and provides information on why it has higher success rates than Critical Path project planning. CCPM explains the Theory of Constraint, the theory and hard numbers behind the practice, and does a good job of walking the reader through the construction of simple and complex project plans. Even readers that would never switch away from Critical-Path would get good information from this book, as the author spends time in the beginning defining projects, discussing topics straight out of the PMBOK, and many concepts from CCPM are relevant for every project (such as the need for visibility).
Don't Make Me Think: A Common Sense Approach to Web Usability
Steve Krug
If you build websites, you need to buy or borrow this book and take notes. The author provides a common sense approach and understanding of usability that aims to put usable (heh) tools in the hands of those of us that aren't usability experts. As I read the book, I was not only learning new methods and tools (like how to do usability testing so cheap the author calls it 'going out of business sale' testing), but also learning how to look at some common problems from a fresh approach. Rather than provide a prescriptive set of methods or components to use on our sites, he provides tools to identity weaknesses or areas for improvement and information on the importance of usability and it's affect on users and the business. If you even suspect that having a usable website might help improve your users experience, head over to your local bookstore and start reading this. You'll buy it.
Enterprise Architecture as Strategy
Jeanne W. Ross, Peter Weill, David C. Robertson
This book speaks to the C-level reader, who it assumes knows nothing about Enterprise Architecture. The content walks through an executive-driven process of defining the business model and vision and then how to implement the strategies necessary to reach that vision. The book offers a number of case studies as well as an interesting maturity classification system for architecture. The insights and vocabulary is designed for the executive level reader, but non-executives will get a great deal from it as well and I would definitely recommend it.
Enterprise Architecture Planning
Steven H. Spewak
Enterprise Architecture Planning is, without a doubt, the best EA book I have read. The first time I read it, I was somewhat new to the concept of EA and I recall being amazed that I was already learning new concepts or viewpoints while still reading the foreword. The book covers the equivalent of Layers 1 and 2 of the Zachman framework, walking you through methods of gathering current state information, building a long-term architectural model, and defining and prioritizing plans for reaching the model. The book covers methods you can use, common issues you could run into in various steps of the process, and stresses the importance of visibility and communications throughout the process.
Good to Great
Jim Collins
Good to Great is an excellent book, based on five years of case studies examining companies that had made and sustained remarkable transformations. There is no chapter about technology and it, in fact, only discusses technology as an accelerator (or contributor) to achieving greatness rather than a trigger. Even though I am a technologist, I believe this book places technical focus exactly where it belongs, in neither a pure maintenance role or the end-all be-all driver of the company. Whether you're a leader, a business architect, a technologist in constant contact with the business, or resopnsible for a purely technical role with little contact with the greater business, the concepts in this book should prove useful.
How to Measure Anything: Finding the Value of Intangibles in Business
Douglas W. Hubbard
This book surprised me fairly early. It's focus is on the authors assertion that nothing important to the business is truly immeasurable. Early on he provides a number of examples for projects or risks that are often claimed to be immeasurable and then through the course of the book provides tools and methods to assign values to each of them. The author walks us through making accurate estimations, calibration to improve our estimation ability, how to find measurements where they aren't obvious, and how to use tools like Monte Carlo Simulations and Bayesian statistics. After reading just the first couple chapters of this book, I found it impossible to recapture my earlier viewpoint on 'immeasurable' topics. The transformation in my viewpoint was both surprising and welcome.
IT's hidden face
Claude Roeltgen
The goal of IT's hidden face is to explain the complexities of the IT environment (and maintaining that environment) to a non-IT person. From the reasoning behind seemingly extreme project estimates to the difference between a server and home PC and the planning and work that goes into infrastructure and disaster recovery, this book exposes the layers of complexity behind our processes and does so in a way that can be read by the non-technical professional. Each section outlines a seperate subject or situation that is common in IT departments around the world, while the book as a whole weaves them together into an accurate picture of the complexity inherent in managing our environments. Read it to help communicate with your non-technical peers and offer it as a gift the next time someone suggests their nephew could put together a website in an afternoon.
IT Architecture Toolkit
Jane A. Carbone
IT Architecture Toolkit is a self-admitted 'practical guide' to EA. Starting with the role of architecture in IT (and business), the book talks the reader through processes for analyzing current state, building a target state and architectural model, to defining, estimating, and executing projects that support the architectural target. The processes in the book are based on the authors experiences in the field and are just as relevant for people with no knowledge of Enterprise Architecture as they are for experienced practitioners. The processes and methods throughout the book will appear common to EA practitioners and enthusiasts, but they are presented as part of a package that makes the concepts accessible to a wider audience.
IT Governance: How Top Performers Manage IT Decision Rights for Superior Results
Peter Weill, Jeanne Ross
IT Governence provides models based on industry leading businesses to help us both analyze our current state of governance and build a definition for what we would like going forward. Initially I found myself skipping over some of the material, but as we got deeper into some of the cases studies and impacts of different decision archetypes, I found myself going back for a deeper read through the earlier parts. A good book to help with high level analysis and planning for IT departments, with plenty of case studies and practical examples behind it.
Joel on Software
Joel Spolsky
Joel on Software is a collection of essays published by Joel Spolsky around the early 2000-2003 timeframe. Based on his experiences in large and small software companies, he shares his opinions on what has made environments more or less effective and practices he has applied with his own company. Topics include interviewing tactics, development standards, company strategy, managing developers, and many more that would be of interest to both developers or those managing developers. As with any book there will be parts you agree with and disagree with, but it's a good read for anyone who makes a living delivering software.
Kaizen: The Key To Japan's Competitive Success
Masaaki Imai
Kaizen was published in the mid-80's, but remains incredibly relevant and displays some rather interesting parallels in how far traditional western management has not grown in the intervening years. Perhaps the most confusing point is that the tools and practices in the book are not Kaizen, but rather support the idea of Kaizen (continuous growth, small changes). Besides some changes in the intervening decades, though, the book and it's topics are still relevant, as I said above. Tools like Deming's PDCA cycle and TQC have only grown in use and the history and anecdotal stories that are related throughout the book are priceless. An excellent read and a great supporting book if you are learning about Lean.
The Leadership Test
Timothy R. Clark, Ph.D.
The Leadership Test is a very short book that features a series of principles that are presented in story format. Reading it in one sitting will not provide much value, instead this book is intended to be read, reflected upon, and re-read. While I appreciate the difficulty in boiling something as complex as leadership down into a few key principles, I'm still not sure whether the book is worth keeping as permanent addition to my shelves. Definately borrow and reflect on it if you know someone with a copy, consider previewing at a bookstore if you don't.
Leading Lean Software Development: Results Are not the Point
Mary and Tom Poppendieck
An excellent book that breaks down the business and process of successful lean software development into a series of subjects, drawing on everything from case studies to writings (for instance; Drucker, Deming). This is that single book that could serve as a survey course in utilizing Agile or lean concepts in software development, a single starting point that a student, whether they be leader or developer, could use as the jumping off point to learning about any aspect of Lean or Agile. If you work in any part of a value stream that provides software as an end product, this book is a must read.
Lean Six Sigma for Service
Michael L. George
Lean Six Sigma for Service takes on two topics at once, the use of Lean and Six Sigma in a single environment combined with the challenge of convincing people that these concepts are appropriate for non-manufacturing processes. In both areas the book succeeds, using case studies to show how combined approaches and methods can be used and be successful in service environments, such as banks, hospitals, and government. I wouldn't suggest this book for someone new to Lean or Six Sigma, but if you have experience with either (or both) than it is a good read with good information.
Microsoft Application Architecture Guide
Microsoft Patterns and Practices Team
Microsoft's Application Architecture Guide is a collection of architectural best practices that the Microsoft patterns and practices team has put together in one comprehensive guide. The book covers general architectural concepts as well as detailed information on patterns and methods of selecting and defining an architectue. While most of the information can be found in other books, this book brings it together into one central place with the added benefit of it coming from the viewpoint of a group that is intimately aware of the tools and services Microsoft provides, giving us insight into the intended congruence of those tools and the architectural patterns.
The Mythical Man-Month
Frederick P. Brooks, Jr.
This is my second copy of the book, if that tells you anything. The first was misplaced (if I lent it to you, it's yours now) many years ago and only recently did I decide to purchase a replacement. First, be warned, this book was written over thirty years ago and some of the concepts and ideas are a bit dated. That said, this is still an excellent read and filled with a great deal of timeless information, much of which applies to any complex project, not just software. Brooks Law (Adding people to a late project makes it later) is still relevant, as is the importance of understanding why it is relevant and the logic behind this generalization. If I was creating a short-list of books for IT project managers, this one would be on it every single time.
Note: Amazon does not differentiate between 1st and 2nd editions in it's used books. The 2nd edition version I originally owned has updated commentary from 1995 (original publication is 1975).
Out of the Crisis
W Edwards Deming
An amazing book. The grammar wasa occasionally a little rough, you could tell parts of this were notes taken directly after a long series of thoughts. The book covers Deming's theory of management, including detailed looks at his 14 points, the seven deadly diseases that afflicted [afflict] american industry, and various topics and tools like Plan-Do-Check-Act to help us execute. The book is not an easy read, but it is rich with information and processes and is one of those books that has something new each time I go back to it. (Almost as interesting as the content was the relevance the topic and his predictions have decades later as we see the same failures and mistakes continuing to afflict our industries).
Patterns of Enterprise Application Architecture
Martin Fowler
A great reference for application design patterns. The first 1/3 of the book is an 8 chapter introduction that covers everything from what a pattern is to the type and groupings of patterns in the book, from the need for architecture to the purpose of layered design, and from the individual components to how to put them together. While I wouldn't expect anyone to read the reference portion of the book from cover to cover, I did skim through and read a good portion of it because it helps provide a good, common language we can use when talking about components of a software architecture. Altogether an excellent book. If you design systems it should be on your shelf.
Peopleware: Productive Projects and Teams
Tom DeMarco, Timeothy Lister
Peopleware provides insights based on a combination of experience and scientific strudies, improving our understanding of management techniques and why some commonly held beliefs about managing people are wrong. Peopleware is required reading in some companies, and I can see why. From the 'sins' of traditional management practices, to cultural impacts, to the importance of working space and the long term savings of happy employees, Peopleware remains highly relevant. Highly suggested for managers or leads that have not read it.
Performance Dashboards and Analysis for Value Creation
Jack Alexander
The book, rather than being about how to build a dashboard, is focused entirely on how to measure and find the key value drivers for the business. The author spends several chapters explaining financial concepts, analysis methods to use when looking at financial data, and common methods and reasons for comparisons but then begins diving into analysis of the business measurements and methods to determine the key measurements. The author's framework is used to explain valuation concepts, methods of determining what the driving values are for the business, and it's utilization in improving the business. Though many concepts in the book were new to me, I learned a great deal from the book and look forward to reading it a second time.
The Pragmatic Programmer
Andrew Hunt, David Thomas
A must have for every developer, The Pragmatic Programmer covers a wide range of topics that explain best practices, the reasoning behind them, and common risks or pitfalls. This is one of those books that can be read in pieces and should be read several times, as small sections are relevant without the framing of the larger stories and, as time progresses, the light of experience will provide a new dimension on many portions of the book.
Presentation Zen
Garr Reynolds
An excellent book that was obviously put together with a great deal of attention towards detail and presentation, which is only fitting given the subject. The information in the book applies beyond just presentations to any subject of communication to an audience or end user. The book was an easy read and is already marked up with reference notes. Highly recommended.
Programming WCF Services
Juval Löwy
Probably should be considered the definitive work on WCF. It is not just a great functional breakdown of the different factors available with WCF, but it also provides numerous suggestions, class extensions, and detailed information into how the components work from the viewpoint of an expert. This is not just a 'here are all the options' book (though it does that well), it also provides the extra information that comes from having used and gone beyond the cabailities of the platform. An excellent book and a great addition to the technical bookshelf.
Rework
Jason Fried, David Heinemeier Hansson
An interesting series of tips and stories from the founders of 37signals. There were a number of points I found intriguing, but overall I didn't find the book to be revolutionary. Many of the points found in the book can also be found in the tenets of Lean Manufacturing and Agile or in the writings of various leadership and business writers. I think what this book brings to the table is it's overall inspirational message and the presentation of ideas in clear, concise essays. It is worth reading, even for those of us in larger businesses, but don't pick it up with the expectation that it will transform your business or life (if it does, great, if it doesn't than you won't be let down).
The Science of Success
Charles G. Koch
Charles Koch describes the background and model behind the success of Koch Industries. Market-Based Management combines lessons and theory from external sources with those learned along the way as the company grew into the largest private company in the world. Many principles seemed familiar, such as respect for people and the importance of measurements, but what struck me most strongly was the cohesive whole. The model outlined in the book is spoken of as greater than the sum of it's parts and I found the same to be true about the book itself. It's written in a very approachable manner and I would highly recommend it for anyone in an entrepreneurial environment.
Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency
Tom DeMarco
Slack makes a case that the push towards ultra-efficiency is actually hurting businesses more than helping them. Throughout the book it covers traditional methods of getting more done with less, and shows the flaws inherent in that thinking. From overtime to lack of employee empowerment to risk management and leadership, this book cuts through the traditional thinking and explains the dangers, costs, and opportunity losses in actions that are traditionally believed to deliver more results, not less. The book is primarily speaking to the manager or leader, but I would urge everyone to read it at least once.
Software Assessments, Benchmarks, and Best Practices
Capers Jones
An excellent guide to the purpose of assessments, information on executing assessments and what they are used for, and the best practices identified across the different major sectors of software development. The findings and information in the book represent conclusions based on over 9000 software project assessments and provide a unique and scientific look into what sets the best performing projects apart from the poorest.
SQL Server MVP Deep Dives
(lots)
SQL Server MVP Deep Dives is a collaborative work by numerous Microsoft MVPs that offers deep looks into the nooks and crannies of SQL Server. Chapters cover everything from tools, tuning, DR mechanisms, reporting, PowerShell... you name it, it has a high likelihood of having a very detailed chapter. This book will sit directly next to my SQL Server Admin guide, as it's invaluable as both a learning text and reference. (I haven't finished the entire book cover to cover, the chapters make this a great candidate to pick up and read one at a time and I'm still working my way to the end.)
Taiichi Ohno's Workplace Management
Taiichi Ohno
Workplace Management is a collection of writings from Taiichi Ohno, one of the creators of TPS (Toyota Production System) and a founder of lean manufacturing. The book covers a wide range of his thoughts throughout the years, from memories of where Toyota started and their progression, to simple anecdotes or thoughts he had along the way. Though short, the book is remarkably good. This was one that I read a few pages at a time, often putting it back down and simply thinking about his point for an hour or day before returning to continue reading. Be aware, however, he uses lean terminology throughout the book, so a basic understanding of lean concepts is suggested.
Usability Engineering (Interactive Technologies)
Jakob Nielson
You know it's going to be a great book when you learn something from the foreword. I tried several times to sit down and read this like a conventional book, but it is just so full of information I found myself putting it down each time after only a few pages so I could think abuot the points in more depth. The information and processes in the book use study after study to give us an information on techniques, processes, and even communications tools to work with. A necessary reference to anyone interested in usability.
Why Work Sucks and How to Fix It
Cali Ressler, Jody Thompson
'Why Work Sucks' outlines an environmental change at Best Buy corporation named "Results-Only Work Environment." The idea is that we manage people to a level of results and let them have the freedom to choose what hours they want to work, whether they come into the office, and so on. We measure their performance based on those results and manage them accordingly. The book lays out the principles and some history of the ROWE adoption at Best Buy and dives into some of the obstacles involved in the transformation. Unfortunately, I believe the book assumes a certain level of maturity already present in the business and management culture, and I saw little information on methods to help managers transform their mindset from task hours to defining achievable results and expectations. The ideas seem reasonable, but I think many companies would need some groundwork in management skills and expectation setting to successfully begin adoption.
Working Effectively With Legacy Code
Michael C Feathers
Michael Feathers defines "Legacy" as code without unit tests. While an aggressive definition, what he has provided us in this book is common methods to put existing code under test so that we can make verifiable changes to it. He outlines common patterns we can use to easily extract logic from legacy code and provides examples that allow us to see the refactoring in code, not just text. While many of the patterns are more effectuve with object oriented codebases, he has included patterns that are useful in procedural cases as well. Whether you agree with his definition or not, the book gives us a lot of tools to effectively extract and modify legacy code and leave it better than when we started and is just as useful whether you're working on decade old legacy code or in the process of producing new legacy code.
World Class IT: Why Businesses Succeed When IT Triumphs
Peter A. High
This book does an outstanding job of outlining a nicely packaged structure for IT success in a business. Peter shares the high level principles of the methodology his company uses, breaks each down into bite-size pieces, and follows up with case studies and experiences from CIOs and managers in the field. The close of each chapter is a long series of practical and usable metrics that serve to both underline the principle and make us reflect on metrics that we can use in our own environment. The book flowed smoothly through each of the five principles it focused on and, though I felt more familiar with some topics than others, my interest level was constant throughout the book. Highly recommended and I am glad it has become a permanent part of my collection.















































