http://www.codinghorror.com/blog/archives/001288.html
Software development is and always will be somewhat experimental. The actual software construction isn’t necessarily experimental, but its conception is.
I can publicly acknowledge what I’ve slowly, gradually realized over the last 5 to 10 years of my career as a software developer: what we do is craftsmanship, not engineering.
control is ultimately illusory on software development projects.