Do Bad Programmers Know About Technical Debt?

by Krishna on October 16, 2009

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:

  1. Come in at 9 am or whatever time you are supposed to come in.
  2. Find out what task to do.
  3. Is the task something that looks familiar? If so, go to Step 7.
  4. Interrupt someone in the office. Do they know the answer? If so, go to Step 7.
  5. Google for the answer. Is there anything there that works? If so, go to Step 7.
  6. Complain to the project manager that the task cannot be done and get something that can be done.
  7. Do the task.
  8. Is it time to leave? If so, go to Step 11.
  9. Is there any other task? If so, go to Step 3
  10. Kill time until it is time to leave.
  11. Leave.
  12. 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:

  1. You are a good developer who gets things done without Process X or Tool Y.
  2. How much beneficial for you would it be to use X or Y?
  3. How much time, effort and money do you need to invest for using X or Y to get started in and then be proficient?
  4. What is the return on investment if you use X or Y?
  5. 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.

{ 2 comments }

Craig October 18, 2009 at 6:06 pm

Krishna

While I take your point about the majority of blog readers being ‘advanced practitioners’ there are two fairly large exceptions to your thinking;

The first is people who are new to the idea of self directed learning and blogs. These people were not reading blogs, and did not have an rss feed last month or last year, but they are now adopting the technology and starting to get value from it.

The second is team members who for example scan their blogs and rss feeds and email content to their teams or otherwise share the content .

A personal example of the second category is my team, who hold a weekly lunch-time talk on a topic they have spotted out there somewhere on the internet.

Often blog posts form the skeleton of one of these talks, and thus the content reaches beyond the blog readers and into the rest of the team also.

Krishna October 18, 2009 at 8:56 pm

Craig, I agree about the 2 groups, though I have a sense that at least the first group is more oriented towards “doing”, i.e., they are looking to learn how to do something. I don’t think people read Joel Spolsky and decide that they want to stop learning things because they are too complicated. People who display the initiative to learn are less inclined to reject something out of hand. That is just my impression, though.

Comments on this entry are closed.

Previous post:

Next post: