I'm not one who believes mainstream large-scale software development really deserves the title of "computer science" (or "software engineering" for that matter). However, I have been thinking lately that there is an interesting analogy between good software development and good scientific theories. Here are some examples:
So what can we learn from the study of good science (which has had a lot longer to mature) about how we should approach software? Here are some ideas:
I'd love to hear your comments about where this analogy works and where it doesn't. I keep thinking about it whenever I read something about "good science", but I'm not yet sure whether it's just the natural tendency to make connections between things you know well, or whether there is some deeper underlying principle here connecting these two ideas.