How to Understand Your Customer

Last week I talked about the importance of domain knowledge. I asserted that if you are building, supporting, or selling something, that it was important to understand the domain that you were working in. Otherwise, you would face challenges.  But that’s the ideal use case. What about the pragmatic reality of the situation, where this […]

My New Favorite Skill: “Dealing With Ambiguity”

I heard about a concept this week that I like, which is the phrase, “Dealing With Ambiguity”. Now, this is a pretty straightforward phrase, but the context in which I heard was very interesting. It was the idea of this being a very specific skill that can be practiced and trained. In the area of […]

Coding to the Requirements

Do you know what I love about software developers? They’ll just code to what the requirements or user stories are. I have a little joke to myself, that with the dramatic industry shift to everything-as-code (i.e. infrastructure-as-code, software-defined networking, etc), that pretty much all jobs will eventually one day be “software developer”. Take network design […]

Dealing With Contradictory Requirements

Anyone here ever hear of the Iron Triangle? The idea is that, for any project, there are multiple high-level objectives competing with one another: cost, speed, and quality. And that to improve on any one you have to sacrifice the other. Let’s put this another, simpler way. You want a car that has more features, […]