Design Patterns, TDD, and Best Practices Need to be Removed From Our Brains
I was writing some code the other day, as I do most days. As with most days, I found myself thinking about what I was writing, and how it fits into the overall system architecture. Then I started pondering how we needed a more robust integration testing suite, and let my brain wander a bit. Then I came back to what I was working on, and tried to make the code I was writing fit into the system in the appropriate way. And it was hard.
I was doing everything right. But this was still hard.
I have been a professional programmer for almost a decade. I have studied design patterns. I have a BS in Computer Science, an MS in Software Engineering, and I am working on a second MS in Information Technology. I am fluent in several different programming languages. I love Test-Driven Development (TDD) and have been using it almost exclusively for several years. I was doing everything right. But this was still hard. It wasn’t something that should have been hard, but it was.
I started pondering this, and I realized something. There was a time when these concepts were important. They still can be in select situations. But for the most part, we are all doing it wrong. But why is this? Things changed. Things changed a lot.
I started to look up stats on the number of programmers in the world, and came across a few articles that made some things very clear to me.
Article 1: Looking at IT from 1970–2016
Looking at this, the number of IT workers in the US went from about 500K to 5M over the period of 46 years. That is a 10X increase. That is a huge jump.
Article 2: Programmers as part of IT
According to a quick perusal of this, programmers make up about 25% of the IT workforce. So the number of programmers in 1970 was probably about 125K, up to 1.25M in 2016.