3 ms·
You can't really think that the fact that some people like TDD and some people hate it is evidence that we're not doing it right? I think it's evidence that we
by raganwald 13y ago
You can't really think that the fact that some people like TDD and some people hate it is evidence that we're not doing it right?
I think it's evidence that we don't understand it. Compare this to medicine. I think we're Witch Doctors. I don't think that the problem here is sorting out when to use leeches and when to submerge the patient in water,.
I think we need to understand actual physiology and medicine. That leads to understanding blood clotting and the role of bacteria. Which may lead us back to leeches in some cases, and may get us to wash our hands and wash the patients. But it will also lead us to entirely new ways of treating patients and the wholesale rejection of many of the old ways.
So I agree that neither TDD nor Pair Programming are OneTrueMethodologies.
- jeff303 13y agoI don't think that's quite an apt analogy. The different software development methodologies would be more like different medicine school programs or individual medical students' learning styles, not the end production of the doctors (which would be akin to the shipped software product).
- raganwald 13y agoI don't think that programming is where medicine is, so I find it difficult to emotionally buy into the idea that Pair Programming is like a Medical School program. But I accept that if you think we're further along, you'll make that point.
- georgemcbay 13y agoI'm lucky enough to be healthy enough not to need a lot of direct contact with the medical establishment, but I know many people who have had illnesses that were misdiagnosed repeatedly by many different doctors, and a few people who had problems for which medicine's answer was "sorry, we ain't got shit for you, go die plz". I wouldn't say software development is "ahead" of medicine, though, the two fields are simply not at all comparable. I have yet to hear an analogy between software and another field (architectural engineering comes up a lot and that one is also pretty stupid) that actually makes any sense.
- mpyne 13y agoI fully agree that we don't really understand why TDD or Pair work (when they do work) or don't work (when they don't). Solving that is important in its own right though, not because people do or do not like them. I don't like doing push-ups, even though I understand at a basic level how they improve my upper body strength. I'm pretty sure that even if we should someday understand why TDD works (or doesn't) that there will still be good software developers that don't (or do) like it.
- raganwald 13y agoI was thinking that people championing and rejecting these practices was more a telltale sign that we don't understand them than anything inherently wrong with disliking things. So wrt pushups, it's as if millions of people were saying, "pushups don't work" and millions of others were saying, "pushups made me strong." I think if we solve the problem of understanding why these things sometimes work, we will discover some deeper, more important thing. Maybe pair programming isn't about pairing at all, maybe it's really that we suck so bad at code review, and "soling" pair programming will actually make it obsolete. I don't know, but as they say, "The best way to predict the future is to invent it."
- mpyne 13y agoOK, I see what you're saying. Something to the effect of "they can't all be right", so let's figure out what we're missing?
- joerayme 13y agoWhat you're assuming here is that everyone is doing pushups in the same way. Some of the difference between people liking/disliking certain approaches has to be related to not understanding it and applying it in the same way, surely? I myself couldn't get my head around TDD for ages and then it suddenly clicked and I became a complete convert.
- quanticle 13y ago>Solving that is important in its own right though, not because people do or do not like them. Is it? I tend to think of writing software as something like writing literature. Or composing music, perhaps. I don't see people up in arms saying, "Our understanding of writing is broken because some people like to write structured outlines before they write, whereas others just start free-writing and come back to edit." We don't say, "Our understanding of music composition is broken because some songwriters write the lyrics first but others write the melody first." Why is it so important to understand why different programmers employ different techniques?