Truth Does Not Exist (Proofs Neither)

Table of Contents

Since my response to Sławek’s post has grown quite lengthy, I decided to also publish it here. Please read his post first, as my commentary only makes sense in its context.


Personally, I would add the word “context” to the list of overused terms alongside architecture, component, and module ;-) I use it myself, so I admit my bias :)

Referring to the last paragraph: I wouldn’t belittle our industry. It is a natural process, which also accompanies other fields considered more scientific with a longer history. For instance, in medicine, regarding nutrition, there are many topics with varying and often contradictory scientific interpretations. Moreover, there are studies that lead to different conclusions. This happens because the complexity of the problem is so great (and the number of factors influencing it) that a scientific approach will always be reductionist (limited to very narrow contexts).

I personally believe that seeking scientific evidence doesn’t make much sense. From this perspective, our profession is closer to psychology and sociology. We mostly use models that are simplifications of reality.

We cannot prove that TDD works or doesn’t work. That is a generalization. Even narrowing the context doesn’t change much because the complexity of the problem remains vast.

What kind of scientific research can be conducted? For example, in a 5-person team where 2 people had one-year experience, 2 people had three-year experience, and 1 person had ten-year experience, which worked on a Java project of 150KLOC for five months using Agile methodologies and TDD, with a doctoral candidate as a client devoting 30% of their time… and so on. The problem is the context—each of these elements (number of people, experience, methodology, code size, language, and at least a dozen others) impacts the outcome.

Would the result of such scientific research be useful? At most, we would learn what the effect was in this specific context. But what if there were 7 people? What if the codebase had 500 KLOC? What if Kanban was used? How many very detailed studies of this type would need to be conducted to make reliable generalizations even regarding context?

Therefore, what remains? Heuristics (strategies). Models.

Regarding the discussion between Coplien and Uncle Bob, each of them has an interesting concept to offer. Each is virtually impossible to prove. Thus, various methods of influence remain, which will cause people to become interested, discuss, and try them in practice. And this is where I see the greatest value. Truth does not exist. At most, there is intersubjective truth.

(Text translated and moved from original old blog automatically by AI. May contain inaccuracies.)

Related Posts

Young Manager/Team Leader! Get a Grip!

History tends to repeat itself, and this is a common tale among young managers and team leaders. A recurring, tragic mistake is the commitment to unrealistic deadlines.

Read More

Ease of Access Over Information Organization

Ease of Access Over Information Organization

Recently, I’ve been experimenting with various ways to access information remotely from anywhere. My primary tool has been SVN, which works great for software projects, but it’s not as effective for document storage in my case. There are two reasons for this:

Read More

The Hacker Way

A few days ago, Paweł Wrzeszcz sent me Erik Meijer’s talk “One Hacker Way” (watch here) from the GOTO Conference in Copenhagen. It is a very provocative talk, which is great. It questions the Scrum method and challenges the status quo in Agile. Given that Scrum is a dominant framework in software development, a critical view is healthy, especially as Agile has become a significant business machine over the past 20 years. When implementing Agile at Scale, core ideas can easily become distorted. (Check out Dave Thomas’ “Agile is Dead” talk here).

Read More