At the very end of yesterday's post I mentioned Yo Dawg. Yes, Yo Dawg is important, in that it's a meme.
So what's a meme(*)? It's an idea - a concept that spreads from person to person. "All Your Base Are Belong To Us", LOLCats, and De-Motivators are all memes.
What's interesting about these memes on the intarwebs is not just that people see them and laugh - or that they see them, laugh, and forward to friends. It's that they make /their own copies/ - their own riffs on the idea - and add to a body of knowledge. And, thanks to google, a great deal of them are indexed. Thanks to pagerank, the better ones come to the top.
Ideas in software development are memes. Test-Driven Development is a meme; Context-Driven Testing is a meme. Acceptance Test Driving Development is a meme.
JB Rainsberger isn't just interesting because he's contributed to the software development body of knowledge; it's because he read an XP book, never met the original authors, yet ran with the idea and helped popularize the idea - creating an entire series of events called "XP Day" all over the world. JB was infected by a meme - and took it on enough to make it his own.
Seth Godin recently spoke on Memes at the Business Of Software Conference:
---> For example, the canonical meme from the 20th century was sliced bread. For someone to use the phrase "... the best thing since sliced bread", implies that sliced bread must be pretty good to start with, no?
Here's one item from Godin's message: Some memes are destined to win, regardless of whether or not they work. Test-Automation, for example, is very appealing to developers, because automation is what they do. It's no surprise, when devs look at testing as a computer science problem, Automation is the first thing to come to mind. So we have generation after generation talking about test automation as the be all and end all of the test process, without ever having actually studied the very human, cognitive and communication process of software testing, nor having done any research on failure modes of software defects.
Thus, after the wild (and deserved) success of test-driven development, we have the acceptance-test-driven-development meme creating immediate success with much less tangible evidence.
This should be no great surprise; for twenty years Westerners have been conditioned to two similar memes - that housing prices always go up, and so does the stock market. These have near-universal appeal. Somewhere out there, right now, an investment counselor is suggesting a couple put away 20% of their income in stocks as a retirement nest egg, and a real estate broker is suggesting another couple purchase the biggest home they can afford, because, after all, salaries go up over time, right?
I believe that the communities I belong to - including the folks who read this blog - have ways to test software that are significantly better than the status quo, and we have ways to communicate them and techniques to teach them. Yet if our testing ideas are memes, we need to think about ways to package and present them to win. I believe research and experience can /help/, but often humans don't make decision rationally.
I'm not looking for labels. Agile is a label; anyone can claim it. I want memes we can grab, embrace, make our own, and share. So how can we connect our ideas to make them memes that are viral (or perhaps, "more viral")? This, I believe, is a conversation we should be having.
I do not claim to be a master of memes, except perhaps of the kind "I'm on a boat." "The Boutique Tester" is probably my most recent idea with traction. (Too bad I have no free billable hours.)
What are your ideas, and what do you think?
--heusser
UPDATE: Do you know people who quote "The Holy Grail" from Monty Python for not apparent reason? Maybe you're one of them? /That/ is a meme
(*) - The idea was popularized, and poossibly coined, by a british gentleman named
Richard Dawkins in his book The Selfish Gene.
Schedule and Events
March 26-29, 2012, Software Test Professionals Conference, New Orleans
July, 14-15, 2012 - Test Coach Camp, San Jose, California
July, 16-18, 2012 - Conference for the Association for Software Testing (CAST 2012), San Jose, California
August 2012+ - At Liberty; available. Contact me by email: Matt.Heusser@gmail.com
Friday, July 31, 2009
Subscribe to:
Post Comments (Atom)
8 comments:
Still, I haven't got the Meme "I'm on a boat", but at least now I could make sense of your mail list entry a few months ago...
get your towels ready, it's about to go down.
On a boat is a Saturday Night Live skit, available on Youtube. You can engage with the meme by quoting the skit. I actually got back from a cruise the week I saw the skit, and it stuck with me. So I both want to go to a Software Conference "on a boat", and actually, would like to go to a software conference on a boat ...
(with my swim trunks. And my flippy-floppies.)
I'm struggling to make sense of what you're driving at. (Apologies in advance if the following sounds overlabored as a result.)
The two main things that make sense to me are these: "[we] have ways to test software that are significantly better than the status quo, and we have ways to communicate them and techniques to teach them".
I'm interested in reading more about these ways and techniques. The "meme" baggage and your examples and stories aren't helping, for now.
Much as I'm fond of JB, for instance, I'm pretty sure the credit for inventing XP Days goes to someone else. The first one was in London in 2001.
I also suspect that you're mixing up distinct meanings of the word "meme".
There's the "Internet culture" meaning which you've alluded to. Silly stuff that gets passed around. That sense is rather uninteresting as a tool to analyze change in the software industry.
The Dawkinsian meaning is more precise; it identifies a meme with a replicator whose substrate is human culture rather than DNA. In that sense pretty much all of human culture consists of memes; the term is a way of reinterpreting cultural innovation, roughly starting with the apparition of human speech, as a process similar to Darwinian evolution.
What's interesting with this more technical meaning of "meme" is the Darwinian tools that go with it, including a story about "memes that replicate in spite of not really helping their hosts" that's a bit more sophisticated than either Seth or you make it out to be.
(If you're not going to use the thought processes that go with the term "meme", you're better off using the standard term "ideas". Don't dress up your thinking with fancy terms, if it can stand up by itself.)
The story with genes is that, for the most part, you can explain the spread of a gene by assuming it does the body that's hosting it some good. A body is a gene's way of making more genes, and the genes who win out in the game of natural selection tend to be those that enhance the reproductive success of their hosts.
There are exceptions, which are as rare as they are fascinating, such as the "segregation distorter genes". More prosaically some genes can have more than one effect; say, produce more vigorous sperm at the cost of being more susceptible to a particular disease. The "selfish gene" theory, by taking the gene as the unit of selection, helps understand how these conflicts sometimes get worked out in favor of the gene and to the detriment of its host body.
Similarly, most memes replicate because they make some kind of sense. "Rub these sticks together and they'll get hot enough to make fire" is more likely to spread (because it works) than "Pray to the fire god and you'll eventually make fire". Obviously there's some resistance to its spreading: the effort involved in actually rubbing sticks long enough to check it out. But it's the better contender, even though the "fire god" version has more appeal.
As with genes, there are exceptions, but they are quite a bit more involved than just "packaging". For me the bottom line is that no meme is "destined" to win, just as no gene is "destined" to win. Under the meme theory, any given meme brings about consequences which enhance, or deter, its own propagation; the details of that, in particular the other memes that it is competing or cooperating with, determine the outcome.
Your observation that TDD and its cousin ATDD have gotten some traction *because* they are favored by a supposed "automation" meme is interesting, but needs buttressing.
Assuming it's true, you may be on to something, but you'll note that it's not the "packaging" that helps an idea in this case; it's the content of the idea itself, and the fact that it can count on coexisting in the host mind's with "friendly" memes.
So, what you might want to do perhaps is take a detailed look at one of those ideas about testing that matter to you, and make a list of other ideas that constitute a congenial or a hostile environment for that idea ("meme" if you will).
Like Laurent I have reservations about “meme” being used in this way. However, I’m coming from a different direction. Laurent seems uncomfortable with the word being used loosely to describe ideas that are transmitted. That’s the only sense with which I’m comfortable with it. “Meme” as science seems highly dubious; an attempt to subject cultural phenomena to scientific observation and explanation. More dubiously the idea tries to apply biological techniques to human culture. I’m deeply uncomfortable with that approach.
I have less of a problem with using meme loosely to describe ideas in movement through society. However, the problem with using it as a metaphor is that it can carry over some of its scientific implications and rather confuse the debate. Calling an idea a meme, rather than just an idea, implies that it has some intrinsic force, that it can drive itself forward independently of the people harbouring the meme. They are just hosts that are exploited by ideas that blindly force themselves onwards seeking more hosts to infect.
Ok, that’s perhaps placing an unkind spin on the meme concept, but I don’t accept the notion that ideas can spread and replicate independently of the people promoting them. If a writer uses the word “meme” and then goes on to talk about ideas spreading regardless of their merits then that worries me in ways that the writer didn’t necessarily mean.
Yes, ideas certainly can spread and take hold even if they’re wrong, or inferior to rival ideas. However, that’s entirely down to decisions made by individuals, though possibly under heavy outside influence, and with consequences that can be unpredictable and surprising when taken en masse.
Sometimes these decisions are taken irrationally. However, in software development and business in general I think the problem is less that people are irrational and more that we often fail to analyse and understand peoples’ motivation. A decision might appear irrational, but it might actually be perfectly rational given the incentives, pressures and goals that are driving the individual.
Often the problem isn’t a lack of rationality, but a lack of transparency and honesty in decision making. An example that frequently bothers me is the almost wilful confusion of quality with control. It is usually difficult for managers to say; “forget quality, we can live with an application that is a crock of crap provided we hit our dates and budget”.
What /is/ acceptable is to set up a tough regime of project governance that looks like it will help ensure you get the dates and costs right, whilst assuming incorrectly that the rigid structure will produce a quality product. I’ve seen these dreadful structures given Orwellian names like “Quality Management System” that mean the exact opposite of what they promise. They drive quality down because good people are producing shelfware rather than software, and the iteration that good software requires is suppressed in order to permit a neat, structured project plan.
Eventually the wheels will come off such a traditional project when the changes to requirements come in, or the users realise that the design doesn’t meet their real needs. The alternative to this project disruption is to steamroller the users, and acknowledge that this time quality wasn’t a priority, the costs and schedule were more important. In either event there is a pretence that someone screwed up, or events conspired to defeat us, or that we were unlucky. There’s no admission that the approach was flawed, and that the consequences were an /inevitable/ result of our decisions. Next time it will be ok because there’s no reason to assume we’ll be as unlucky again.
People who work like that are taking rational decisions at each stage. They’re wildly mistaken but that’s because the premises on which they base their rational decisions are flawed. They know that they’re judged by time and cost, and they’ve been assured that governance equals quality, so they proceed on that basis. Each individual decision is taken rationally at the time, in the circumstances, but when you step back and look at the bigger picture you see the insanity.
As testers I think it is one of our challenges to be the counter-cultural iconoclasts; the ones who see the emperor’s got no clothes, and call it out. We need to spot the unspoken assumptions, especially the hidden little secrets, and force everyone to acknowledge the embarrassing truth; that this organisation doesn’t actually care about quality, but it doesn’t have the guts to admit it.
This is maybe wandering way off beam from the original topic of memes, but I think it illustrates that ideas might spread virally, but that’s just a metaphor. They are not cultural viruses. They can be discussed and challenged. They can be blocked or promoted by conscious intervention by shrewd operators; maybe not on the macro level of the whole society, but at the micro level of one organisation. Whether, and how, we promote them or fight them depends on our own motivation, our beliefs, and crucially on our reading of others. If we fail to understand why people are acting in a seemingly irrational way then we’re not going to change their minds.
In the example above, we won’t get far challenging an individual manager or user if the senior management have bought into the spiel of some long gone consultant that governance equals quality. So long as they believe that, and set in place a structure of rewards and incentives based on that fallacy then good people are going to the wrong things.
If we’re to change that then there isn’t an easy route. Often it’s just not possible. If that’s the case then get out. If it is possible then that requires us to understand the politics and culture of the organisation; to know who’s pulling the levers, and what levers produce what results. Software people often just shy away from “office politics”. That can be a naïve abdication of the field to the manipulators who’re simply playing the game to win, and aren’t interested in great software, or delighted customers.
It can take time, and maybe the timing isn’t right. In the early 90s whilst I was working as a computer auditor I was banging on about the need to have more formal testing; to have testing as a separate discipline, with its own methods and tools. At that time the big company I worked for regarded testing as something that the developers winged their way through once they’d built the application. I was shot down and ignored, but I had my say, and then moved on to other things. Within a few years everything I’d argued for came about. No-one thanked me of course, but my efforts may have shifted things a little way along. You have to understand the influential people, what motivates them and you have to work away at it. One clever Powerpoint presentation isn’t going to do the trick.
Sure it’s all difficult, but it’s fascinating, trying to understand why good people are doing seemingly daft things, trying to understand why an organisation is dysfunctional and trying to open peoples’ minds to the great ideas that are always going on out there, whilst trying to understand and resist the dangerous, possibly fashionable nonsense. So, it’s not all about memes. It’s about smart people who can work the system to get /good/ results, not just to ramp up next year’s bonus.
Looking back at what I wrote yesterday I think I may have given the wrong impression about analysing people and their motives.
I don't mean you need deep psychological insights. You don't have to be a trained psychologist, or even a touchy-feely person who can sense what other people are feeling.
You just need to take a cold-eyed look at what's going on. "Follow the money" is a good enough start! Also, the ability to keep asking "why" in response to answers that are only partially true is very valuable. That can require a thick skin, the ability not to care whether other people think you're being dim!
This comment is to let you know that this blog post has been highlighted in the August 09 issue of the Automated Software Testing Magazine. It is in the "I 'B'Log To U" department. Check it out at http://www.astmagazine.automatedtestinginstitute.com (page 40)
Post a Comment