What is this “product” you speak of?

We talk about “software products” and “product teams.” What does this even mean, “product?” It is not the definition I learned in school. Economics 101: the output of the economy is “goods and services.” Goods, also called “products,” are physical items that you can buy, take home, and have. Like, if you buy a rug, … Read moreWhat is this “product” you speak of?

What functional programming and secure code have in common

As a programmer, especially a strong-typing functional programmer, I love abstraction. Defining what the program does and expressing that cleanly in code. The code should express little else. Now I’m studying secure code, and it is the opposite. It’s all about what can happen, not what should. So many nitty-gritty details of network protocols, memory … Read moreWhat functional programming and secure code have in common

One Secret to Quality Software

They ask us for quality. What is “quality”? “Well, free of defects.” (Oh it’s a lot more than that.) What is a “defect”? “Well, when it doesn’t work like we expect it to. Like we agreed it should.” Trust me, you didn’t specify how it works. That’s my job, as a developer. To organize all … Read moreOne Secret to Quality Software


How important is correctness? This is a raging debate in our industry today. I think the answer depends strongly on the kind of problem a developer is trying to solve: is the problem contracting or expanding? A contracting problem is well-defined, or has the potential to be well-defined with enough rigorous thought. An expanding problem … Read moreCorrectness

The Quality Wheel

“Quality software.” It means something different to everyone who hears it. You know quality when you see it, right? Or maybe when you smell it. Like a good perfume. Perfume preferences are different for everyone, and quality means something different for every application. In perfume, we can discover and describe our preferences using the Fragrance … Read moreThe Quality Wheel