Reusability in Coding, What Does It Mean?

I remember when I was first learning the art and science of software engineering, a really big part of almost all of the techniques was around “reusability”. I suppose even then schedule overruns were fairly common (and given that Brooks’s The Mythical Man-Month was published in 1975, I suspect I’m right), and it was assumed […]

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 […]

Career Advice, or “I want to be a programmer!”

I am occasionally asked for career advice by people wanting to get into the industry, for example, high-schoolers deciding on career choices. One situation that frequently comes up in this situation is people who love programming and want to get a job being a programmer. They ask, “How can I get a job as a […]

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 […]

Do Your Job Better – With Software!

An old mentor of mine told me something interesting one time.  He was the manager of a team that developed software to simulate the flight of airplanes.  He said to me, “I’d rather hire an aerospace engineer and teach them to write code, than hire a computer scientist and try to teach them aerospace engineering.” […]