Dear Agile/Lean/Scrum/XP Person
I want you to imagine a scenario for me.
Did you know that carrying a Tiger’s Eye crystal provides protection and clearer thought? Yeah OK I agree, all that crystal healing stuff is just silly nonsense that essentially exists to provide a placebo effect. This doesn’t stop some people from genuinely believing in the healing properties of crystals of course — and they are certainly being exposed to a bias of confirmation. This is because a critical failure of rational faculties has occurred somehow — you and I see straight through it; it’s obviously nonsense! But they seek peer reinforcement for their mistake and have a hard time understanding what it is like to not believe in the healing properties of crystals.
If it is so blatantly false, then why do some apparently intellectually-equipped people swear by it?
Now suppose you were invited to be healed by a crystal healer and you decline because you have other relevant tasks to achieve. What would you say when asked why the declination? You wouldn’t want to insult the questioner — that they believe such a ridiculous proposition doesn’t compel you to simply insult their person, however, if you were to answer the question honestly, they would take offence. You’re caught in a pickle now, so what then? Dishonesty? Appeasing their fantasy?
Would you answer with a question, “I don’t believe crystal healing is effective, because there is no empirical data to suggest it is so. Can you show me otherwise?” to which they respond, “Sure! We use a process of high energy physics photography to derive our scientific conclusions.” So what now? They just provide more bunk — again, you and I see straight through it. You can make no progress. The only reasonable conversation you can have is one about how to deduce true facts in general.
But it gets worse, now imagine that the invitation to the crystal healing session requires that you drink frog poison upon entry, because the ancient Egyptians did it to appease the Gods with a small personal sacrifice. In this scenario, 150 people die each year from ingestion of frog poison, but the crystal healers put this down to anger from the Gods that must only be appeased further, otherwise it will be 300!
At this point, you now object to attendance on the grounds that it is detrimental to your health. Furthermore, you may even feel a moral obligation toward anybody else who has been coaxed into this form of abuse. You’re in a really big pickle now aren’t you?
This is exactly the pickle I am in when you try to peddle your pseudoscience onto me. I don’t want to insult you, but I don’t want to suffer the adverse effects of your crack-pottery. Furthermore, I don’t want other people, who have been tricked (as you have been), to suffer — I feel compelled to warn them against it. Again, not to offend you (though it might), but because I have a deep sense of empathy for all people, including you.
On the other hand, I could do what a lot of us non-crystal-healers do and be proactive in completely ignoring your existence wherever possible but that doesn’t take away from my sense of empathy.
February 19th, 2009 at 4:33 pm
I would not answer with a question as you suggest, because that would be conceding the premise that “crystal healing” is a concept. When pressed, a witch doctor can always supply “evidence” in the form of some baroque “scientific” data that would take you ages to sift through. The proper question to ask is: how is the concept arrived at in the first place? What was the method of its discovery? You will find that no such process or method can be shown.
There’s a principle to be unearthed here: Any theory, for which a process of induction cannot be shown, may be dismissed out of hand. So it is with “Agile”, “crystal healing”, “black holes”, fairies, pixies, and unicorns.
To quote Leonard Peikoff: “It is not your responsibility to refute someone’s arbitrary assertion—to try to find or imagine arguments that will show that his assertion is false. It is a fundamental error on your part even to try to do this. The rational procedure in regard to an arbitrary assertion is to dismiss it out of hand, merely identifying it as arbitrary, and as such inadmissible and undiscussable.”
I think it is perfectly polite to say “I don’t have any reason to believe that what you’re offering is of value to me and so I must decline.”
February 19th, 2009 at 5:42 pm
I am not a native english speaker, so there may be some subtle points in your post that I missed, although I understand the reasoning in it. And I would really like to know how you came to comparing Agile/Lean/Scrum/XP with crystal healing.
Disclaimer: I may be termed an XP person so it is possbile you should ignore my existence
regards,
February 19th, 2009 at 6:08 pm
Arnaud,
They are all pseudosciences that serve no benefit under any circumstance and often have a detrimental effect on the stated objective.
Apocalisp is right in the fact that the question is not even sensible.
February 19th, 2009 at 7:36 pm
Fad diets are probably closer, in that there is frequently A truth at their heart, but one that is narrowly applicable.
Having looked into the area, maintaining a sceptical eye, there’s typically a lot of good pragmatic advice at the core of each of these disciplines - which is then translated into universally applicable dogma.
Also, like Marx, they often present a good criticism of the status quo - but as we know from basic logic, disproving proposition A does not automatically mean your ideas are valid.
The question is - if not any of the above, is their any methodology that empirically works? How do you know that what you’re using now is, empirically, the best approach?
(It’s partly a trick question - I don’t believe there is a one-size-fits-all approach)
February 19th, 2009 at 7:41 pm
I’m unclear as to which aspects of the agile/… methodologies you consider as ‘pseudoscience’. No software development method is scientific in any regular sense of the word, so I’m note sure what you mean when you classify them as ‘pseudoscientific’.
The shortcomings of the ‘classical’ software development methods have been thoroughly documented, even in layman’s terms in a book like ‘Code Complete’ by McConnell. If something is scientific in this realm, then it’s the demonstration, by failure rates, etc., that classical methods like the waterfall method Just Doesn’t Work.
In my mind, adopting an agile methodology means: adopting practices that mitigate the shortcomings of the ‘classical’ software development methods. It’s not a religion, it’s not something to be strictly adhered to and it’s certainly not scientific.
February 19th, 2009 at 7:42 pm
Hello JulesLt,
Yes, there is much pseudoscience around fad diets, which are just as applicable as crystal healing, chiropractic, acupuncture, homeopathy, etc. They are all equivalent in terms of their absurdity.
There is no such thing as good pragmatic advice. Pragmatism is by its very nature, bad (advice) — indeed, as an flawed ideology, its detrimental effect is attributable to much of the deviations from reality that we can observe.
Your final question is not in fact a reasonable question and the only valid response is nothing. It begs the question that a “methodology” that “empirically works” even need to exist.
February 19th, 2009 at 8:06 pm
Ivo,
It may well be the case that no “software development method” is scientific, but this does not disqualify existing non-concepts from the charge of absurdity.
The reason they are pseudoscientific is because they are entirely arbitrary. Similarly crystal healing is arbitrary — I may well invent some method of healing where by placing clothes pegs on your ears each night, you will live an extra 5 years.
This arbitrariness is also applicable to the failed programming ideas referred to and there is no process of induction that leads to the formation of the hypothesis in the first place. This is aside from the blatant confirmation bias that proponents are almost certain to use in an attempt to salvage it — but in doing so, you look precisely like a crystal healer quoting anecdotes from their devoted clients.
February 19th, 2009 at 8:27 pm
But if that is way we are weighing these methods, then the software development method you are currently using is also pseudoscientific.
If you ever discuss software development methods with others and put forward arguments in favor of some of your practices, you are forwarding unscientific arguments: you do not have statistical or theoretical data to back it up, it’s just your experience and common sense that allows you to explain why the method works.
What I’m unclear about is: what sofrtcoming are you claiming of agile/… methods that you think ‘your’ or ‘other’ methods lack?
February 19th, 2009 at 8:36 pm
’sofrtcoming’ should of course be ’shortcoming’.
(I really should take the time to write that Wordpress plugin that allows commenters to edit their comments for a short period of time to fixe typos. :))
February 19th, 2009 at 11:20 pm
I am really puzzled, what are you talking about that could be defined as pseudo-science ? What is the question that should not even be asked ?
I do not want to repeat what Ivo said but obviously software development is not a science (and probably not engineering either), or maybe a social science if one wants. And I do not know of any person in the XP or even Scrum community that claim it to be scientific.
There may be some people who think ‘Agile’ (whatever that may represent in their mind) can cure all their personal and professional problems, and I know people of that kind, but that has nothing to do with the relevance of TDD or Continuous integration as software development tools and practices, which themselves has little to say about the truth or falsity of a subject reduction theorem in type theory.
February 20th, 2009 at 10:30 am
One of the problems, of course, is that software development projects are rarely written up as case studies, even though there are journals for that purpose. Failed software projects are even more rarely written up, because there’s usually no budget to do so.
Having said that, a few successful projects have been written up; I know of one scrum project, for example. But, of course, Tony wouldn’t be aware of that because in his universe, there’s no such thing as “scrum”, and hence it’s logically impossible for a scrum project to be written up.
Note: I know very little about scrum and don’t claim that it’s in any way useful. But to claim that it doesn’t even exist as a concept is just playing the Humpty Dumpty game.
I sometimes wonder if we should take a leaf from the evidence-based medicine community. Every project of significant size should be written up as a case study. These studies should then be evaluated and collated into systematic reviews. The systematic reviews would then give us a basis to evaluate how effective various practices are.
It’s a huge undertaking, but at least it would get rid of most of the nonsense on both sides.
February 20th, 2009 at 11:31 am
Many Agile/XP programmers would equally fail to understand your value system. This civil war among programmers is hurtful to us all. Instead of concluding that a large faction of programmers are idiots and fools, perhaps it would be worthwhile to try and understand where they are coming from. They are really doing a completely different kind of programming. First of all, it is algorithmically trivial, as are the data structures (mostly lists). But it is behaviorally complex, and inherently stateful and reactive. The worst thing is that there are no precise specifications, nor can there be: the design of the software co-evolves with its implementation and its user’s needs. People who live in that environment learn to value simplicity and flexibility. They tend to think that functional programmers live in an ivory tower, and wouldn’t last a day in the trenches of real world software development.
February 20th, 2009 at 11:37 am
Actually, it’s not my universe where scrum does not exist, but it’s the one in which we find ourselves. I don’t own it or claim to be an especially important member of it. Proponents of a non-idea, who you might say “live in an alternative universe” of course disagree that scrum does not exist. I prefer to say “they have made a mistake in the method of induction” or something similar — it’s more constructive.
Find me a proponent of scrum, ask them for a definition of any trivial aspect and I’ll find you a proponent who defines the same (attempt at a) concept using the complete anti-thesis. They’ll both swear black-and-blue that they are right, before conceding that the opponent “is not a real scrum proponent”. This is an invariable and highly predictable response.
Indeed, we should take a leaf from evidence-based medicine, where pseudoscience is absolutely rife. I’ve had to sift through it for the last 18 months before having to finally diagnose my condition where several practitioners have failed. Many of them practice science-based medicine (some do not, to my disappointment and expense), but they lack the rational faculties required to derive true facts about the world — the one in which we find ourselves.
February 20th, 2009 at 11:50 am
I’d disagree that fad diets are in the same category, as if followed they do usually achieve their aim - i.e. weight loss - whereas alternative medicines don’t - beyond the same placebo effect observed with sugar pills.
All diets basically boil down to calorie control - just that most of them dress this up in eliminating food groups, following recipe plans, etc, rather than calculating your calorie intake.
(Unless of course you’re referring to things like ‘high in anti-oxidants’ and the implication that eating them will tackle free radicals).
I don’t really follow your point on pragmatism. I presume in calling it a flawed ideology you might be talking about Pragmatism as a philosophy, but that wasn’t the sense in which it was used in my sentence - I used the common sense - i.e. to pursue achievable goals, rather than a theoretical ideal.
Most texts on any development methodology (’classic’ or Agile) contain some specific useful techniques, even if you don’t swallow the complete package.
> It begs the question that a “methodology” that “empirically works” even need to exist.
It does indeed. But what is the opposite approach? Using methodologies without any concept for whether they are useful or harmful - or perhaps more to the point, useful to the situation in hand?
Or to hell with all methodology, let everyone learn best practices for themselves through experience and osmosis?
February 20th, 2009 at 1:05 pm
Jonathan,
There is no war here. Wars occur among the zealots of these non-ideas. Not only am I not a participant, but I simply cannot be engaged in a war because I do not hold a position since the proposition never arises. I am begging these people to cease from imposing their ideas on me and to try really hard to consider an Ignostic position on their arbitrarily-derived claims.
I haven’t called anyone an idiot or a fool, but I do claim that there is a failure in the reasoning department (except for the few who are enlightened to the facts at hand and exploit the proponents without their knowing).
February 20th, 2009 at 2:40 pm
Can you be more concrete? I’m trying to judge the merits of your claim but you present only a hypothetical scenario about interacting with a person that believes something you judge false. You claim that only empirical results count, but your argument is presented in the form of a metaphor. Do metaphors now constitute empirical evidence?
February 20th, 2009 at 3:19 pm
Paul,
No I am not providing evidence for any claim since the burden of proof does not lie here.
It seems that the confirmation biases of my audience run quite deep. Imagine — no really imagine — that I declared “running around a clothes line 5 times each morning yields good software”. Notice the arbitrariness of the claim? There is no process of induction that led me to form the hypothesis.
The same arbitrariness exists for the pseudosciences that infiltrate the industry more pervasively. If it doesn’t look that way, it is due to a bias — unless of course, the process to form the hypothesis is made available.
This junk exists to exploit non-thinkers, just like other crackpottery, such as crystal healing. The “Agilists” et. al. are the Chiropractors of the software industry.
I’m asking to be excused from answering to and from any imposition to this silliness. Go right ahead and prescribe these ideas to paying clients — they have my empathy — but leave me out of it.
February 20th, 2009 at 7:33 pm
Tony, what are these trivial aspects that you mean when you say “ask them for a definition of any trivial aspect”? Can you give definitions of the same aspects of the development methodology that you are using?
February 20th, 2009 at 9:23 pm
Ivo,
Ask an Agilist about the DRY principle then watch them pick up Java in the very next breath — the very thesis of endless repetition.
Who ever said I am using a “development methodology”?
February 20th, 2009 at 10:13 pm
I had the impression you are a software developer, but if you are not, you can read ‘others’ instead of ‘you’ in the last sentence of my previous response. My point was that everyone that develops software uses some methodology to do so. Perhaps that methodology is implicit and consists of procedures that are unconsciously followed as being ’sound’, but that still makes for a methodology. Now what I do not understand is in what way, according to you, arguments for ‘other’ methodologies differ from arguments for ‘agile’ methdologies and what is ‘pseudo-scientific’ about these latter arguments, that doesn’t hold for the former.
I also do not understand your remark about the DRY principle. It has nothing to do with Java and when you ask someone like Kent Beck about the DRY principle, he will not mention Java. He will say the same as McConnell says in ‘Code Complete’ and many others of different plumage have said on many occasions. Is het the kind of person you intend to address in this blogposting?
BTW, you do agree the DRY principle is a sound principle to keep in mind while writing software?
February 20th, 2009 at 10:27 pm
Yes I am a software developer for a commercial company. The “methodology” I use has no name, since if you insist I must have a methodology, then I’ll concede only to the point that it doesn’t need a name.
The DRY principle says enough in its expansion, Don’t Repeat Yourself.
It has a lot to do with Java, when someone professes this principle, then in the very next take, uses Java or any other grossly inept language in an attempt to achieve a practical objective. This is because this language is at its very essence, all about repetition — I cannot think of anything more diverted. I’m only using my own anecdotes — I see this doublethink quite often. Such is the nature of the practitioners in this industry.
Yes, I agree it is a sound principle, but I think John Hughes probably captures it best in Why Functional Programming Matters. Not Kent Beck or McConnell in Code Complete — in fact, as a university teacher, I’d recommend against both of these resources for learning about this principle since they both provide — at best — a very subverted understanding.
February 21st, 2009 at 12:42 am
Such principles are programming languange agnostic. People using Java, or other non-functional languages, can also benefit tremendously by following such principles.
Now concerning my earlier point: if you wanted to explain to someone the methods that you use to ensure you produce readable, mainainable, high-quality code, wouldn’t your arguments be susceptible to the exact criticism you give in this blogposting?
February 21st, 2009 at 4:58 am
Tony,
As far as the thought experiment with the “running around a clothes line 5 times each morning yields good software”, I think I can safely say that this process would fail, that the process would gain no traction, and zealotry wouldn’t really be a problem. (Actually, given how little exercise many programmers get, it probably would help your software a little bit, but that’s beside the point).
I’m surprised by your claim that reason dictates that hypotheses must be inductively determined. That’s a pretty unrealistic vision of how reason (or scientific thinking) works, since seeing a pattern in data requires an idea of what kind of patterns to look for. That is, hypotheses have to precede the gathering of inductive evidence, even for hypothesis formation. Otherwise, I have to pay attention to all factors in the universe.
For example, I could claim “functional languages produce better software”. I could justify this claim by looking at similar cases where functional and non-functional languages were used, quantify their outcomes, and compare. But how can I inductively form the hypothesis itself? I have to suppose that “functional languages” and “better software” may have a relationship, and then start looking at cases. Where does that initial supposition come from? It could be from anywhere: a hunch, a sense of aesthetics, personal experience, a blinding vision, similarity to other problems, because your boss told you, etc.
What I get from your examples is more that you have some beliefs about what kinds of things do and do not affect certain outcomes. Crystals and health are unrelated; methodology and project success are unrelated; clotheslines and software quality are unrelated. You describe these as (or imply they are) obvious rules, rather than the beliefs they are. These kind of foundational beliefs about what is and isn’t important are pretty tenacious things, and this causes a lot of friction.
All that being said, I agree with you that it is frustrating when people believe things that you don’t. It is even more frustrating when they try to impose those beliefs on you, when your own contrary beliefs have been forged in the crucible of your own experience and tempered with reason.
I’d still be interested to read at least one example of how Agile/Lean/Scrum/XP people are trying to impose their beliefs on you, how you reacted, and how they reacted back. Not in any kind of empirical-study way, but just to get a better sense of the sources of your frustration.
February 23rd, 2009 at 2:02 am
http://www.thoughtworks.com/
Here are the main offenders.
I am replying to the main point and not the comments. Think about Agile and other BS this way. When you first learned programming. There were a couple of things required to make anything happen. You needed a computer, probably a programming language. Maybe a text editor of some type. When I programmed when I was young, since then programming hasn’t changed to much. Now, consider Agile and other methodologies. Can software be written without Agile? and other nonsense. Of course it can. Not even to mention that Agile for company A could be completely different from company B. What about the watefall model? It seems like Waterfall describes a sequence of events as part of the software design and deployment process. And as far as I can tell, there aren’t religious fanatics for Waterfall. “Requirements, Design, Implementation, Verification, Maintenance”, describes a simple set of sequences in the software development process. It is clear if you missed the ‘testing’ aspect of the Waterfall model. On Agile, are you not doing Agile right if you don’t meet for 15 minutes everyday? Or gasp!?! you spend a lot of time during the Design phase.
Agile and other variants is non-sense, always has and always will be. Too bad companies like Thoughtworks continue to peddle the non-sense.
February 23rd, 2009 at 2:12 am
Responding to Ivo:
“I’m unclear as to which aspects of the agile/… methodologies you consider as ‘pseudoscience’. ”
I would say the part with Pig and Chicken Roles. 5-15 minute meetings everday.
“It’s not a religion, it’s not something to be strictly adhered to and it’s certainly not scientific.”
Isn’t that the definition of pseudo-science.
And this is the sticking point with me. If you can’t strictly adhere to it. And it is not scientific. Then there is no way to prove that Agile is going to benefit your organization. Note, YOUR organization. Then why should we care? Does it work for the highly paid consultants at Thoughtworks. They would like to believe so.
February 23rd, 2009 at 3:02 am
Berlin, that certainly isn’t the definition of pseudo-science. For something to be a pseudo-science, it must first portray itself as a science or in other ways show attempts to be a science. However, software development methodologies are not attempts at science. Therefore, it is a category mistake to try to dismiss such a methodology on the basis that it is pseudo-scientific.
If you were to explain to me how you develop software and I ask you to explain to me why you do it that way, then none of your explanations will be of a scientific nature. Should I therefore be able to dismiss your methodology on the basis that it is ‘pseudo-scientific’? Of course not; your practices probably make perfect sense to me.
February 24th, 2009 at 7:41 am
Tony - I think that what I and other commenters are interested in is . . . if you’re so hostile to Scrum/Lean/XP/etc, what it is that you advocate instead, and why? So that we can set up our own consultancy offering the next thing after Agile, of course.
Berlin - quick 5-10 minute meetings can be a good technique to introduce into a team who clearly don’t talk to each other, or rapidly diverge off-track without guidance, or don’t communicate slippage until a weekly meeting - but that works just as well in a Waterfall project, or for a chef in a kitchen.
Point being it’s a specific managerial technique for dealing with a particular situation - and a lot of what I see in Scrum, etc, books seems to be of that nature. The problem is, of course, that it’s bundled into a single package - and people seem to focus on the rituals (peer programming) rather than the why.
Or indeed start trying to sell it where it’s not appropriate - I presume at least one of the causes of the Agile movement was the push of Big Project Methodologies into smaller inappropriate projects.
>Then there is no way to prove that Agile is going to benefit your organization. Note, YOUR organization. >Then why should we care?
But that takes me back to my question to Tony. If we accept that the management of most software projects in inadequate, from both the point of view of customers and developers, we clearly need better managers - which means either experienced ones or better managerial training.
Ideally we want to make sure that training does offer some provable benefit.
February 24th, 2009 at 4:46 pm
All,
I can appreciate the label pseudoscience for a field where things advocated by practitioners are independent of empirical evidence for them. Some may accidentally have empirical evidence but that’s not a criteria for inclusion.
However, can we please not associate it with Pragmatism (Pierce, Dewey, James etc.) which definitely is about empiricism and avoiding the supernatural or transempirical?