My name is Dave, and this is a blog about coding, and about a lifetime spent coding.
I’ve been doing this - programming professionally - since I was a teenager in the 1980’s. So I’ve been doing this for a long time, and I’ve had a lot of opportunity to see what works best for myself and for other programmers.
The one characteristic that I’ve seen over and over in the best and most successful programmers that I’ve worked with is that they’ve had a pragmatic approach to building systems and writing code.
What is “Pragmatic Coding”?
According to the dictionary, “pragmatic” means:
Dealing with things sensibly and realistically in a way that is based on practical rather than theoretical considerations.
This is such a key idea when building applications and systems, but it often gets forgotten simply due to the huge amount of technical considerations that come into play with programming. There are so many ideas, so many approaches and philosophies that abound in programming that it becomes easy to lose track of the practical aspects of what you are doing.
If pragmatic considerations aren’t foremost in your mind, you’re much more likely to make some of these mistakes:
- Over-engineering a solution
- Planning too much for future enhancements
- Naming things badly
- Ignoring client/user preferences
- Finding complicated solutions to simple problems
- Writing sloppy code
- Repeating yourself
In many ways, Pragmatic Coding has a lot in common with Agile practices and “Clean Coding”.
Just Good Enough
Perhaps the most relevant Agile concept is the idea of, “Just good enough”. Programmers have the hardest time with this idea, yet it’s a key concept. It’s the context in which ALL of your programming should be performed.
Think about it.
The application that you’re building has a purpose. It’s going to be used by certain people, a certain number of times in particular circumstances and it’s going to do something that has some value. Everything that you do, every minute that you spend programming, only has value in relation to how it serves that purpose.
“Just good enough” doesn’t mean low quality. It means fitting the build to the purpose.
Programmers as Artisans, not Artists
Many, many years ago, when I was just starting out as a programmer, I worked for a company that had a subscription to a periodical that had a lot of scholarly articles about programming and managing programmers. I remember reading an article that talked about the difficulty of dealing with programmers that considered themselves “artists”.
I don’t know if this is an issue today, but back in the 1980’s there weren’t anywhere near as many programmers as there are now and it made the job somehow a little more special. Lot’s of programmers viewed their code as a form of art. They took pride in the fact that they had a particular style, and that other programmers could identify their work at a glance. I probably fell in that camp.
Of course, programs aren’t art, and approaching them as art isn’t going to yield the best results. It’s better that programmers consider themselves “artisans”, craftsmen who are creating something practical which gains its aesthetic qualities through great design which serves its intended purpose.