Can you suggest examples, in mechanical engineering, of “tribal wisdom” claims that persist as a result of poor academic practice? (Or perhaps I am misunderstanding your analogy.)
I think that’s a relevant question, because it might help prove my point, but it’s not strictly necessary for it—and I’m also not a mechanical engineer, so I don’t have any. I can try asking some of my friends who are about it, though.
Let me rephrase. You’re judging software engineering as a discipline because it has some tribal wisdom that may not be correct. It hasn’t been retracted, or refuted, and merely perpetuates itself. I agree with you that this is bad.
My point is that you’re judging it as an academic discipline, and it’s not. Academic disciplines (like computer science) have journals that a significant portion of the field will read. They have conferences, and even their own semi-feudal hierarchies sometimes. There are communication channels and methods to arrive at a consensus that allows for knowledge to be discovered, disseminated, and confirmed.
Software engineering has none of those things. Most software is written behind closed doors in corporations and is never seen except by those who created it. Corporations, for the most part, do not like sharing data on how things were produced, and most failed projects fail silently (to the outside world, anyway). Corporations do not publish a paper saying “We spent 3 years with 10 software engineers attempting to create this product. We failed, and here is our hypothesis why.”
Is this a bad thing? Oh, absolutely. The field would be far better and more mature if it wasn’t. But it’s a structural problem. To put it another way, it isn’t a disease; it’s genetics. Understanding why is the important part.
Wait, what are the ACM, the IEEE, the SEI and their journals; or the ICSE conference (International Conference on Software Engineering) that has been running since 1975? And some major corporations have been publishing in these venues about their successes and (maybe some) failures.
I was agreeing with you (or at least not sure enough to disagree) when you said “most software engineers don’t go to conferences”, but “there are no conferences” is definitely inaccurate.
The United States Bureau of Labor Statistics estimates that in 2008 there were 1.3 million software engineers employed in the United States alone. http://www.bls.gov/oco/ocos303.htm
There are plenty of conferences, even non-academic ones, relating to computer science and software engineering, such as GDC, the Game Development Conference. However, very few focus on the methodology of software engineering, unless they’re for a specific methodology, such as conferences for Agile or XP.
I subscribe to a few ACM journals; out of the 11 other software engineers in my office, none of the rest do. We build software for airplanes, so plenty more subscribe to the likes of Aviation Week, but none about software engineering. The plural of anecdote is not data, but it’s illustrative all the same.
Edit: I decided to add some clarification. I agree with you on your observations about software engineering as a field, including the problems that exist. My main point is, I’d expect them to exist in any field as broad and non-academic as software engineering, and I also don’t see any way to fix it, or the situation to otherwise become better. That’s why I disagree with the “diseased” adjective.
Can you suggest examples, in mechanical engineering, of “tribal wisdom” claims that persist as a result of poor academic practice? (Or perhaps I am misunderstanding your analogy.)
I think that’s a relevant question, because it might help prove my point, but it’s not strictly necessary for it—and I’m also not a mechanical engineer, so I don’t have any. I can try asking some of my friends who are about it, though.
Let me rephrase. You’re judging software engineering as a discipline because it has some tribal wisdom that may not be correct. It hasn’t been retracted, or refuted, and merely perpetuates itself. I agree with you that this is bad.
My point is that you’re judging it as an academic discipline, and it’s not. Academic disciplines (like computer science) have journals that a significant portion of the field will read. They have conferences, and even their own semi-feudal hierarchies sometimes. There are communication channels and methods to arrive at a consensus that allows for knowledge to be discovered, disseminated, and confirmed.
Software engineering has none of those things. Most software is written behind closed doors in corporations and is never seen except by those who created it. Corporations, for the most part, do not like sharing data on how things were produced, and most failed projects fail silently (to the outside world, anyway). Corporations do not publish a paper saying “We spent 3 years with 10 software engineers attempting to create this product. We failed, and here is our hypothesis why.”
Is this a bad thing? Oh, absolutely. The field would be far better and more mature if it wasn’t. But it’s a structural problem. To put it another way, it isn’t a disease; it’s genetics. Understanding why is the important part.
Wait, what are the ACM, the IEEE, the SEI and their journals; or the ICSE conference (International Conference on Software Engineering) that has been running since 1975? And some major corporations have been publishing in these venues about their successes and (maybe some) failures.
I was agreeing with you (or at least not sure enough to disagree) when you said “most software engineers don’t go to conferences”, but “there are no conferences” is definitely inaccurate.
The ICSE conference has attendance figures listed here: http://www.cs.uoregon.edu/events/icse2009/ExhibitProspectus.pdf. In 2008, they had 827 attendees.
The United States Bureau of Labor Statistics estimates that in 2008 there were 1.3 million software engineers employed in the United States alone. http://www.bls.gov/oco/ocos303.htm
There are plenty of conferences, even non-academic ones, relating to computer science and software engineering, such as GDC, the Game Development Conference. However, very few focus on the methodology of software engineering, unless they’re for a specific methodology, such as conferences for Agile or XP.
I subscribe to a few ACM journals; out of the 11 other software engineers in my office, none of the rest do. We build software for airplanes, so plenty more subscribe to the likes of Aviation Week, but none about software engineering. The plural of anecdote is not data, but it’s illustrative all the same.
Edit: I decided to add some clarification. I agree with you on your observations about software engineering as a field, including the problems that exist. My main point is, I’d expect them to exist in any field as broad and non-academic as software engineering, and I also don’t see any way to fix it, or the situation to otherwise become better. That’s why I disagree with the “diseased” adjective.