On one side of the spectrum there are people like Kent Beck that even after more than 10 years of TDD practice says things like
" ...
given the immature state of understanding of how tests can best fit into the inner loop of coding ... Ten or twenty years from now we'll likely have a more universal theory of which tests to write, which tests not to write, and how to tell the difference."
On another side of the spectrum there are some people that propose new methodologies and then mention case studies and statistics to proclaim they are right and to reject doubts and criticism.
Some of them use
orthodoxy to oppose disagreement and dissent and to support their authoritativeness.
How much is really known about professional software production and how much is still unknown and to be discovered? What if for some problems we have to be highly intelligent and well informed just to be undecided about them?
How many Scientific empirical researches on Professional Software Production that involve people (i.e. developers, users, market) are done in contexts that even remotely resemble Professional Software Production as is for real in the IT Industry ?
A minority, those who do that and so provide meaningful results and indication on good practices for real daily work situations are exceptions
like this where controlled experiments have been done using 4 real software companies and
like this at Simula Research Laboratory where real software professionals were used in controlled experiments.
How many IT industry "success cases" and "empirical evidences" are not representative, not generalizable, not controlled, nor repeatable, or are just made up for marketing purpose?
When for example a tool vendor or a methodology inventor support a claim with case studies, there is no peer-review process or defined ways for validating the findings nor the data collected during these studies, there is no way to prove claims are correct or not.
Without complete certainties and first principles that explain Software Development Production, is hard to distinguish between mainstream ideas that everyone like from what really work in practice.
This is the thin ice professional software production and real software developers walk on every day.
And still things that affect our daily life like i.e. Internet, GPS and Smart Devices or Social Networks are possible just because the Software Industry.
At the same time for many things Professional Software Development is like medicine at the times of Hippocrates of Kos in ancient Greek: making huge progress and still fare away from fundamental findings that will come only in the following centuries.
The key point here is that : being aware and accept what is known today about professional software production and what is not, because this permit
- to take project decisions based on proved facts instead of myths, cults, superstitions or fashion
- to ignore bold unfounded claims and not to forget what is known and proved
- to recognize what is unknown uncertain undecided or is a conjecture and adopt the proper approach with that (as it has been learned from Lean and Agile)
Without been aware recognizing and accepting what is uncertain and unknown about professional software production we can face academic researches and papers, books, claims and professional IT conferences speeches that 20 years later will look like the old videos of Ron Hubbard today when he talk about the human brain, psychology or the E-meter. They will look so simple entertaining persuasive and at the same time so evidently naive wrong and untrue.
And then when there is a debate between two propositions, something like the
Religious Technology Center should be instituted to decide the winner.
See also:
-
Computer Science Is Not a Science, Communications of the ACM, Vol. 56 No. 1, Pages 8-9
-
Two Solitudes Illustrated, about IT industry and academia
-
Why you should not be an Agilist
-
Many ways of looking at Software development, from software cults to software fashion
-
When diversity, dissent and responsibility lack