Do Bad Programmers Know About Technical Debt?
In short, no.
But why am I asking the question in the first place?
Well, much discussion in the technical blogs (such as the NOOP.NL Top 200) is centered around the idea about whether a mediocre programmer will land on a blog where somebody is talking about adopting a simpler approach to programming and then use that idea to stop improving himself and continue writing bad code.
It is a useless subject to argue about because bad programmers do not haunt technical blogs. This is how such a person works:
- Come in at 9 am or whatever time you are supposed to come in.
- Find out what task to do.
- Is the task something that looks familiar? If so, go to Step 7.
- Interrupt someone in the office. Do they know the answer? If so, go to Step 7.
- Google for the answer. Is there anything there that works? If so, go to Step 7.
- Complain to the project manager that the task cannot be done and get something that can be done.
- Do the task.
- Is it time to leave? If so, go to Step 11.
- Is there any other task? If so, go to Step 3
- Kill time until it is time to leave.
- Leave.
- Enjoy the rest of the day.
What they don’t do is spend time visiting technical websites or blogs unless they happen to be landing on them via Google. And those Google visits are only for the purpose of finding some code that works. And issues like intellectual property rights be thrown to the winds.
So let us be clear about the audience when we are arguing about technical debt. We are having an argument among people who know how to write good code and how to test it properly. Some of them use a few more tools and a little more process than the rest, who are constrained either by their lack of knowledge, awareness or business situation to imitate them. No one among this crowd is writing bad code, as in copy-and-paste coding or bad variable names.
Therefore what we are really discussing about and what needs to be answered by people are:
- You are a good developer who gets things done without Process X or Tool Y.
- How much beneficial for you would it be to use X or Y?
- How much time, effort and money do you need to invest for using X or Y to get started in and then be proficient?
- What is the return on investment if you use X or Y?
- Let’s understand if X or Y makes sense in your situation, including timelines, budgets, technical environment.
There are literally thousands of programming tools, techniques and processes out there, all claiming to increase productivity. So whatever the “best thing” you are promoting is, you have to justify it in these terms to the good programmers. And someone who cannot justify that is simply selling snake oil.
As for the other programmers, they are out there enjoying the day and definitely not dreaming in code.