In episode three of Oddly Influenced, jUnit and What Makes a Successful Tool, Brian Marick is speculating about the relative lack of adoption of test-driven development compared to the tooling that supported it.
  After putting forward a particular theory he wonders whether it's "true" and
  says:
That ... gives me an opportunity to state a theme that’s been in my work for decades. I read books ... about how people do their work. I’m not so concerned if the theories are true as if they are suggestive – that is, do they give me ideas about how software people should do our work.
[The] next task is trying out whether those ideas have good results, in our work. Because everyone’s theory about people is somewhere between fully wrong and fully right, and is always incomplete.
I like this perspective a lot. It puts me in mind of Paul Feyerabend's Against Method, a book I failed to finish because it was so dense and widely-read, but which has a core thesis that I found interesting.
As I understood it, Against Method says that all scientific theories have holes and are generally used by practitioners pragmatically. Despite this, there is a risk that theories will calcify over time and become constraints on our thinking.
  We can help to avoid that by deliberately looking for alternatives, even
  non-scientific ones, that have some useful explanatory power for
  some aspect of our observations even if they are incomplete. Feyerabend
  coins the term counterinduction for the comparison of approaches with
  regard for utility in relevant cases rather than coverage in general. He goes
  further and suggests that significant scientific advances tend to come through
  these left-field challenges rather than incremental refinement of an existing
  dominant theory.
For me, this is a heuristic approach. Theories are
  tools to be selected for their potential value in the situation I perceive.
  Application of the theory by me, at this time, in this context, with this aim
  might succeed or fail. This adds to the knowledge I have about the
  applicability of theory under certain conditions, to the extent that I
  understand them and care to look into them. 
That last sentence is interesting, and in turn recalls a talk and essay I wrote with Sneha Bhat for CEWT #5. In it, we asked which of theory and practice is primary and concluded the required data is the starting point, and also the ending point, of a piece of work.
The theorist/practitioner distinction has no real validity. We’re all on Team Practice, although we may have different levels of interest, ability, and inclination in practising in particular ways ... Don’t just pick up your favourite tool and begin hacking away. Whatever your biases, you can start any task by asking what data you need, then making a conscious choice about how to get it.
I love how ideas chain together. Having written that last paragraph I am reminded of the (over-)thinking I did on tool selection a few years ago. In trying to summarise that particular journey I said:
But every decision to use a tool is also an opportunity to make a different decision. Deciding to think about how and why a decision was made gives insight that can be useful next time a decision is made, including the realisation that a decision is being made.
  Which brings us back to the point Marick made at the top: a significant value
  of theories, tools, and practices is in the results they bring to a particular
  situation, not in whether they are in some sense true. 
We can learn about that value, about that truth, by exposing ourselves to ideas and then thinking about and experimenting with them. Of course, this carries risks of incompatibility with existing assumptions, prejudices, and beliefs and the discomfort that results from it.
Do you dare?
Image:
    https://flic.kr/p/5BEjm2
