Guiding Principles


This post is the first in a series on writing software. The idea is to articulate the thinking that goes behind being a competent and valuable software professional.

What do you need to think about when you write software? What should be your most important concerns?

Developers tend to think first about things like maintainability, performance, and craftsmanship. These things are, of course, all important and worth considersation.

Developers certainly need to think about the correctness of the software they write and making sure it can be extended in the future.

More fundmentally, though, there are concerns that matter more.

The first thing one must think about in any situation, including software, is the question of “why?”.

Without understanding the purpose of what one is creating, there is no connection to the problem. Without connecting to the problem, a solution is not really a solution.

A solution without a connection to a problem is merely a guess.

Thus we land on the first principle of software development: Purpose.

Software needs to have a reason for being.

Stay tuned for more principles and further articulation of my thinking behind these principles.