Specifying Performance

When you design a software product or feature you need to consider not only what the software will do, but also how it will interact with the user. The functional requirements for the software typically refer to what the software does. Nonfunctional requirements clarify the parameters for how the software will meet the functional requirements. […]

Software That Can’t Fail

I started working at Microsoft when I was 18 years old. It paid better than the landscaping job I was enjoying at the time. I didn’t know much about writing code, but I was fairly proficient with computers and wanted to learn more. There seemed to be a real opportunity to help make some great […]


Especially with a code base that is mature, assumptions correctly made years ago can be terribly difficult to deal with later when the current and new assumptions reign. Writing code that lasts even 5 years and “is robust” is what everyone wants to do for sure, but the recipe for doing just that is not […]

Metacognitive Miscalibration

A few tweets ago, (I always feel weird referring to Twitter in the past tense) I posted: Why are the unintelligent or uninformed so arrogantly confident while the intelligent and well informed so often unsure and apprehensive? There is something very human to thinking you know more than you really do about a subject or […]

Heuristically Thinking

You don’t have to understand calculus to appreciate this entertaining story: A teacher, trying to explain what a theory is, asked this question: “If you take a letter half the distance to a mailbox and stop, then start over going half the remaining distance and stop, then repeat the process over and over, theoretically will […]

Finishers Wanted

When I was a little boy my Mom had me memorize this little poem: Stick to your task ’til it sticks to you;Beginners are many, but enders are few.Honor, power, place and praiseWill always come to the one who stays. Stick to your task ’til it sticks to you;Bend at it, sweat at it, smile […]


One of the great benefits of working at Microsoft is that when you add a new little one to your family, you get 1 month of paid paternity leave. Recently, we’ve had the opportunity to take advantage of this benefit. Since our little baby was born, I’ve been home working as Mr. Mom. I’ve been […]