Abstract
We like to imagine ourselves, down on the factory floor of the programming industry, as an engineering discipline. To me, growing up in a country where the title of "engineer" used to have a clear formal meaning, it suggests that the software engineering is a well developed, carefully measured discipline. It suggests that we know what we're doing, don't worry, we're professionals. Some of us are even architects. But do we have any idea at all? Let's examine what we've figured out so far, and, more importantly, how what we know is being applied in practice by those who build the software that runs the world.